-
Notifications
You must be signed in to change notification settings - Fork 305
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
improve perf on lsp#omni#default_get_vim_completion_item() #823
Comments
The root cause here seems to be that most language servers are returning to many results as part of the initial items which calls In the below case typescript language server is sending all possible completion items to show even though we type
But now if you have an object and press
This means we might need to first filter items received from server. |
One option would be to automatically make kind empty if the length of autocomplete results is greater than some number. And that number apparently seems to be around 120. As soon as I start increasing it I see hangs. Another option would be to do prefix match and set |
Tried multiple solutions but the only got few perf improvements so went with a flag to disable it. #824 Also could be smart in asyncomplete-lsp to restore and enable the flag if the items are too big. |
can also look into optimizing.
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
default_get_vim_completion_item
is very slow and is used by asyncomplete-lsp for every items. Currently this is also O(n) which has huge impact on perf. Currentlylsp#omni#get_kind_text
seems to be the bottleneck here.with empty kind:
with kind:
Another bottleneck seems to be here.
The text was updated successfully, but these errors were encountered: