aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim
diff options
context:
space:
mode:
authorskewb1k <skewb1kunix@gmail.com>2025-09-16 03:50:53 +0300
committerGitHub <noreply@github.com>2025-09-15 17:50:53 -0700
commitfde0b487fb612e68de2ca11054560ca7f36c49b2 (patch)
treed7f376e3b0f91ddf774b70985a739388cec8bc7c /runtime/lua/vim
parentddcfa8bb4a98402c76c2996c6248c699095c05e6 (diff)
downloadrneovim-fde0b487fb612e68de2ca11054560ca7f36c49b2.tar.gz
rneovim-fde0b487fb612e68de2ca11054560ca7f36c49b2.tar.bz2
rneovim-fde0b487fb612e68de2ca11054560ca7f36c49b2.zip
fix(lsp): avoid re-enabling `document_color` on `registerCapability` (#35774)
Problem: The registerCapability handler re-enables document_color, making it impossible to disable it in LspAttach. Solution: Enable it once on initialization and avoid re-enabling on registerCapability.
Diffstat (limited to 'runtime/lua/vim')
-rw-r--r--runtime/lua/vim/lsp.lua1
-rw-r--r--runtime/lua/vim/lsp/client.lua4
2 files changed, 4 insertions, 1 deletions
diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua
index 26eb2e6c9d..7e3d8c6811 100644
--- a/runtime/lua/vim/lsp.lua
+++ b/runtime/lua/vim/lsp.lua
@@ -784,7 +784,6 @@ function lsp._set_defaults(client, bufnr)
if client:supports_method(ms.textDocument_diagnostic) then
lsp.diagnostic._enable(bufnr)
end
- lsp.document_color.enable(true, bufnr)
end
--- @deprecated
diff --git a/runtime/lua/vim/lsp/client.lua b/runtime/lua/vim/lsp/client.lua
index 1b49d946e9..48b7ec17f9 100644
--- a/runtime/lua/vim/lsp/client.lua
+++ b/runtime/lua/vim/lsp/client.lua
@@ -1087,6 +1087,10 @@ function Client:on_attach(bufnr)
self:_text_document_did_open_handler(bufnr)
lsp._set_defaults(self, bufnr)
+ -- `enable(true)` cannot be called from `_set_defaults` for features with dynamic registration,
+ -- because it overrides the state every time `client/registerCapability` is received.
+ -- To allow disabling it once in `LspAttach`, we enable it once here instead.
+ lsp.document_color.enable(true, bufnr)
api.nvim_exec_autocmds('LspAttach', {
buffer = bufnr,