fix(diagnostics): limit amount of diagnostics processed improving performance #1010
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.
bufferline.nvim/lua/bufferline/diagnostics.lua
Lines 80 to 90 in 655133c
The above chunk of code gets constantly evaluated in a loop with
diagnostics.get(options)
fetching multiple times the same array with evergrowing number of diagnostics that get added by LSP over time.The table
diagnostics
is evaluated byfor _, d in pairs(diagnostics)
loop multiple times though diagnostics remain the same. This results in a degraded performance.Replicate the issue
I've discovered accidentally a massive drop in performance while configuring lua-language-server (LLS) for nvim plugin project.
Checkout a small bash script down below that automatically sets up a project that replicates the issue. It opens
commands.lua
file which gets over 2500+ diagnostics (to check this out, you can debug the above chunk of code).Make sure that LLS is installed and configured for your nvim, and
you have the latest
bufferline.nvim
and the following config setup:REPLICATE.sh
Workaround
Just disable diagnostics in
Related
diagnostics_update_on_event
option #932