perf(lsp): only redraw the windows containing LSP tokens

redraw! redraws the entire screen instead of just the windows with
the buffer which were actually changed.

I considered trying to calculating the range for the delta
but it looks tricky. Could a follow-up.
This commit is contained in:
bfredl
2023-02-28 12:38:33 +01:00
parent a87b52d328
commit 7e19cabeb1
3 changed files with 148 additions and 18 deletions

View File

@@ -334,7 +334,8 @@ function STHighlighter:process_response(response, client, version)
current_result.highlights = tokens_to_ranges(tokens, self.bufnr, client)
current_result.namespace_cleared = false
api.nvim_command('redraw!')
-- redraw all windows displaying buffer
api.nvim__buf_redraw_range(self.bufnr, 0, -1)
end
--- on_win handler for the decoration provider (see |nvim_set_decoration_provider|)