-
Notifications
You must be signed in to change notification settings - Fork 17.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
x/tools/gopls: usePlaceholders=false disables variable name suggestions when using the var! suffix completion #69626
Comments
Thanks for the report. This sounds like a bug in postfix completions. |
Seems like it is this line. I don't think we have ever really established snippet best practices when placeholders are disabled. I guess it depends on how good the default placeholder values are. If we expect the user to normally want the default values, we should insert them (with no placeholder). If we expect the user to want to replace them, we should omit them and leave the cursor there so the user can type. Personally I think we should address the usability issues with placeholders and get away from supporting a global no-placeholder mode for snippets. Turning off placeholders just doesn't make sense for most snippets. If there are still contentious uses of placeholders (e.g. func call params), we introduce specific config flags to control those individual uses. |
Turning off placeholders is currently more usable than having them on, at least for me. The placeholder completion results in code that is not syntactically correct - for function calls, it contains both argument names and their types. This causes a lot more work for people like me that are not used to snippet systems and their key bindings. More often than not, I end up having to manually delete the inserted types because I somehow "exited" the snippet. Perhaps if the placeholders being returned didn't contain the actual types, that would appease clumsy people like me as well. However, with signature help on, there's really no reason for me to have the placeholders in signatures in the first place. |
gopls version
golang.org/x/tools/gopls v0.16.1
go env
What did you do?
I've disabled the
usePlaceholders
option, since having it enabled inserts invalid syntax, causing more work.Then I attempted to complete a
.var!
suffix completion on a function call, in order to have the variables defined.What did you see happen?
, := theFunctionThatWasCompleted()
What did you expect to see?
someVar, err := theFunctionThatWasCompleted()
Editor and settings
Zed:
Logs
No response
The text was updated successfully, but these errors were encountered: