@@ -95,12 +95,31 @@ function M.semantic_tokens(silent)
9595 ui_notify (silent , (" Global lsp semantic highlighting %s" ):format (bool2str (vim .lsp .semantic_tokens .is_enabled ())))
9696end
9797
98- --- Toggle codelens
98+ --- Toggle buffer codelens
99+ --- @param bufnr ? integer the buffer to toggle the clients on
100+ --- @param silent ? boolean if true then don ' t sent a notification
101+ function M .buffer_codelens (bufnr , silent )
102+ bufnr = bufnr or 0
103+ if not vim .lsp .codelens .enable then
104+ ui_notify (silent , " Only available in Neovim v0.12+" , vim .log .levels .WARN )
105+ return
106+ end
107+ vim .lsp .codelens .enable (not vim .lsp .codelens .is_enabled { bufnr = bufnr })
108+ ui_notify (silent , (" CodeLens %s" ):format (bool2str (vim .lsp .codelens .is_enabled { bufnr = bufnr })))
109+ end
110+
111+ --- Toggle global codelens
99112--- @param silent ? boolean if true then don ' t sent a notification
100113function M .codelens (silent )
101- features .codelens = not features .codelens
102- if not features .codelens then vim .lsp .codelens .clear () end
103- ui_notify (silent , (" CodeLens %s" ):format (bool2str (features .codelens )))
114+ -- TODO: remove check when dropping support for Neovim v0.11
115+ if vim .lsp .codelens .enable then
116+ vim .lsp .codelens .enable (not vim .lsp .codelens .is_enabled ())
117+ ui_notify (silent , (" CodeLens %s" ):format (bool2str (vim .lsp .codelens .is_enabled ())))
118+ else
119+ features .codelens = not features .codelens
120+ if not features .codelens then vim .lsp .codelens .clear () end
121+ ui_notify (silent , (" CodeLens %s" ):format (bool2str (features .codelens )))
122+ end
104123end
105124
106125--- Toggle automatic signature help
0 commit comments