-
Notifications
You must be signed in to change notification settings - Fork 167
Improve completion information #160
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
Comments
It's this related to #148 ? Doing that would slow down completions in unacceptable way IMO. LSP spec has concept of resolving extra completions info (documentation and stuff) but that is to be done by the client, on a per-completion basis and not all at once. Also limiting completions sounds wrong. If I'm trying to complete some property and I'm not seeing it then I'll assume it doesn't exist. Unless you are thinking of using |
#148 looks similar, yep Not sure how this needs to be implemented yet. Similar implementations have always been acceptably fast for me even when front loading all completion details. From there, we can probably implement some different completion strategies
Ultimately, I want this project to have completion support on-par with other native solutions I'm used to working with (ALE and nvim-typescript on the VIM side). Considering we're both using the same Edit: Clarity |
I've tested in one project, trying out to perform the same completion multiple times in both codebases. The average time for the response to come with this new code was 1000ms. The number of returned completions was around 60 so it's not about the number of completions so much as the extra details that the server has to fetch, I guess. From my perspective, that's an unacceptable performance regression. Feels very sluggish. |
@predragnikolic that was a mistake and was reverted |
@DonnieWest any update on this? I've configured |
@DonnieWest thanks for quick response. FF via env variable for testing sound like reasonable option for testing it on bigger codebase pools. Does your solution provide signatures for omnifunc? If so, I can test it on my side. |
@lowski presumably, but I'm not sure how your client interprets our server specifically |
@DonnieWest I'm using NeoVim 5.x with It seems that the current implementation of |
For editors that support auto-resolving completions when those are highlighted in the list this is not really an issue since the user will see the full information quick enough. For editors that don't auto-resolve completions it's worse but I don't see anything we can do to help. IMO this should be closed. |
Agreed. This is effectively addressed by auto-resolving completions |
Our completion info is a bit bare, for instance, it doesn't expose type information for completed candidates
It appears that
tsserver
has a two-stage completion system where you get general candidates w/o detailed information and follow up with a call to get more detailed completionsEssentially:
Client Requests completions -> LSP requests completions -> tsserver returns basic candidates -> client requests details for candidates -> tsserver returns details -> LSP returns completions to client
This does slow down completions but we should implement this and either:
The text was updated successfully, but these errors were encountered: