mirror of
https://github.com/neovim/neovim.git
synced 2025-10-05 01:16:31 +00:00
feat(lsp)!: add vim.lsp.status, client.progress and promote LspProgressUpdate (#23958)
`client.messages` could grow unbounded because the default handler only added new messages, never removing them. A user either had to consume the messages by calling `vim.lsp.util.get_progress_messages` or by manually removing them from `client.messages.progress`. If they didn't do that, using LSP effectively leaked memory. To fix this, this deprecates the `messages` property and instead adds a `progress` ring buffer that only keeps at most 50 messages. In addition it deprecates `vim.lsp.util.get_progress_messages` in favour of a new `vim.lsp.status()` and also promotes the `LspProgressUpdate` user autocmd to a regular autocmd to allow users to pattern match on the progress kind. Also closes https://github.com/neovim/neovim/pull/20327
This commit is contained in:

committed by
GitHub

parent
f31dba93f9
commit
e5e0bda41b
@@ -74,6 +74,7 @@ return {
|
||||
'LspDetach', -- after an LSP client detaches from a buffer
|
||||
'LspRequest', -- after an LSP request is started, canceled, or completed
|
||||
'LspTokenUpdate', -- after a visible LSP token is updated
|
||||
'LspProgress', -- after a LSP progress update
|
||||
'MenuPopup', -- just before popup menu is displayed
|
||||
'ModeChanged', -- after changing the mode
|
||||
'OptionSet', -- after setting any option
|
||||
@@ -154,6 +155,7 @@ return {
|
||||
LspAttach=true,
|
||||
LspDetach=true,
|
||||
LspRequest=true,
|
||||
LspProgress=true,
|
||||
LspTokenUpdate=true,
|
||||
RecordingEnter=true,
|
||||
RecordingLeave=true,
|
||||
|
Reference in New Issue
Block a user