aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/inlay_hint.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2024-04-18 07:57:58 -0700
committerGitHub <noreply@github.com>2024-04-18 07:57:58 -0700
commitf1dfe32bf5552197e0068298b0527526a4f918b1 (patch)
treeaf5b20cf246d1025434f8ca9e01f2ce79d2b8847 /runtime/lua/vim/lsp/inlay_hint.lua
parent97323d821be97deeb1a5797b4ca534156b9e9b0c (diff)
downloadrneovim-f1dfe32bf5552197e0068298b0527526a4f918b1.tar.gz
rneovim-f1dfe32bf5552197e0068298b0527526a4f918b1.tar.bz2
rneovim-f1dfe32bf5552197e0068298b0527526a4f918b1.zip
feat(lua): enable(enable:boolean, filter:table) #28374
Problem: We need to establish a pattern for `enable()`. Solution: - First `enable()` parameter is always `enable:boolean`. - Update `vim.diagnostic.enable()` - Update `vim.lsp.inlay_hint.enable()`. - It was not released yet, so no deprecation is needed. But to help HEAD users, it will show an informative error. - vim.deprecate(): - Improve message when the "removal version" is a *current or older* version.
Diffstat (limited to 'runtime/lua/vim/lsp/inlay_hint.lua')
-rw-r--r--runtime/lua/vim/lsp/inlay_hint.lua30
1 files changed, 23 insertions, 7 deletions
diff --git a/runtime/lua/vim/lsp/inlay_hint.lua b/runtime/lua/vim/lsp/inlay_hint.lua
index ec676ea97f..6305f82efb 100644
--- a/runtime/lua/vim/lsp/inlay_hint.lua
+++ b/runtime/lua/vim/lsp/inlay_hint.lua
@@ -349,7 +349,7 @@ api.nvim_set_decoration_provider(namespace, {
end,
})
---- @param bufnr (integer|nil) Buffer handle, or 0 or nil for current
+--- @param bufnr (integer|nil) Buffer handle, or 0 for current
--- @return boolean
--- @since 12
function M.is_enabled(bufnr)
@@ -360,23 +360,39 @@ function M.is_enabled(bufnr)
return bufstates[bufnr] and bufstates[bufnr].enabled or false
end
+--- Optional filters |kwargs|, or `nil` for all.
+--- @class vim.lsp.inlay_hint.enable.Filter
+--- @inlinedoc
+--- Buffer number, or 0/nil for current buffer.
+--- @field bufnr integer?
+
--- Enables or disables inlay hints for a buffer.
---
--- To "toggle", pass the inverse of `is_enabled()`:
---
--- ```lua
---- vim.lsp.inlay_hint.enable(0, not vim.lsp.inlay_hint.is_enabled())
+--- vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
--- ```
---
---- @param bufnr (integer|nil) Buffer handle, or 0 or nil for current
--- @param enable (boolean|nil) true/nil to enable, false to disable
+--- @param filter vim.lsp.inlay_hint.enable.Filter?
--- @since 12
-function M.enable(bufnr, enable)
- vim.validate({ enable = { enable, 'boolean', true }, bufnr = { bufnr, 'number', true } })
+function M.enable(enable, filter)
+ if type(enable) == 'number' or type(filter) == 'boolean' then
+ vim.deprecate(
+ 'vim.lsp.inlay_hint.enable(bufnr:number, enable:boolean)',
+ 'vim.diagnostic.enable(enable:boolean, filter:table)',
+ '0.10-dev'
+ )
+ error('see :help vim.lsp.inlay_hint.enable() for updated parameters')
+ end
+
+ vim.validate({ enable = { enable, 'boolean', true }, filter = { filter, 'table', true } })
+ filter = filter or {}
if enable == false then
- _disable(bufnr)
+ _disable(filter.bufnr)
else
- _enable(bufnr)
+ _enable(filter.bufnr)
end
end