aboutsummaryrefslogtreecommitdiff
path: root/test/functional/lua/diagnostic_spec.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2024-04-08 00:41:41 +0200
committerJustin M. Keyes <justinkz@gmail.com>2024-04-15 13:54:33 +0200
commit26765e8461c1ba1e9a351632212cf89900221781 (patch)
tree6cc8401fb7a758ee3a3eed570b9fa0e9b8b8087f /test/functional/lua/diagnostic_spec.lua
parent57adf8c6e01d9395eb52fe03571c535571efdc4b (diff)
downloadrneovim-26765e8461c1ba1e9a351632212cf89900221781.tar.gz
rneovim-26765e8461c1ba1e9a351632212cf89900221781.tar.bz2
rneovim-26765e8461c1ba1e9a351632212cf89900221781.zip
feat(diagnostic): is_enabled, enable(…, enable:boolean)
Problem: `vim.diagnostic.is_disabled` and `vim.diagnostic.disable` are unnecessary and inconsistent with the "toggle" pattern (established starting with `vim.lsp.inlay_hint`, see https://github.com/neovim/neovim/pull/25512#pullrequestreview-1676750276 As a reminder, the rationale is: - we always need `enable()` - we always end up needing `is_enabled()` - "toggle" can be achieved via `enable(not is_enabled())` - therefore, - `toggle()` and `disable()` are redundant - `is_disabled()` is a needless inconsistency Solution: - Introduce `vim.diagnostic.is_enabled`, and `vim.diagnostic.enable(…, enable:boolean)` - Note: Future improvement would be to add an `enable()` overload `enable(enable:boolean, opts: table)`. - Deprecate `vim.diagnostic.is_disabled`, `vim.diagnostic.disable`
Diffstat (limited to 'test/functional/lua/diagnostic_spec.lua')
-rw-r--r--test/functional/lua/diagnostic_spec.lua58
1 files changed, 45 insertions, 13 deletions
diff --git a/test/functional/lua/diagnostic_spec.lua b/test/functional/lua/diagnostic_spec.lua
index afdf619526..972e2baa71 100644
--- a/test/functional/lua/diagnostic_spec.lua
+++ b/test/functional/lua/diagnostic_spec.lua
@@ -329,7 +329,7 @@ describe('vim.diagnostic', function()
eq(
{ 1, 1, 2, 0, 2 },
exec_lua [[
- vim.diagnostic.disable(diagnostic_bufnr, diagnostic_ns)
+ vim.diagnostic.enable(diagnostic_bufnr, diagnostic_ns, false)
return {
count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.ERROR, diagnostic_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(other_ns, diagnostic_bufnr, ns_2_diags)
- vim.diagnostic.disable(diagnostic_bufnr, diagnostic_ns)
+ vim.diagnostic.enable(diagnostic_bufnr, diagnostic_ns, false)
return {
count_extmarks(diagnostic_bufnr, diagnostic_ns),
@@ -384,7 +384,7 @@ describe('vim.diagnostic', function()
{ 4, 0 },
exec_lua [[
vim.diagnostic.enable(diagnostic_bufnr, diagnostic_ns)
- vim.diagnostic.disable(diagnostic_bufnr, other_ns)
+ vim.diagnostic.enable(diagnostic_bufnr, other_ns, false)
return {
count_extmarks(diagnostic_bufnr, diagnostic_ns),
@@ -500,7 +500,7 @@ describe('vim.diagnostic', function()
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
count_extmarks(diagnostic_bufnr, other_ns))
- vim.diagnostic.disable()
+ vim.diagnostic.enable(nil, nil, false)
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
count_extmarks(diagnostic_bufnr, other_ns))
@@ -561,7 +561,7 @@ describe('vim.diagnostic', function()
count_extmarks(diagnostic_bufnr, other_ns) +
count_extmarks(other_bufnr, diagnostic_ns))
- vim.diagnostic.disable(diagnostic_bufnr)
+ vim.diagnostic.enable(diagnostic_bufnr, nil, false)
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
count_extmarks(diagnostic_bufnr, other_ns) +
@@ -573,7 +573,7 @@ describe('vim.diagnostic', function()
count_extmarks(diagnostic_bufnr, other_ns) +
count_extmarks(other_bufnr, diagnostic_ns))
- vim.diagnostic.disable(other_bufnr)
+ vim.diagnostic.enable(other_bufnr, nil, false)
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
count_extmarks(diagnostic_bufnr, other_ns) +
@@ -610,7 +610,7 @@ describe('vim.diagnostic', function()
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
count_extmarks(diagnostic_bufnr, other_ns))
- vim.diagnostic.disable(nil, diagnostic_ns)
+ vim.diagnostic.enable(nil, diagnostic_ns, false)
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
count_extmarks(diagnostic_bufnr, other_ns))
@@ -620,7 +620,7 @@ describe('vim.diagnostic', function()
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
count_extmarks(diagnostic_bufnr, other_ns))
- vim.diagnostic.disable(nil, other_ns)
+ vim.diagnostic.enable(nil, other_ns, false)
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
count_extmarks(diagnostic_bufnr, other_ns))
@@ -663,13 +663,13 @@ describe('vim.diagnostic', function()
count_extmarks(diagnostic_bufnr, other_ns) +
count_extmarks(other_bufnr, diagnostic_ns))
- vim.diagnostic.disable(diagnostic_bufnr, diagnostic_ns)
+ vim.diagnostic.enable(diagnostic_bufnr, diagnostic_ns, false)
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
count_extmarks(diagnostic_bufnr, other_ns) +
count_extmarks(other_bufnr, diagnostic_ns))
- vim.diagnostic.disable(diagnostic_bufnr, other_ns)
+ vim.diagnostic.enable(diagnostic_bufnr, other_ns, false)
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
count_extmarks(diagnostic_bufnr, other_ns) +
@@ -682,7 +682,7 @@ describe('vim.diagnostic', function()
count_extmarks(other_bufnr, diagnostic_ns))
-- Should have no effect
- vim.diagnostic.disable(other_bufnr, other_ns)
+ vim.diagnostic.enable(other_bufnr, other_ns, false)
table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
count_extmarks(diagnostic_bufnr, other_ns) +
@@ -1742,7 +1742,7 @@ describe('vim.diagnostic', function()
eq(
0,
exec_lua [[
- vim.diagnostic.disable(diagnostic_bufnr, diagnostic_ns)
+ vim.diagnostic.enable(diagnostic_bufnr, diagnostic_ns, false)
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
make_error('Diagnostic From Server 1:1', 1, 1, 1, 1),
})
@@ -2711,7 +2711,39 @@ describe('vim.diagnostic', function()
)
end)
- it('checks if diagnostics are disabled in a buffer', function()
+ it('is_enabled', function()
+ eq(
+ { false, false, false, false },
+ exec_lua [[
+ vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
+ make_error('Diagnostic #1', 1, 1, 1, 1),
+ })
+ vim.api.nvim_set_current_buf(diagnostic_bufnr)
+ vim.diagnostic.enable(nil, nil, false)
+ return {
+ vim.diagnostic.is_enabled(),
+ vim.diagnostic.is_enabled(diagnostic_bufnr),
+ vim.diagnostic.is_enabled(diagnostic_bufnr, diagnostic_ns),
+ vim.diagnostic.is_enabled(_, diagnostic_ns),
+ }
+ ]]
+ )
+
+ eq(
+ { true, true, true, true },
+ exec_lua [[
+ vim.diagnostic.enable()
+ return {
+ vim.diagnostic.is_enabled(),
+ vim.diagnostic.is_enabled(diagnostic_bufnr),
+ vim.diagnostic.is_enabled(diagnostic_bufnr, diagnostic_ns),
+ vim.diagnostic.is_enabled(_, diagnostic_ns),
+ }
+ ]]
+ )
+ end)
+
+ it('is_disabled (deprecated)', function()
eq(
{ true, true, true, true },
exec_lua [[