-
Notifications
You must be signed in to change notification settings - Fork 198
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
Completion: Improve behavior for pre-selecting options #8295
Comments
I think we should do a spike and remove space from being a commit character for any html completion item and see how it feels. At least we're in charge of that scenario :) |
If you remove space from being a commit character, you should make sure it dismisses the completion session. Otherwise if the session stays open you can keep typing out a full tag e.g. |
It does! |
Resolves the "we did not find firm opinions" part of #8295 by introducing an option to allow users to control how they want completion for html elements, tag helper elements and components to behave. Corresponding VS Code PR: dotnet/vscode-csharp#6506
Some suggestions that were broadly agreed with:
Where we did not find firm opinions was around when Razor should and should not be in "Suggestion Mode". Roslyn enters Suggestion Mode whenever both existing options and "random" new options are legal. This is unfortunately the case any time you type "<" in a Razor file because html allows undefined tags (and you may be typing a Razor tag you haven't created yet), so following that rule would result in suggestion mode always being on for Razor.
To quote @jimmylewis though: "Using the VS telemetry monitor for the LSP messages in the
<dv
scenario, there is only one completion request sent when < is typed, and the rest are completionItem/resolve requests as the filtering is applied. Order here is not linear because the app tries to group request/response pairs, but you can see that each server only gets one textDocument/completion request for the whole 3-keystroke interaction. The rest of the behavior (filtering, selection) is done purely on the client using that first completion list."To re-state, this means that changes to the behavior for #1 and #2 (and #3 if I understand the scenario correctly) would have to come from the LSP client and would therefore affect all Language Servers.
The text was updated successfully, but these errors were encountered: