diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2024-04-18 07:57:58 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-18 07:57:58 -0700 |
commit | f1dfe32bf5552197e0068298b0527526a4f918b1 (patch) | |
tree | af5b20cf246d1025434f8ca9e01f2ce79d2b8847 /runtime/lua/vim/lsp/inlay_hint.lua | |
parent | 97323d821be97deeb1a5797b4ca534156b9e9b0c (diff) | |
download | rneovim-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.lua | 30 |
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 |