[HACK]: Make lsp-completion
Super Fast for Large Candidate Sets! 🚀
#4737
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I added a new entry to CHANGELOG.md
I updated documentation if applicable (
docs
folder)Hello,
I'm working on a Rust project and using
lsp-mode
'slsp-completion
for code completion.In the Rust crate
nerd_font_symbols
, attempting to completenerd_font_symbols::md::
results in a very large number of candidates. I noticed thatlsp-mode
'slsp-completion
takes 2179ms to display the code completion.However, when I tested the same completion in Zed Editor and VS Code, they were significantly faster, taking only 0.2 seconds to show the results.
To investigate the issue, I profiled
lsp-mode.el
and found that the CPU profiler pointed tosit-for
as a potential bottleneck.I don't know why, when I do the hacks on this PR, the lsp-mode.el code-completion reduce from 2179ms to 179ms ! :
So I think this PR is very important, you can reproduce this by this rust code:
And I use this short function to record the lsp-completion's timecost:
What do you think?