feat(lsp): inlay_hint.is_enabled({filter}) #28523

vim.diagnostic.enable and vim.diagnostic.is_enabled() use the same pattern.
This commit is contained in:
Yi Ming
2024-05-02 22:26:07 +08:00
committed by GitHub
parent d5063f4b29
commit 350d818564
4 changed files with 27 additions and 6 deletions

View File

@ -1645,13 +1645,15 @@ get({filter}) *vim.lsp.inlay_hint.get()*
• {client_id} (`integer`) • {client_id} (`integer`)
• {inlay_hint} (`lsp.InlayHint`) • {inlay_hint} (`lsp.InlayHint`)
is_enabled({bufnr}) *vim.lsp.inlay_hint.is_enabled()* is_enabled({filter}) *vim.lsp.inlay_hint.is_enabled()*
Note: ~ Note: ~
• This API is pre-release (unstable). • This API is pre-release (unstable).
Parameters: ~ Parameters: ~
• {bufnr} (`integer?`) Buffer handle, or 0 for current • {filter} (`table`) Optional filters |kwargs|, or `nil` for all.
• {bufnr} (`integer?`) Buffer number, or 0 for current
buffer, or nil for all.
Return: ~ Return: ~
(`boolean`) (`boolean`)

View File

@ -148,6 +148,8 @@ BREAKING CHANGES IN HEAD *news-breaking-dev*
The following changes to UNRELEASED features were made during the development The following changes to UNRELEASED features were made during the development
cycle (Nvim HEAD, the "master" branch). cycle (Nvim HEAD, the "master" branch).
• Changed the signature of `vim.lsp.inlay_hint.is_enabled()`.
• `vim.lsp.inlay_hint.enable()` now take effect on all buffers by default. • `vim.lsp.inlay_hint.enable()` now take effect on all buffers by default.
• Removed `vim.treesitter.foldtext` as transparent foldtext is now supported • Removed `vim.treesitter.foldtext` as transparent foldtext is now supported

View File

@ -364,12 +364,29 @@ api.nvim_set_decoration_provider(namespace, {
end, end,
}) })
--- @param bufnr (integer|nil) Buffer handle, or 0 for current --- @param filter vim.lsp.inlay_hint.enable.Filter
--- @return boolean --- @return boolean
--- @since 12 --- @since 12
function M.is_enabled(bufnr) function M.is_enabled(filter)
---@type integer
local bufnr
if type(filter) == 'number' then
vim.deprecate(
'vim.lsp.inlay_hint.is_enabled(bufnr:number)',
'vim.lsp.inlay_hint.is_enabled(filter:table)',
'0.10-dev'
)
bufnr = filter
else
vim.validate({ filter = { filter, 'table', true } })
filter = filter or {}
bufnr = filter.bufnr
end
vim.validate({ bufnr = { bufnr, 'number', true } }) vim.validate({ bufnr = { bufnr, 'number', true } })
if bufnr == nil or bufnr == 0 then if bufnr == nil then
return globalstate.enabled
elseif bufnr == 0 then
bufnr = api.nvim_get_current_buf() bufnr = api.nvim_get_current_buf()
end end
return bufstates[bufnr].enabled return bufstates[bufnr].enabled

View File

@ -163,7 +163,7 @@ describe('vim.lsp.inlay_hint', function()
screen:expect({ grid = grid_with_inlay_hints, unchanged = true }) screen:expect({ grid = grid_with_inlay_hints, unchanged = true })
exec_lua( exec_lua(
[[vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled(bufnr), { bufnr = bufnr })]] [[vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = bufnr }), { bufnr = bufnr })]]
) )
screen:expect({ grid = grid_without_inlay_hints, unchanged = true }) screen:expect({ grid = grid_without_inlay_hints, unchanged = true })