mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
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.
This commit is contained in:
parent
97323d821b
commit
f1dfe32bf5
@ -372,7 +372,8 @@ Use existing common {verb} names (actions) if possible:
|
|||||||
- create: Creates a new (non-trivial) thing (TODO: rename to "def"?)
|
- create: Creates a new (non-trivial) thing (TODO: rename to "def"?)
|
||||||
- del: Deletes a thing (or group of things)
|
- del: Deletes a thing (or group of things)
|
||||||
- detach: Dispose attached listener (TODO: rename to "un"?)
|
- detach: Dispose attached listener (TODO: rename to "un"?)
|
||||||
- enable: Enables/disables functionality.
|
- enable: Enables/disables functionality. Signature should be
|
||||||
|
`enable(enable?:boolean, filter?:table)`.
|
||||||
- eval: Evaluates an expression
|
- eval: Evaluates an expression
|
||||||
- exec: Executes code
|
- exec: Executes code
|
||||||
- fmt: Formats
|
- fmt: Formats
|
||||||
|
@ -367,13 +367,6 @@ Lua module: vim.diagnostic *diagnostic-api*
|
|||||||
• {user_data}? (`any`) arbitrary data plugins can add
|
• {user_data}? (`any`) arbitrary data plugins can add
|
||||||
• {namespace}? (`integer`)
|
• {namespace}? (`integer`)
|
||||||
|
|
||||||
*vim.diagnostic.Filter*
|
|
||||||
Extends: |vim.diagnostic.Opts|
|
|
||||||
|
|
||||||
|
|
||||||
Fields: ~
|
|
||||||
• {ns_id}? (`integer`) Namespace
|
|
||||||
|
|
||||||
*vim.diagnostic.GetOpts*
|
*vim.diagnostic.GetOpts*
|
||||||
A table with the following keys:
|
A table with the following keys:
|
||||||
|
|
||||||
@ -623,20 +616,20 @@ count({bufnr}, {opts}) *vim.diagnostic.count()*
|
|||||||
(`table`) Table with actually present severity values as keys (see
|
(`table`) Table with actually present severity values as keys (see
|
||||||
|diagnostic-severity|) and integer counts as values.
|
|diagnostic-severity|) and integer counts as values.
|
||||||
|
|
||||||
enable({bufnr}, {enable}, {opts}) *vim.diagnostic.enable()*
|
enable({enable}, {filter}) *vim.diagnostic.enable()*
|
||||||
Enables or disables diagnostics.
|
Enables or disables diagnostics.
|
||||||
|
|
||||||
To "toggle", pass the inverse of `is_enabled()`: >lua
|
To "toggle", pass the inverse of `is_enabled()`: >lua
|
||||||
vim.diagnostic.enable(0, not vim.diagnostic.is_enabled())
|
vim.diagnostic.enable(not vim.diagnostic.is_enabled())
|
||||||
<
|
<
|
||||||
|
|
||||||
Parameters: ~
|
Parameters: ~
|
||||||
• {bufnr} (`integer?`) Buffer number, or 0 for current buffer, or
|
|
||||||
`nil` for all buffers.
|
|
||||||
• {enable} (`boolean?`) true/nil to enable, false to disable
|
• {enable} (`boolean?`) true/nil to enable, false to disable
|
||||||
• {opts} (`vim.diagnostic.Filter?`) Filter by these opts, or `nil`
|
• {filter} (`table?`) Optional filters |kwargs|, or `nil` for all.
|
||||||
for all. Only `ns_id` is supported, currently. See
|
• {ns_id}? (`integer`) Diagnostic namespace, or `nil` for
|
||||||
|vim.diagnostic.Filter|.
|
all.
|
||||||
|
• {bufnr}? (`integer`) Buffer number, or 0 for current
|
||||||
|
buffer, or `nil` for all buffers.
|
||||||
|
|
||||||
fromqflist({list}) *vim.diagnostic.fromqflist()*
|
fromqflist({list}) *vim.diagnostic.fromqflist()*
|
||||||
Convert a list of quickfix items to a list of diagnostics.
|
Convert a list of quickfix items to a list of diagnostics.
|
||||||
@ -745,16 +738,18 @@ hide({namespace}, {bufnr}) *vim.diagnostic.hide()*
|
|||||||
• {bufnr} (`integer?`) Buffer number, or 0 for current buffer. When
|
• {bufnr} (`integer?`) Buffer number, or 0 for current buffer. When
|
||||||
omitted, hide diagnostics in all buffers.
|
omitted, hide diagnostics in all buffers.
|
||||||
|
|
||||||
is_enabled({bufnr}, {namespace}) *vim.diagnostic.is_enabled()*
|
is_enabled({filter}) *vim.diagnostic.is_enabled()*
|
||||||
Check whether diagnostics are enabled.
|
Check whether diagnostics are enabled.
|
||||||
|
|
||||||
Note: ~
|
Note: ~
|
||||||
• This API is pre-release (unstable).
|
• This API is pre-release (unstable).
|
||||||
|
|
||||||
Parameters: ~
|
Parameters: ~
|
||||||
• {bufnr} (`integer?`) Buffer number, or 0 for current buffer.
|
• {filter} (`table?`) Optional filters |kwargs|, or `nil` for all.
|
||||||
• {namespace} (`integer?`) Diagnostic namespace, or `nil` for all
|
• {ns_id}? (`integer`) Diagnostic namespace, or `nil` for
|
||||||
diagnostics in {bufnr}.
|
all.
|
||||||
|
• {bufnr}? (`integer`) Buffer number, or 0 for current
|
||||||
|
buffer, or `nil` for all buffers.
|
||||||
|
|
||||||
Return: ~
|
Return: ~
|
||||||
(`boolean`)
|
(`boolean`)
|
||||||
|
@ -1588,19 +1588,21 @@ save({lenses}, {bufnr}, {client_id}) *vim.lsp.codelens.save()*
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
Lua module: vim.lsp.inlay_hint *lsp-inlay_hint*
|
Lua module: vim.lsp.inlay_hint *lsp-inlay_hint*
|
||||||
|
|
||||||
enable({bufnr}, {enable}) *vim.lsp.inlay_hint.enable()*
|
enable({enable}, {filter}) *vim.lsp.inlay_hint.enable()*
|
||||||
Enables or disables inlay hints for a buffer.
|
Enables or disables inlay hints for a buffer.
|
||||||
|
|
||||||
To "toggle", pass the inverse of `is_enabled()`: >lua
|
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())
|
||||||
<
|
<
|
||||||
|
|
||||||
Note: ~
|
Note: ~
|
||||||
• This API is pre-release (unstable).
|
• This API is pre-release (unstable).
|
||||||
|
|
||||||
Parameters: ~
|
Parameters: ~
|
||||||
• {bufnr} (`integer?`) Buffer handle, or 0 or nil for current
|
|
||||||
• {enable} (`boolean?`) true/nil to enable, false to disable
|
• {enable} (`boolean?`) true/nil to enable, false to disable
|
||||||
|
• {filter} (`table?`) Optional filters |kwargs|, or `nil` for all.
|
||||||
|
• {bufnr} (`integer?`) Buffer number, or 0/nil for current
|
||||||
|
buffer.
|
||||||
|
|
||||||
get({filter}) *vim.lsp.inlay_hint.get()*
|
get({filter}) *vim.lsp.inlay_hint.get()*
|
||||||
Get the list of inlay hints, (optionally) restricted by buffer or range.
|
Get the list of inlay hints, (optionally) restricted by buffer or range.
|
||||||
@ -1639,7 +1641,7 @@ is_enabled({bufnr}) *vim.lsp.inlay_hint.is_enabled()*
|
|||||||
• This API is pre-release (unstable).
|
• This API is pre-release (unstable).
|
||||||
|
|
||||||
Parameters: ~
|
Parameters: ~
|
||||||
• {bufnr} (`integer?`) Buffer handle, or 0 or nil for current
|
• {bufnr} (`integer?`) Buffer handle, or 0 for current
|
||||||
|
|
||||||
Return: ~
|
Return: ~
|
||||||
(`boolean`)
|
(`boolean`)
|
||||||
|
@ -149,6 +149,10 @@ unreleased features on Nvim HEAD.
|
|||||||
• Removed `vim.treesitter.foldtext` as transparent foldtext is now supported
|
• Removed `vim.treesitter.foldtext` as transparent foldtext is now supported
|
||||||
https://github.com/neovim/neovim/pull/20750
|
https://github.com/neovim/neovim/pull/20750
|
||||||
|
|
||||||
|
• Changed the signature of `vim.lsp.inlay_hint.enable()`.
|
||||||
|
|
||||||
|
• Changed the signature of `vim.diagnostic.enable()`.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
NEW FEATURES *news-features*
|
NEW FEATURES *news-features*
|
||||||
|
|
||||||
@ -529,6 +533,7 @@ release.
|
|||||||
• vim.diagnostic functions:
|
• vim.diagnostic functions:
|
||||||
- |vim.diagnostic.disable()|
|
- |vim.diagnostic.disable()|
|
||||||
- |vim.diagnostic.is_disabled()|
|
- |vim.diagnostic.is_disabled()|
|
||||||
|
- Legacy signature: `vim.diagnostic.enable(buf:number, namespace:number)`
|
||||||
|
|
||||||
• vim.lsp functions:
|
• vim.lsp functions:
|
||||||
- |vim.lsp.util.get_progress_messages()| Use |vim.lsp.status()| instead.
|
- |vim.lsp.util.get_progress_messages()| Use |vim.lsp.status()| instead.
|
||||||
|
@ -1049,10 +1049,11 @@ function vim.deprecate(name, alternative, version, plugin, backtrace)
|
|||||||
plugin = { plugin, 'string', true },
|
plugin = { plugin, 'string', true },
|
||||||
}
|
}
|
||||||
plugin = plugin or 'Nvim'
|
plugin = plugin or 'Nvim'
|
||||||
|
local will_be_removed = 'will be removed'
|
||||||
|
|
||||||
-- Only issue warning if feature is hard-deprecated as specified by MAINTAIN.md.
|
-- Only issue warning if feature is hard-deprecated as specified by MAINTAIN.md.
|
||||||
-- e.g., when planned to be removed in version = '0.12' (soft-deprecated since 0.10-dev),
|
-- Example: if removal_version is 0.12 (soft-deprecated since 0.10-dev), show warnings starting at
|
||||||
-- show warnings since 0.11, including 0.11-dev (hard_deprecated_since = 0.11-dev).
|
-- 0.11, including 0.11-dev (hard_deprecated_since = 0.11-dev).
|
||||||
if plugin == 'Nvim' then
|
if plugin == 'Nvim' then
|
||||||
local current_version = vim.version() ---@type vim.Version
|
local current_version = vim.version() ---@type vim.Version
|
||||||
local removal_version = assert(vim.version.parse(version))
|
local removal_version = assert(vim.version.parse(version))
|
||||||
@ -1075,14 +1076,17 @@ function vim.deprecate(name, alternative, version, plugin, backtrace)
|
|||||||
|
|
||||||
if not is_hard_deprecated then
|
if not is_hard_deprecated then
|
||||||
return
|
return
|
||||||
|
elseif current_version >= removal_version then
|
||||||
|
will_be_removed = 'was removed'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local msg = ('%s is deprecated'):format(name)
|
local msg = ('%s is deprecated'):format(name)
|
||||||
msg = alternative and ('%s, use %s instead.'):format(msg, alternative) or (msg .. '.')
|
msg = alternative and ('%s, use %s instead.'):format(msg, alternative) or (msg .. '.')
|
||||||
msg = ('%s%s\nThis feature will be removed in %s version %s'):format(
|
msg = ('%s%s\nFeature %s in %s %s'):format(
|
||||||
msg,
|
msg,
|
||||||
(plugin == 'Nvim' and ' :help deprecated' or ''),
|
(plugin == 'Nvim' and ' :help deprecated' or ''),
|
||||||
|
will_be_removed,
|
||||||
plugin,
|
plugin,
|
||||||
version
|
version
|
||||||
)
|
)
|
||||||
|
@ -239,8 +239,16 @@ local M = {}
|
|||||||
--- whole line the sign is placed in.
|
--- whole line the sign is placed in.
|
||||||
--- @field linehl? table<vim.diagnostic.Severity,string>
|
--- @field linehl? table<vim.diagnostic.Severity,string>
|
||||||
|
|
||||||
--- @class vim.diagnostic.Filter : vim.diagnostic.Opts
|
-- TODO: inherit from `vim.diagnostic.Opts`, implement its fields.
|
||||||
--- @field ns_id? integer Namespace
|
--- Optional filters |kwargs|, or `nil` for all.
|
||||||
|
--- @class vim.diagnostic.Filter
|
||||||
|
--- @inlinedoc
|
||||||
|
---
|
||||||
|
--- Diagnostic namespace, or `nil` for all.
|
||||||
|
--- @field ns_id? integer
|
||||||
|
---
|
||||||
|
--- Buffer number, or 0 for current buffer, or `nil` for all buffers.
|
||||||
|
--- @field bufnr? integer
|
||||||
|
|
||||||
--- @nodoc
|
--- @nodoc
|
||||||
--- @enum vim.diagnostic.Severity
|
--- @enum vim.diagnostic.Severity
|
||||||
@ -1522,18 +1530,21 @@ end
|
|||||||
|
|
||||||
--- Check whether diagnostics are enabled.
|
--- Check whether diagnostics are enabled.
|
||||||
---
|
---
|
||||||
--- @param bufnr integer? Buffer number, or 0 for current buffer.
|
--- @param filter vim.diagnostic.Filter?
|
||||||
--- @param namespace integer? Diagnostic namespace, or `nil` for all diagnostics in {bufnr}.
|
|
||||||
--- @return boolean
|
--- @return boolean
|
||||||
--- @since 12
|
--- @since 12
|
||||||
function M.is_enabled(bufnr, namespace)
|
function M.is_enabled(filter)
|
||||||
bufnr = get_bufnr(bufnr)
|
filter = filter or {}
|
||||||
if namespace and M.get_namespace(namespace).disabled then
|
if filter.ns_id and M.get_namespace(filter.ns_id).disabled then
|
||||||
return false
|
return false
|
||||||
|
elseif filter.bufnr == nil then
|
||||||
|
-- See enable() logic.
|
||||||
|
return vim.tbl_isempty(diagnostic_disabled) and not diagnostic_disabled[1]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local bufnr = get_bufnr(filter.bufnr)
|
||||||
if type(diagnostic_disabled[bufnr]) == 'table' then
|
if type(diagnostic_disabled[bufnr]) == 'table' then
|
||||||
return not diagnostic_disabled[bufnr][namespace]
|
return not diagnostic_disabled[bufnr][filter.ns_id]
|
||||||
end
|
end
|
||||||
|
|
||||||
return diagnostic_disabled[bufnr] == nil
|
return diagnostic_disabled[bufnr] == nil
|
||||||
@ -1542,7 +1553,7 @@ end
|
|||||||
--- @deprecated use `vim.diagnostic.is_enabled()`
|
--- @deprecated use `vim.diagnostic.is_enabled()`
|
||||||
function M.is_disabled(bufnr, namespace)
|
function M.is_disabled(bufnr, namespace)
|
||||||
vim.deprecate('vim.diagnostic.is_disabled()', 'vim.diagnostic.is_enabled()', '0.12', nil, false)
|
vim.deprecate('vim.diagnostic.is_disabled()', 'vim.diagnostic.is_enabled()', '0.12', nil, false)
|
||||||
return not M.is_enabled(bufnr, namespace)
|
return not M.is_enabled { bufnr = bufnr or 0, ns_id = namespace }
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Display diagnostics for the given namespace and buffer.
|
--- Display diagnostics for the given namespace and buffer.
|
||||||
@ -1588,7 +1599,7 @@ function M.show(namespace, bufnr, diagnostics, opts)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if not M.is_enabled(bufnr, namespace) then
|
if not M.is_enabled { bufnr = bufnr or 0, ns_id = namespace } then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -1934,12 +1945,12 @@ end
|
|||||||
function M.disable(bufnr, namespace)
|
function M.disable(bufnr, namespace)
|
||||||
vim.deprecate(
|
vim.deprecate(
|
||||||
'vim.diagnostic.disable()',
|
'vim.diagnostic.disable()',
|
||||||
'vim.diagnostic.enabled(…, false)',
|
'vim.diagnostic.enabled(false, …)',
|
||||||
'0.12',
|
'0.12',
|
||||||
nil,
|
nil,
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
M.enable(bufnr, false, { ns_id = namespace })
|
M.enable(false, { bufnr = bufnr, ns_id = namespace })
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Enables or disables diagnostics.
|
--- Enables or disables diagnostics.
|
||||||
@ -1947,53 +1958,49 @@ end
|
|||||||
--- To "toggle", pass the inverse of `is_enabled()`:
|
--- To "toggle", pass the inverse of `is_enabled()`:
|
||||||
---
|
---
|
||||||
--- ```lua
|
--- ```lua
|
||||||
--- vim.diagnostic.enable(0, not vim.diagnostic.is_enabled())
|
--- vim.diagnostic.enable(not vim.diagnostic.is_enabled())
|
||||||
--- ```
|
--- ```
|
||||||
---
|
---
|
||||||
--- @param bufnr integer? Buffer number, or 0 for current buffer, or `nil` for all buffers.
|
|
||||||
--- @param enable (boolean|nil) true/nil to enable, false to disable
|
--- @param enable (boolean|nil) true/nil to enable, false to disable
|
||||||
--- @param opts vim.diagnostic.Filter? Filter by these opts, or `nil` for all. Only `ns_id` is
|
--- @param filter vim.diagnostic.Filter?
|
||||||
--- supported, currently.
|
function M.enable(enable, filter)
|
||||||
function M.enable(bufnr, enable, opts)
|
-- Deprecated signature. Drop this in 0.12
|
||||||
opts = opts or {}
|
local legacy = (enable or filter)
|
||||||
if type(enable) == 'number' then
|
and vim.tbl_contains({ 'number', 'nil' }, type(enable))
|
||||||
-- Legacy signature.
|
and vim.tbl_contains({ 'number', 'nil' }, type(filter))
|
||||||
|
|
||||||
|
if legacy then
|
||||||
vim.deprecate(
|
vim.deprecate(
|
||||||
'vim.diagnostic.enable(buf:number, namespace)',
|
'vim.diagnostic.enable(buf:number, namespace:number)',
|
||||||
'vim.diagnostic.enable(buf:number, enable:boolean, opts)',
|
'vim.diagnostic.enable(enable:boolean, filter:table)',
|
||||||
'0.12',
|
'0.12',
|
||||||
nil,
|
nil,
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
opts.ns_id = enable
|
|
||||||
|
vim.validate({
|
||||||
|
enable = { enable, 'n', true }, -- Legacy `bufnr` arg.
|
||||||
|
filter = { filter, 'n', true }, -- Legacy `namespace` arg.
|
||||||
|
})
|
||||||
|
|
||||||
|
local ns_id = type(filter) == 'number' and filter or nil
|
||||||
|
filter = {}
|
||||||
|
filter.ns_id = ns_id
|
||||||
|
filter.bufnr = type(enable) == 'number' and enable or nil
|
||||||
enable = true
|
enable = true
|
||||||
|
else
|
||||||
|
filter = filter or {}
|
||||||
|
vim.validate({
|
||||||
|
enable = { enable, 'b', true },
|
||||||
|
filter = { filter, 't', true },
|
||||||
|
})
|
||||||
end
|
end
|
||||||
vim.validate({
|
|
||||||
bufnr = { bufnr, 'n', true },
|
|
||||||
enable = {
|
|
||||||
enable,
|
|
||||||
function(o)
|
|
||||||
return o == nil or type(o) == 'boolean' or type(o) == 'number'
|
|
||||||
end,
|
|
||||||
'boolean or number (deprecated)',
|
|
||||||
},
|
|
||||||
opts = {
|
|
||||||
opts,
|
|
||||||
function(o)
|
|
||||||
return o == nil
|
|
||||||
or (
|
|
||||||
type(o) == 'table'
|
|
||||||
-- TODO(justinmk): support other `vim.diagnostic.Filter` fields.
|
|
||||||
and (vim.tbl_isempty(o) or vim.deep_equal(vim.tbl_keys(o), { 'ns_id' }))
|
|
||||||
)
|
|
||||||
end,
|
|
||||||
'vim.diagnostic.Filter table (only ns_id is supported currently)',
|
|
||||||
},
|
|
||||||
})
|
|
||||||
enable = enable == nil and true or enable
|
enable = enable == nil and true or enable
|
||||||
|
local bufnr = filter.bufnr
|
||||||
|
|
||||||
if bufnr == nil then
|
if bufnr == nil then
|
||||||
if opts.ns_id == nil then
|
if filter.ns_id == nil then
|
||||||
diagnostic_disabled = (
|
diagnostic_disabled = (
|
||||||
enable
|
enable
|
||||||
-- Enable everything by setting diagnostic_disabled to an empty table.
|
-- Enable everything by setting diagnostic_disabled to an empty table.
|
||||||
@ -2007,12 +2014,12 @@ function M.enable(bufnr, enable, opts)
|
|||||||
})
|
})
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
local ns = M.get_namespace(opts.ns_id)
|
local ns = M.get_namespace(filter.ns_id)
|
||||||
ns.disabled = not enable
|
ns.disabled = not enable
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
bufnr = get_bufnr(bufnr)
|
bufnr = get_bufnr(bufnr)
|
||||||
if opts.ns_id == nil then
|
if filter.ns_id == nil then
|
||||||
diagnostic_disabled[bufnr] = (not enable) and true or nil
|
diagnostic_disabled[bufnr] = (not enable) and true or nil
|
||||||
else
|
else
|
||||||
if type(diagnostic_disabled[bufnr]) ~= 'table' then
|
if type(diagnostic_disabled[bufnr]) ~= 'table' then
|
||||||
@ -2022,14 +2029,14 @@ function M.enable(bufnr, enable, opts)
|
|||||||
diagnostic_disabled[bufnr] = {}
|
diagnostic_disabled[bufnr] = {}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
diagnostic_disabled[bufnr][opts.ns_id] = (not enable) and true or nil
|
diagnostic_disabled[bufnr][filter.ns_id] = (not enable) and true or nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if enable then
|
if enable then
|
||||||
M.show(opts.ns_id, bufnr)
|
M.show(filter.ns_id, bufnr)
|
||||||
else
|
else
|
||||||
M.hide(opts.ns_id, bufnr)
|
M.hide(filter.ns_id, bufnr)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -349,7 +349,7 @@ api.nvim_set_decoration_provider(namespace, {
|
|||||||
end,
|
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
|
--- @return boolean
|
||||||
--- @since 12
|
--- @since 12
|
||||||
function M.is_enabled(bufnr)
|
function M.is_enabled(bufnr)
|
||||||
@ -360,23 +360,39 @@ function M.is_enabled(bufnr)
|
|||||||
return bufstates[bufnr] and bufstates[bufnr].enabled or false
|
return bufstates[bufnr] and bufstates[bufnr].enabled or false
|
||||||
end
|
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.
|
--- Enables or disables inlay hints for a buffer.
|
||||||
---
|
---
|
||||||
--- To "toggle", pass the inverse of `is_enabled()`:
|
--- To "toggle", pass the inverse of `is_enabled()`:
|
||||||
---
|
---
|
||||||
--- ```lua
|
--- ```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 enable (boolean|nil) true/nil to enable, false to disable
|
||||||
|
--- @param filter vim.lsp.inlay_hint.enable.Filter?
|
||||||
--- @since 12
|
--- @since 12
|
||||||
function M.enable(bufnr, enable)
|
function M.enable(enable, filter)
|
||||||
vim.validate({ enable = { enable, 'boolean', true }, bufnr = { bufnr, 'number', true } })
|
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
|
if enable == false then
|
||||||
_disable(bufnr)
|
_disable(filter.bufnr)
|
||||||
else
|
else
|
||||||
_enable(bufnr)
|
_enable(filter.bufnr)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -329,7 +329,7 @@ describe('vim.diagnostic', function()
|
|||||||
eq(
|
eq(
|
||||||
{ 1, 1, 2, 0, 2 },
|
{ 1, 1, 2, 0, 2 },
|
||||||
exec_lua [[
|
exec_lua [[
|
||||||
vim.diagnostic.enable(diagnostic_bufnr, false, { ns_id = diagnostic_ns })
|
vim.diagnostic.enable(false, { bufnr = diagnostic_bufnr, ns_id = diagnostic_ns })
|
||||||
return {
|
return {
|
||||||
count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.ERROR, diagnostic_ns),
|
count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.ERROR, diagnostic_ns),
|
||||||
count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.WARN, other_ns),
|
count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.WARN, other_ns),
|
||||||
@ -344,7 +344,7 @@ describe('vim.diagnostic', function()
|
|||||||
eq(
|
eq(
|
||||||
all_highlights,
|
all_highlights,
|
||||||
exec_lua([[
|
exec_lua([[
|
||||||
vim.diagnostic.enable(diagnostic_bufnr, true, { ns_id = diagnostic_ns })
|
vim.diagnostic.enable(true, { bufnr = diagnostic_bufnr, ns_id = diagnostic_ns })
|
||||||
return {
|
return {
|
||||||
count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.ERROR, diagnostic_ns),
|
count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.ERROR, diagnostic_ns),
|
||||||
count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.WARN, other_ns),
|
count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.WARN, other_ns),
|
||||||
@ -371,7 +371,7 @@ describe('vim.diagnostic', function()
|
|||||||
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, ns_1_diags)
|
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, ns_1_diags)
|
||||||
vim.diagnostic.set(other_ns, diagnostic_bufnr, ns_2_diags)
|
vim.diagnostic.set(other_ns, diagnostic_bufnr, ns_2_diags)
|
||||||
|
|
||||||
vim.diagnostic.enable(diagnostic_bufnr, false, { ns_id = diagnostic_ns })
|
vim.diagnostic.enable(false, { bufnr = diagnostic_bufnr, ns_id = diagnostic_ns })
|
||||||
|
|
||||||
return {
|
return {
|
||||||
count_extmarks(diagnostic_bufnr, diagnostic_ns),
|
count_extmarks(diagnostic_bufnr, diagnostic_ns),
|
||||||
@ -383,8 +383,8 @@ describe('vim.diagnostic', function()
|
|||||||
eq(
|
eq(
|
||||||
{ 4, 0 },
|
{ 4, 0 },
|
||||||
exec_lua [[
|
exec_lua [[
|
||||||
vim.diagnostic.enable(diagnostic_bufnr, true, { ns_id = diagnostic_ns })
|
vim.diagnostic.enable(true, { bufnr = diagnostic_bufnr, ns_id = diagnostic_ns })
|
||||||
vim.diagnostic.enable(diagnostic_bufnr, false, { ns_id = other_ns })
|
vim.diagnostic.enable(false, { bufnr = diagnostic_bufnr, ns_id = other_ns })
|
||||||
|
|
||||||
return {
|
return {
|
||||||
count_extmarks(diagnostic_bufnr, diagnostic_ns),
|
count_extmarks(diagnostic_bufnr, diagnostic_ns),
|
||||||
@ -478,6 +478,31 @@ describe('vim.diagnostic', function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
describe('enable() and disable()', function()
|
describe('enable() and disable()', function()
|
||||||
|
it('validation', function()
|
||||||
|
matches('expected boolean, got table', pcall_err(exec_lua, [[vim.diagnostic.enable({})]]))
|
||||||
|
matches(
|
||||||
|
'filter: expected table, got string',
|
||||||
|
pcall_err(exec_lua, [[vim.diagnostic.enable(false, '')]])
|
||||||
|
)
|
||||||
|
matches(
|
||||||
|
'Invalid buffer id: 42',
|
||||||
|
pcall_err(exec_lua, [[vim.diagnostic.enable(true, { bufnr = 42 })]])
|
||||||
|
)
|
||||||
|
matches(
|
||||||
|
'expected boolean, got number',
|
||||||
|
pcall_err(exec_lua, [[vim.diagnostic.enable(42, {})]])
|
||||||
|
)
|
||||||
|
matches('expected boolean, got table', pcall_err(exec_lua, [[vim.diagnostic.enable({}, 42)]]))
|
||||||
|
|
||||||
|
-- Deprecated signature.
|
||||||
|
matches('Invalid buffer id: 42', pcall_err(exec_lua, [[vim.diagnostic.enable(42)]]))
|
||||||
|
-- Deprecated signature.
|
||||||
|
matches(
|
||||||
|
'namespace does not exist or is anonymous',
|
||||||
|
pcall_err(exec_lua, [[vim.diagnostic.enable(nil, 42)]])
|
||||||
|
)
|
||||||
|
end)
|
||||||
|
|
||||||
it('without arguments', function()
|
it('without arguments', function()
|
||||||
local result = exec_lua [[
|
local result = exec_lua [[
|
||||||
vim.api.nvim_win_set_buf(0, diagnostic_bufnr)
|
vim.api.nvim_win_set_buf(0, diagnostic_bufnr)
|
||||||
@ -500,7 +525,7 @@ describe('vim.diagnostic', function()
|
|||||||
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
||||||
count_extmarks(diagnostic_bufnr, other_ns))
|
count_extmarks(diagnostic_bufnr, other_ns))
|
||||||
|
|
||||||
vim.diagnostic.enable(nil, false)
|
vim.diagnostic.enable(false)
|
||||||
|
|
||||||
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
||||||
count_extmarks(diagnostic_bufnr, other_ns))
|
count_extmarks(diagnostic_bufnr, other_ns))
|
||||||
@ -561,19 +586,19 @@ describe('vim.diagnostic', function()
|
|||||||
count_extmarks(diagnostic_bufnr, other_ns) +
|
count_extmarks(diagnostic_bufnr, other_ns) +
|
||||||
count_extmarks(other_bufnr, diagnostic_ns))
|
count_extmarks(other_bufnr, diagnostic_ns))
|
||||||
|
|
||||||
vim.diagnostic.enable(diagnostic_bufnr, false)
|
vim.diagnostic.enable(false, { bufnr = diagnostic_bufnr })
|
||||||
|
|
||||||
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
||||||
count_extmarks(diagnostic_bufnr, other_ns) +
|
count_extmarks(diagnostic_bufnr, other_ns) +
|
||||||
count_extmarks(other_bufnr, diagnostic_ns))
|
count_extmarks(other_bufnr, diagnostic_ns))
|
||||||
|
|
||||||
vim.diagnostic.enable(diagnostic_bufnr)
|
vim.diagnostic.enable(true, { bufnr = diagnostic_bufnr })
|
||||||
|
|
||||||
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
||||||
count_extmarks(diagnostic_bufnr, other_ns) +
|
count_extmarks(diagnostic_bufnr, other_ns) +
|
||||||
count_extmarks(other_bufnr, diagnostic_ns))
|
count_extmarks(other_bufnr, diagnostic_ns))
|
||||||
|
|
||||||
vim.diagnostic.enable(other_bufnr, false)
|
vim.diagnostic.enable(false, { bufnr = other_bufnr })
|
||||||
|
|
||||||
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
||||||
count_extmarks(diagnostic_bufnr, other_ns) +
|
count_extmarks(diagnostic_bufnr, other_ns) +
|
||||||
@ -610,17 +635,17 @@ describe('vim.diagnostic', function()
|
|||||||
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
||||||
count_extmarks(diagnostic_bufnr, other_ns))
|
count_extmarks(diagnostic_bufnr, other_ns))
|
||||||
|
|
||||||
vim.diagnostic.enable(nil, false, { ns_id = diagnostic_ns })
|
vim.diagnostic.enable(false, { ns_id = diagnostic_ns })
|
||||||
|
|
||||||
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
||||||
count_extmarks(diagnostic_bufnr, other_ns))
|
count_extmarks(diagnostic_bufnr, other_ns))
|
||||||
|
|
||||||
vim.diagnostic.enable(nil, true, { ns_id = diagnostic_ns })
|
vim.diagnostic.enable(true, { ns_id = diagnostic_ns })
|
||||||
|
|
||||||
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
||||||
count_extmarks(diagnostic_bufnr, other_ns))
|
count_extmarks(diagnostic_bufnr, other_ns))
|
||||||
|
|
||||||
vim.diagnostic.enable(nil, false, { ns_id = other_ns })
|
vim.diagnostic.enable(false, { ns_id = other_ns })
|
||||||
|
|
||||||
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
||||||
count_extmarks(diagnostic_bufnr, other_ns))
|
count_extmarks(diagnostic_bufnr, other_ns))
|
||||||
@ -669,7 +694,7 @@ describe('vim.diagnostic', function()
|
|||||||
if legacy then
|
if legacy then
|
||||||
vim.diagnostic.disable(diagnostic_bufnr, diagnostic_ns)
|
vim.diagnostic.disable(diagnostic_bufnr, diagnostic_ns)
|
||||||
else
|
else
|
||||||
vim.diagnostic.enable(diagnostic_bufnr, false, { ns_id = diagnostic_ns })
|
vim.diagnostic.enable(false, { bufnr = diagnostic_bufnr, ns_id = diagnostic_ns })
|
||||||
end
|
end
|
||||||
|
|
||||||
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
||||||
@ -679,7 +704,7 @@ describe('vim.diagnostic', function()
|
|||||||
if legacy then
|
if legacy then
|
||||||
vim.diagnostic.disable(diagnostic_bufnr, other_ns)
|
vim.diagnostic.disable(diagnostic_bufnr, other_ns)
|
||||||
else
|
else
|
||||||
vim.diagnostic.enable(diagnostic_bufnr, false, { ns_id = other_ns })
|
vim.diagnostic.enable(false, { bufnr = diagnostic_bufnr, ns_id = other_ns })
|
||||||
end
|
end
|
||||||
|
|
||||||
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
||||||
@ -689,7 +714,7 @@ describe('vim.diagnostic', function()
|
|||||||
if legacy then
|
if legacy then
|
||||||
vim.diagnostic.enable(diagnostic_bufnr, diagnostic_ns)
|
vim.diagnostic.enable(diagnostic_bufnr, diagnostic_ns)
|
||||||
else
|
else
|
||||||
vim.diagnostic.enable(diagnostic_bufnr, true, { ns_id = diagnostic_ns })
|
vim.diagnostic.enable(true, { bufnr = diagnostic_bufnr, ns_id = diagnostic_ns })
|
||||||
end
|
end
|
||||||
|
|
||||||
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
||||||
@ -701,7 +726,7 @@ describe('vim.diagnostic', function()
|
|||||||
vim.diagnostic.disable(other_bufnr, other_ns)
|
vim.diagnostic.disable(other_bufnr, other_ns)
|
||||||
else
|
else
|
||||||
-- Should have no effect
|
-- Should have no effect
|
||||||
vim.diagnostic.enable(other_bufnr, false, { ns_id = other_ns })
|
vim.diagnostic.enable(false, { bufnr = other_bufnr, ns_id = other_ns })
|
||||||
end
|
end
|
||||||
|
|
||||||
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
|
||||||
@ -1592,7 +1617,7 @@ describe('vim.diagnostic', function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
describe('set()', function()
|
describe('set()', function()
|
||||||
it('validates its arguments', function()
|
it('validation', function()
|
||||||
matches(
|
matches(
|
||||||
'expected a list of diagnostics',
|
'expected a list of diagnostics',
|
||||||
pcall_err(exec_lua, [[vim.diagnostic.set(1, 0, {lnum = 1, col = 2})]])
|
pcall_err(exec_lua, [[vim.diagnostic.set(1, 0, {lnum = 1, col = 2})]])
|
||||||
@ -1779,7 +1804,7 @@ describe('vim.diagnostic', function()
|
|||||||
eq(
|
eq(
|
||||||
0,
|
0,
|
||||||
exec_lua [[
|
exec_lua [[
|
||||||
vim.diagnostic.enable(diagnostic_bufnr, false, { ns_id = diagnostic_ns })
|
vim.diagnostic.enable(false, { bufnr = diagnostic_bufnr, ns_id = diagnostic_ns })
|
||||||
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
|
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
|
||||||
make_error('Diagnostic From Server 1:1', 1, 1, 1, 1),
|
make_error('Diagnostic From Server 1:1', 1, 1, 1, 1),
|
||||||
})
|
})
|
||||||
@ -1790,7 +1815,7 @@ describe('vim.diagnostic', function()
|
|||||||
eq(
|
eq(
|
||||||
2,
|
2,
|
||||||
exec_lua [[
|
exec_lua [[
|
||||||
vim.diagnostic.enable(diagnostic_bufnr, true, { ns_id = diagnostic_ns })
|
vim.diagnostic.enable(true, { bufnr = diagnostic_bufnr, ns_id = diagnostic_ns })
|
||||||
return count_extmarks(diagnostic_bufnr, diagnostic_ns)
|
return count_extmarks(diagnostic_bufnr, diagnostic_ns)
|
||||||
]]
|
]]
|
||||||
)
|
)
|
||||||
@ -2750,31 +2775,33 @@ describe('vim.diagnostic', function()
|
|||||||
|
|
||||||
it('is_enabled', function()
|
it('is_enabled', function()
|
||||||
eq(
|
eq(
|
||||||
{ false, false, false, false },
|
{ false, false, false, false, false },
|
||||||
exec_lua [[
|
exec_lua [[
|
||||||
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
|
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
|
||||||
make_error('Diagnostic #1', 1, 1, 1, 1),
|
make_error('Diagnostic #1', 1, 1, 1, 1),
|
||||||
})
|
})
|
||||||
vim.api.nvim_set_current_buf(diagnostic_bufnr)
|
vim.api.nvim_set_current_buf(diagnostic_bufnr)
|
||||||
vim.diagnostic.enable(nil, false)
|
vim.diagnostic.enable(false)
|
||||||
return {
|
return {
|
||||||
vim.diagnostic.is_enabled(),
|
vim.diagnostic.is_enabled(),
|
||||||
vim.diagnostic.is_enabled(diagnostic_bufnr),
|
vim.diagnostic.is_enabled{ bufnr = 0 },
|
||||||
vim.diagnostic.is_enabled(diagnostic_bufnr, diagnostic_ns),
|
vim.diagnostic.is_enabled{ bufnr = diagnostic_bufnr },
|
||||||
vim.diagnostic.is_enabled(_, diagnostic_ns),
|
vim.diagnostic.is_enabled{ bufnr = diagnostic_bufnr, ns_id = diagnostic_ns },
|
||||||
|
vim.diagnostic.is_enabled{ bufnr = 0, ns_id = diagnostic_ns },
|
||||||
}
|
}
|
||||||
]]
|
]]
|
||||||
)
|
)
|
||||||
|
|
||||||
eq(
|
eq(
|
||||||
{ true, true, true, true },
|
{ true, true, true, true, true },
|
||||||
exec_lua [[
|
exec_lua [[
|
||||||
vim.diagnostic.enable()
|
vim.diagnostic.enable()
|
||||||
return {
|
return {
|
||||||
vim.diagnostic.is_enabled(),
|
vim.diagnostic.is_enabled(),
|
||||||
vim.diagnostic.is_enabled(diagnostic_bufnr),
|
vim.diagnostic.is_enabled{ bufnr = 0 },
|
||||||
vim.diagnostic.is_enabled(diagnostic_bufnr, diagnostic_ns),
|
vim.diagnostic.is_enabled{ bufnr = diagnostic_bufnr },
|
||||||
vim.diagnostic.is_enabled(_, diagnostic_ns),
|
vim.diagnostic.is_enabled{ bufnr = diagnostic_bufnr, ns_id = diagnostic_ns },
|
||||||
|
vim.diagnostic.is_enabled{ bufnr = 0, ns_id = diagnostic_ns },
|
||||||
}
|
}
|
||||||
]]
|
]]
|
||||||
)
|
)
|
||||||
|
@ -147,10 +147,13 @@ describe('lua stdlib', function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
it('when plugin = nil', function()
|
it('when plugin = nil', function()
|
||||||
|
local was_removed = (
|
||||||
|
vim.version.ge(current_version, '0.10') and 'was removed' or 'will be removed'
|
||||||
|
)
|
||||||
eq(
|
eq(
|
||||||
dedent [[
|
dedent([[
|
||||||
foo.bar() is deprecated, use zub.wooo{ok=yay} instead. :help deprecated
|
foo.bar() is deprecated, use zub.wooo{ok=yay} instead. :help deprecated
|
||||||
This feature will be removed in Nvim version 0.10]],
|
Feature %s in Nvim 0.10]]):format(was_removed),
|
||||||
exec_lua('return vim.deprecate(...)', 'foo.bar()', 'zub.wooo{ok=yay}', '0.10')
|
exec_lua('return vim.deprecate(...)', 'foo.bar()', 'zub.wooo{ok=yay}', '0.10')
|
||||||
)
|
)
|
||||||
-- Same message, skipped.
|
-- Same message, skipped.
|
||||||
@ -166,7 +169,7 @@ describe('lua stdlib', function()
|
|||||||
eq(
|
eq(
|
||||||
dedent [[
|
dedent [[
|
||||||
foo.hard_dep() is deprecated, use vim.new_api() instead. :help deprecated
|
foo.hard_dep() is deprecated, use vim.new_api() instead. :help deprecated
|
||||||
This feature will be removed in Nvim version 0.11]],
|
Feature will be removed in Nvim 0.11]],
|
||||||
exec_lua('return vim.deprecate(...)', 'foo.hard_dep()', 'vim.new_api()', '0.11')
|
exec_lua('return vim.deprecate(...)', 'foo.hard_dep()', 'vim.new_api()', '0.11')
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -174,7 +177,7 @@ describe('lua stdlib', function()
|
|||||||
eq(
|
eq(
|
||||||
dedent [[
|
dedent [[
|
||||||
foo.baz() is deprecated. :help deprecated
|
foo.baz() is deprecated. :help deprecated
|
||||||
This feature will be removed in Nvim version 1.0]],
|
Feature will be removed in Nvim 1.0]],
|
||||||
exec_lua [[ return vim.deprecate('foo.baz()', nil, '1.0') ]]
|
exec_lua [[ return vim.deprecate('foo.baz()', nil, '1.0') ]]
|
||||||
)
|
)
|
||||||
end)
|
end)
|
||||||
@ -184,7 +187,7 @@ describe('lua stdlib', function()
|
|||||||
eq(
|
eq(
|
||||||
dedent [[
|
dedent [[
|
||||||
foo.bar() is deprecated, use zub.wooo{ok=yay} instead.
|
foo.bar() is deprecated, use zub.wooo{ok=yay} instead.
|
||||||
This feature will be removed in my-plugin.nvim version 0.3.0]],
|
Feature will be removed in my-plugin.nvim 0.3.0]],
|
||||||
exec_lua(
|
exec_lua(
|
||||||
'return vim.deprecate(...)',
|
'return vim.deprecate(...)',
|
||||||
'foo.bar()',
|
'foo.bar()',
|
||||||
@ -199,7 +202,7 @@ describe('lua stdlib', function()
|
|||||||
eq(
|
eq(
|
||||||
dedent [[
|
dedent [[
|
||||||
foo.bar() is deprecated, use zub.wooo{ok=yay} instead.
|
foo.bar() is deprecated, use zub.wooo{ok=yay} instead.
|
||||||
This feature will be removed in my-plugin.nvim version 0.11.0]],
|
Feature will be removed in my-plugin.nvim 0.11.0]],
|
||||||
exec_lua(
|
exec_lua(
|
||||||
'return vim.deprecate(...)',
|
'return vim.deprecate(...)',
|
||||||
'foo.bar()',
|
'foo.bar()',
|
||||||
|
@ -84,7 +84,7 @@ before_each(function()
|
|||||||
)
|
)
|
||||||
|
|
||||||
insert(text)
|
insert(text)
|
||||||
exec_lua([[vim.lsp.inlay_hint.enable(bufnr)]])
|
exec_lua([[vim.lsp.inlay_hint.enable(true, { bufnr = bufnr })]])
|
||||||
screen:expect({ grid = grid_with_inlay_hints })
|
screen:expect({ grid = grid_with_inlay_hints })
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@ -111,7 +111,7 @@ describe('vim.lsp.inlay_hint', function()
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
client2 = vim.lsp.start({ name = 'dummy2', cmd = server2.cmd })
|
client2 = vim.lsp.start({ name = 'dummy2', cmd = server2.cmd })
|
||||||
vim.lsp.inlay_hint.enable(bufnr)
|
vim.lsp.inlay_hint.enable(true, { bufnr = bufnr })
|
||||||
]])
|
]])
|
||||||
|
|
||||||
exec_lua([[ vim.lsp.stop_client(client2) ]])
|
exec_lua([[ vim.lsp.stop_client(client2) ]])
|
||||||
@ -119,17 +119,36 @@ describe('vim.lsp.inlay_hint', function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
describe('enable()', function()
|
describe('enable()', function()
|
||||||
|
it('validation', function()
|
||||||
|
t.matches(
|
||||||
|
'enable: expected boolean, got table',
|
||||||
|
t.pcall_err(exec_lua, [[vim.lsp.inlay_hint.enable({}, { bufnr = bufnr })]])
|
||||||
|
)
|
||||||
|
t.matches(
|
||||||
|
'filter: expected table, got number',
|
||||||
|
t.pcall_err(exec_lua, [[vim.lsp.inlay_hint.enable(true, 42)]])
|
||||||
|
)
|
||||||
|
|
||||||
|
exec_lua [[vim.notify = function() end]]
|
||||||
|
t.matches(
|
||||||
|
'see %:help vim%.lsp%.inlay_hint%.enable',
|
||||||
|
t.pcall_err(exec_lua, [[vim.lsp.inlay_hint.enable(42)]])
|
||||||
|
)
|
||||||
|
end)
|
||||||
|
|
||||||
it('clears/applies inlay hints when passed false/true/nil', function()
|
it('clears/applies inlay hints when passed false/true/nil', function()
|
||||||
exec_lua([[vim.lsp.inlay_hint.enable(bufnr, false)]])
|
exec_lua([[vim.lsp.inlay_hint.enable(false, { bufnr = bufnr })]])
|
||||||
screen:expect({ grid = grid_without_inlay_hints, unchanged = true })
|
screen:expect({ grid = grid_without_inlay_hints, unchanged = true })
|
||||||
|
|
||||||
exec_lua([[vim.lsp.inlay_hint.enable(bufnr, true)]])
|
exec_lua([[vim.lsp.inlay_hint.enable(true, { bufnr = bufnr })]])
|
||||||
screen:expect({ grid = grid_with_inlay_hints, unchanged = true })
|
screen:expect({ grid = grid_with_inlay_hints, unchanged = true })
|
||||||
|
|
||||||
exec_lua([[vim.lsp.inlay_hint.enable(bufnr, not vim.lsp.inlay_hint.is_enabled(bufnr))]])
|
exec_lua(
|
||||||
|
[[vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled(bufnr), { bufnr = bufnr })]]
|
||||||
|
)
|
||||||
screen:expect({ grid = grid_without_inlay_hints, unchanged = true })
|
screen:expect({ grid = grid_without_inlay_hints, unchanged = true })
|
||||||
|
|
||||||
exec_lua([[vim.lsp.inlay_hint.enable(bufnr)]])
|
exec_lua([[vim.lsp.inlay_hint.enable(true, { bufnr = bufnr })]])
|
||||||
screen:expect({ grid = grid_with_inlay_hints, unchanged = true })
|
screen:expect({ grid = grid_with_inlay_hints, unchanged = true })
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
@ -163,7 +182,7 @@ describe('vim.lsp.inlay_hint', function()
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
client2 = vim.lsp.start({ name = 'dummy2', cmd = server2.cmd })
|
client2 = vim.lsp.start({ name = 'dummy2', cmd = server2.cmd })
|
||||||
vim.lsp.inlay_hint.enable(bufnr)
|
vim.lsp.inlay_hint.enable(true, { bufnr = bufnr })
|
||||||
]],
|
]],
|
||||||
expected2
|
expected2
|
||||||
)
|
)
|
||||||
|
@ -1328,7 +1328,7 @@ describe('LSP', function()
|
|||||||
on_handler = function(err, result, ctx)
|
on_handler = function(err, result, ctx)
|
||||||
if ctx.method == 'start' then
|
if ctx.method == 'start' then
|
||||||
exec_lua [[
|
exec_lua [[
|
||||||
vim.lsp.inlay_hint.enable(BUFFER)
|
vim.lsp.inlay_hint.enable(true, { bufnr = BUFFER })
|
||||||
]]
|
]]
|
||||||
end
|
end
|
||||||
if ctx.method == 'textDocument/inlayHint' then
|
if ctx.method == 'textDocument/inlayHint' then
|
||||||
|
Loading…
Reference in New Issue
Block a user