aboutsummaryrefslogtreecommitdiff
path: root/test/functional/lua/diagnostic_spec.lua
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2024-11-19 22:57:13 +0000
committerJosh Rahm <joshuarahm@gmail.com>2024-11-19 22:57:13 +0000
commit9be89f131f87608f224f0ee06d199fcd09d32176 (patch)
tree11022dcfa9e08cb4ac5581b16734196128688d48 /test/functional/lua/diagnostic_spec.lua
parentff7ed8f586589d620a806c3758fac4a47a8e7e15 (diff)
parent88085c2e80a7e3ac29aabb6b5420377eed99b8b6 (diff)
downloadrneovim-9be89f131f87608f224f0ee06d199fcd09d32176.tar.gz
rneovim-9be89f131f87608f224f0ee06d199fcd09d32176.tar.bz2
rneovim-9be89f131f87608f224f0ee06d199fcd09d32176.zip
Merge remote-tracking branch 'upstream/master' into mix_20240309
Diffstat (limited to 'test/functional/lua/diagnostic_spec.lua')
-rw-r--r--test/functional/lua/diagnostic_spec.lua3560
1 files changed, 2017 insertions, 1543 deletions
diff --git a/test/functional/lua/diagnostic_spec.lua b/test/functional/lua/diagnostic_spec.lua
index 05082bc132..4ae1146703 100644
--- a/test/functional/lua/diagnostic_spec.lua
+++ b/test/functional/lua/diagnostic_spec.lua
@@ -1,7 +1,6 @@
local t = require('test.testutil')
local n = require('test.functional.testnvim')()
-local NIL = vim.NIL
local command = n.command
local clear = n.clear
local exec_lua = n.exec_lua
@@ -15,10 +14,10 @@ describe('vim.diagnostic', function()
before_each(function()
clear()
- exec_lua [[
+ exec_lua(function()
require('vim.diagnostic')
- function make_diagnostic(msg, lnum, col, end_lnum, end_col, severity, source, code)
+ local function make_diagnostic(msg, lnum, col, end_lnum, end_col, severity, source, code)
return {
lnum = lnum,
col = col,
@@ -31,54 +30,97 @@ describe('vim.diagnostic', function()
}
end
- function make_error(msg, lnum, col, end_lnum, end_col, source, code)
- return make_diagnostic(msg, lnum, col, end_lnum, end_col, vim.diagnostic.severity.ERROR, source, code)
+ function _G.make_error(msg, lnum, col, end_lnum, end_col, source, code)
+ return make_diagnostic(
+ msg,
+ lnum,
+ col,
+ end_lnum,
+ end_col,
+ vim.diagnostic.severity.ERROR,
+ source,
+ code
+ )
end
- function make_warning(msg, lnum, col, end_lnum, end_col, source, code)
- return make_diagnostic(msg, lnum, col, end_lnum, end_col, vim.diagnostic.severity.WARN, source, code)
+ function _G.make_warning(msg, lnum, col, end_lnum, end_col, source, code)
+ return make_diagnostic(
+ msg,
+ lnum,
+ col,
+ end_lnum,
+ end_col,
+ vim.diagnostic.severity.WARN,
+ source,
+ code
+ )
end
- function make_info(msg, lnum, col, end_lnum, end_col, source, code)
- return make_diagnostic(msg, lnum, col, end_lnum, end_col, vim.diagnostic.severity.INFO, source, code)
+ function _G.make_info(msg, lnum, col, end_lnum, end_col, source, code)
+ return make_diagnostic(
+ msg,
+ lnum,
+ col,
+ end_lnum,
+ end_col,
+ vim.diagnostic.severity.INFO,
+ source,
+ code
+ )
end
- function make_hint(msg, lnum, col, end_lnum, end_col, source, code)
- return make_diagnostic(msg, lnum, col, end_lnum, end_col, vim.diagnostic.severity.HINT, source, code)
+ function _G.make_hint(msg, lnum, col, end_lnum, end_col, source, code)
+ return make_diagnostic(
+ msg,
+ lnum,
+ col,
+ end_lnum,
+ end_col,
+ vim.diagnostic.severity.HINT,
+ source,
+ code
+ )
end
- function count_diagnostics(bufnr, severity, namespace)
- return #vim.diagnostic.get(bufnr, {severity = severity, namespace = namespace})
+ function _G.count_diagnostics(bufnr, severity, namespace)
+ return #vim.diagnostic.get(bufnr, { severity = severity, namespace = namespace })
end
- function count_extmarks(bufnr, namespace)
+ function _G.count_extmarks(bufnr, namespace)
local ns = vim.diagnostic.get_namespace(namespace)
local extmarks = 0
if ns.user_data.virt_text_ns then
- extmarks = extmarks + #vim.api.nvim_buf_get_extmarks(bufnr, ns.user_data.virt_text_ns, 0, -1, {})
+ extmarks = extmarks
+ + #vim.api.nvim_buf_get_extmarks(bufnr, ns.user_data.virt_text_ns, 0, -1, {})
end
if ns.user_data.underline_ns then
- extmarks = extmarks + #vim.api.nvim_buf_get_extmarks(bufnr, ns.user_data.underline_ns, 0, -1, {})
+ extmarks = extmarks
+ + #vim.api.nvim_buf_get_extmarks(bufnr, ns.user_data.underline_ns, 0, -1, {})
end
return extmarks
end
- function get_virt_text_extmarks(ns)
- local ns = vim.diagnostic.get_namespace(ns)
+ function _G.get_virt_text_extmarks(ns)
+ ns = vim.diagnostic.get_namespace(ns)
local virt_text_ns = ns.user_data.virt_text_ns
- return vim.api.nvim_buf_get_extmarks(diagnostic_bufnr, virt_text_ns, 0, -1, {details = true})
+ return vim.api.nvim_buf_get_extmarks(
+ _G.diagnostic_bufnr,
+ virt_text_ns,
+ 0,
+ -1,
+ { details = true }
+ )
end
- ]]
-
- exec_lua([[
- diagnostic_ns = vim.api.nvim_create_namespace("diagnostic_spec")
- other_ns = vim.api.nvim_create_namespace("other_namespace")
- diagnostic_bufnr = vim.api.nvim_create_buf(true, false)
- local lines = {"1st line of text", "2nd line of text", "wow", "cool", "more", "lines"}
- vim.fn.bufload(diagnostic_bufnr)
- vim.api.nvim_buf_set_lines(diagnostic_bufnr, 0, 1, false, lines)
- return diagnostic_bufnr
- ]])
+ end)
+
+ exec_lua(function()
+ _G.diagnostic_ns = vim.api.nvim_create_namespace('diagnostic_spec')
+ _G.other_ns = vim.api.nvim_create_namespace('other_namespace')
+ _G.diagnostic_bufnr = vim.api.nvim_create_buf(true, false)
+ local lines = { '1st line of text', '2nd line of text', 'wow', 'cool', 'more', 'lines' }
+ vim.fn.bufload(_G.diagnostic_bufnr)
+ vim.api.nvim_buf_set_lines(_G.diagnostic_bufnr, 0, 1, false, lines)
+ end)
end)
it('creates highlight groups', function()
@@ -115,27 +157,28 @@ describe('vim.diagnostic', function()
end)
it('retrieves diagnostics from all buffers and namespaces', function()
- local result = exec_lua [[
+ local result = exec_lua(function()
local other_bufnr = vim.api.nvim_create_buf(true, false)
- local lines = vim.api.nvim_buf_get_lines(diagnostic_bufnr, 0, -1, true)
+ local lines = vim.api.nvim_buf_get_lines(_G.diagnostic_bufnr, 0, -1, true)
vim.api.nvim_buf_set_lines(other_bufnr, 0, 1, false, lines)
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
- make_error('Diagnostic #1', 1, 1, 1, 1),
- make_error('Diagnostic #2', 2, 1, 2, 1),
+ vim.diagnostic.set(_G.diagnostic_ns, _G.diagnostic_bufnr, {
+ _G.make_error('Diagnostic #1', 1, 1, 1, 1),
+ _G.make_error('Diagnostic #2', 2, 1, 2, 1),
})
- vim.diagnostic.set(other_ns, other_bufnr, {
- make_error('Diagnostic #3', 3, 1, 3, 1),
+ vim.diagnostic.set(_G.other_ns, other_bufnr, {
+ _G.make_error('Diagnostic #3', 3, 1, 3, 1),
})
return vim.diagnostic.get()
- ]]
+ end)
eq(3, #result)
eq(
2,
- exec_lua(
- [[return #vim.tbl_filter(function(d) return d.bufnr == diagnostic_bufnr end, ...)]],
- result
- )
+ exec_lua(function()
+ return #vim.tbl_filter(function(d)
+ return d.bufnr == _G.diagnostic_bufnr
+ end, result)
+ end)
)
eq('Diagnostic #1', result[1].message)
end)
@@ -143,155 +186,171 @@ describe('vim.diagnostic', function()
it('removes diagnostics from the cache when a buffer is removed', function()
eq(
2,
- exec_lua [[
- vim.api.nvim_win_set_buf(0, diagnostic_bufnr)
- local other_bufnr = vim.fn.bufadd('test | test')
- local lines = vim.api.nvim_buf_get_lines(diagnostic_bufnr, 0, -1, true)
- vim.api.nvim_buf_set_lines(other_bufnr, 0, 1, false, lines)
- vim.cmd('bunload! ' .. other_bufnr)
-
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
- make_error('Diagnostic #1', 1, 1, 1, 1),
- make_error('Diagnostic #2', 2, 1, 2, 1),
- })
- vim.diagnostic.set(diagnostic_ns, other_bufnr, {
- make_error('Diagnostic #3', 3, 1, 3, 1),
- })
- vim.api.nvim_set_current_buf(other_bufnr)
- vim.opt_local.buflisted = true
- vim.cmd('bwipeout!')
- return #vim.diagnostic.get()
- ]]
+ exec_lua(function()
+ vim.api.nvim_win_set_buf(0, _G.diagnostic_bufnr)
+ local other_bufnr = vim.fn.bufadd('test | test')
+ local lines = vim.api.nvim_buf_get_lines(_G.diagnostic_bufnr, 0, -1, true)
+ vim.api.nvim_buf_set_lines(other_bufnr, 0, 1, false, lines)
+ vim.cmd('bunload! ' .. other_bufnr)
+
+ vim.diagnostic.set(_G.diagnostic_ns, _G.diagnostic_bufnr, {
+ _G.make_error('Diagnostic #1', 1, 1, 1, 1),
+ _G.make_error('Diagnostic #2', 2, 1, 2, 1),
+ })
+ vim.diagnostic.set(_G.diagnostic_ns, other_bufnr, {
+ _G.make_error('Diagnostic #3', 3, 1, 3, 1),
+ })
+ vim.api.nvim_set_current_buf(other_bufnr)
+ vim.opt_local.buflisted = true
+ vim.cmd('bwipeout!')
+ return #vim.diagnostic.get()
+ end)
)
eq(
2,
- exec_lua [[
- vim.api.nvim_set_current_buf(diagnostic_bufnr)
- vim.opt_local.buflisted = false
- return #vim.diagnostic.get()
- ]]
+ exec_lua(function()
+ vim.api.nvim_set_current_buf(_G.diagnostic_bufnr)
+ vim.opt_local.buflisted = false
+ return #vim.diagnostic.get()
+ end)
)
eq(
0,
- exec_lua [[
- vim.cmd('bwipeout!')
- return #vim.diagnostic.get()
- ]]
+ exec_lua(function()
+ vim.cmd('bwipeout!')
+ return #vim.diagnostic.get()
+ end)
)
end)
it('removes diagnostic from stale cache on reset', function()
- local diagnostics = exec_lua [[
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
- make_error('Diagnostic #1', 1, 1, 1, 1),
- make_error('Diagnostic #2', 2, 1, 2, 1),
+ local diagnostics = exec_lua(function()
+ vim.diagnostic.set(_G.diagnostic_ns, _G.diagnostic_bufnr, {
+ _G.make_error('Diagnostic #1', 1, 1, 1, 1),
+ _G.make_error('Diagnostic #2', 2, 1, 2, 1),
})
- local other_bufnr = vim.fn.bufadd('test | test')
- vim.cmd('noautocmd bwipeout! ' .. diagnostic_bufnr)
- return vim.diagnostic.get(diagnostic_bufnr)
- ]]
+ vim.fn.bufadd('test | test')
+ vim.cmd('noautocmd bwipeout! ' .. _G.diagnostic_bufnr)
+ return vim.diagnostic.get(_G.diagnostic_bufnr)
+ end)
eq(2, #diagnostics)
- diagnostics = exec_lua [[
+ diagnostics = exec_lua(function()
vim.diagnostic.reset()
return vim.diagnostic.get()
- ]]
+ end)
eq(0, #diagnostics)
end)
it('always returns a copy of diagnostic tables', function()
- local result = exec_lua [[
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
- make_error('Diagnostic #1', 1, 1, 1, 1),
+ local result = exec_lua(function()
+ vim.diagnostic.set(_G.diagnostic_ns, _G.diagnostic_bufnr, {
+ _G.make_error('Diagnostic #1', 1, 1, 1, 1),
})
local diag = vim.diagnostic.get()
diag[1].col = 10000
return vim.diagnostic.get()[1].col == 10000
- ]]
+ end)
eq(false, result)
end)
it('resolves buffer number 0 to the current buffer', function()
eq(
2,
- exec_lua [[
- vim.api.nvim_set_current_buf(diagnostic_bufnr)
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
- make_error('Diagnostic #1', 1, 1, 1, 1),
- make_error('Diagnostic #2', 2, 1, 2, 1),
- })
- return #vim.diagnostic.get(0)
- ]]
+ exec_lua(function()
+ vim.api.nvim_set_current_buf(_G.diagnostic_bufnr)
+ vim.diagnostic.set(_G.diagnostic_ns, _G.diagnostic_bufnr, {
+ _G.make_error('Diagnostic #1', 1, 1, 1, 1),
+ _G.make_error('Diagnostic #2', 2, 1, 2, 1),
+ })
+ return #vim.diagnostic.get(0)
+ end)
)
end)
it('saves and count a single error', function()
eq(
1,
- exec_lua [[
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
- make_error('Diagnostic #1', 1, 1, 1, 1),
- })
- return count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.ERROR, diagnostic_ns)
- ]]
+ exec_lua(function()
+ vim.diagnostic.set(_G.diagnostic_ns, _G.diagnostic_bufnr, {
+ _G.make_error('Diagnostic #1', 1, 1, 1, 1),
+ })
+ return _G.count_diagnostics(
+ _G.diagnostic_bufnr,
+ vim.diagnostic.severity.ERROR,
+ _G.diagnostic_ns
+ )
+ end)
)
end)
it('saves and count multiple errors', function()
eq(
2,
- exec_lua [[
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
- make_error('Diagnostic #1', 1, 1, 1, 1),
- make_error('Diagnostic #2', 2, 1, 2, 1),
- })
- return count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.ERROR, diagnostic_ns)
- ]]
+ exec_lua(function()
+ vim.diagnostic.set(_G.diagnostic_ns, _G.diagnostic_bufnr, {
+ _G.make_error('Diagnostic #1', 1, 1, 1, 1),
+ _G.make_error('Diagnostic #2', 2, 1, 2, 1),
+ })
+ return _G.count_diagnostics(
+ _G.diagnostic_bufnr,
+ vim.diagnostic.severity.ERROR,
+ _G.diagnostic_ns
+ )
+ end)
)
end)
it('saves and count from multiple namespaces', function()
eq(
{ 1, 1, 2 },
- exec_lua [[
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
- make_error('Diagnostic From Server 1', 1, 1, 1, 1),
- })
- vim.diagnostic.set(other_ns, diagnostic_bufnr, {
- make_error('Diagnostic From Server 2', 1, 1, 1, 1),
- })
- return {
- -- First namespace
- count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.ERROR, diagnostic_ns),
- -- Second namespace
- count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.ERROR, other_ns),
- -- All namespaces
- count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.ERROR),
- }
- ]]
+ exec_lua(function()
+ vim.diagnostic.set(_G.diagnostic_ns, _G.diagnostic_bufnr, {
+ _G.make_error('Diagnostic From Server 1', 1, 1, 1, 1),
+ })
+ vim.diagnostic.set(_G.other_ns, _G.diagnostic_bufnr, {
+ _G.make_error('Diagnostic From Server 2', 1, 1, 1, 1),
+ })
+ return {
+ -- First namespace
+ _G.count_diagnostics(
+ _G.diagnostic_bufnr,
+ vim.diagnostic.severity.ERROR,
+ _G.diagnostic_ns
+ ),
+ -- Second namespace
+ _G.count_diagnostics(_G.diagnostic_bufnr, vim.diagnostic.severity.ERROR, _G.other_ns),
+ -- All namespaces
+ _G.count_diagnostics(_G.diagnostic_bufnr, vim.diagnostic.severity.ERROR),
+ }
+ end)
)
end)
it('saves and count from multiple namespaces with respect to severity', function()
eq(
{ 3, 0, 3 },
- exec_lua [[
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
- make_error('Diagnostic From Server 1:1', 1, 1, 1, 1),
- make_error('Diagnostic From Server 1:2', 2, 2, 2, 2),
- make_error('Diagnostic From Server 1:3', 2, 3, 3, 2),
- })
- vim.diagnostic.set(other_ns, diagnostic_bufnr, {
- make_warning('Warning From Server 2', 3, 3, 3, 3),
- })
- return {
- -- Namespace 1
- count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.ERROR, diagnostic_ns),
- -- Namespace 2
- count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.ERROR, other_ns),
- -- All namespaces
- count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.ERROR),
- }
- ]]
+ exec_lua(function()
+ vim.diagnostic.set(_G.diagnostic_ns, _G.diagnostic_bufnr, {
+ _G.make_error('Diagnostic From Server 1:1', 1, 1, 1, 1),
+ _G.make_error('Diagnostic From Server 1:2', 2, 2, 2, 2),
+ _G.make_error('Diagnostic From Server 1:3', 2, 3, 3, 2),
+ })
+ vim.diagnostic.set(_G.other_ns, _G.diagnostic_bufnr, {
+ _G.make_warning('Warning From Server 2', 3, 3, 3, 3),
+ })
+ return {
+ -- Namespace 1
+ _G.count_diagnostics(
+ _G.diagnostic_bufnr,
+ vim.diagnostic.severity.ERROR,
+ _G.diagnostic_ns
+ ),
+ -- Namespace 2
+ _G.count_diagnostics(_G.diagnostic_bufnr, vim.diagnostic.severity.ERROR, _G.other_ns),
+ -- All namespaces
+ _G.count_diagnostics(_G.diagnostic_bufnr, vim.diagnostic.severity.ERROR),
+ }
+ end)
)
end)
@@ -304,160 +363,190 @@ describe('vim.diagnostic', function()
local all_highlights = { 1, 1, 2, 4, 2 }
eq(
all_highlights,
- exec_lua [[
- local ns_1_diags = {
- make_error("Error 1", 1, 1, 1, 5),
- make_warning("Warning on Server 1", 2, 1, 2, 3),
- }
- local ns_2_diags = {
- make_warning("Warning 1", 2, 1, 2, 3),
- }
+ exec_lua(function()
+ local ns_1_diags = {
+ _G.make_error('Error 1', 1, 1, 1, 5),
+ _G.make_warning('Warning on Server 1', 2, 1, 2, 3),
+ }
+ local ns_2_diags = {
+ _G.make_warning('Warning 1', 2, 1, 2, 3),
+ }
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, ns_1_diags)
- vim.diagnostic.set(other_ns, diagnostic_bufnr, ns_2_diags)
+ vim.diagnostic.set(_G.diagnostic_ns, _G.diagnostic_bufnr, ns_1_diags)
+ vim.diagnostic.set(_G.other_ns, _G.diagnostic_bufnr, ns_2_diags)
- return {
- 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),
- count_extmarks(diagnostic_bufnr, diagnostic_ns),
- count_extmarks(diagnostic_bufnr, other_ns),
- }
- ]]
+ return {
+ _G.count_diagnostics(
+ _G.diagnostic_bufnr,
+ vim.diagnostic.severity.ERROR,
+ _G.diagnostic_ns
+ ),
+ _G.count_diagnostics(_G.diagnostic_bufnr, vim.diagnostic.severity.WARN, _G.other_ns),
+ _G.count_diagnostics(_G.diagnostic_bufnr, vim.diagnostic.severity.WARN),
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns),
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns),
+ }
+ end)
)
-- Clear diagnostics from namespace 1, and make sure we have the right amount of stuff for namespace 2
eq(
{ 1, 1, 2, 0, 2 },
- exec_lua [[
- vim.diagnostic.enable(false, { bufnr = diagnostic_bufnr, ns_id = diagnostic_ns })
- return {
- 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),
- count_extmarks(diagnostic_bufnr, diagnostic_ns),
- count_extmarks(diagnostic_bufnr, other_ns),
- }
- ]]
+ exec_lua(function()
+ vim.diagnostic.enable(false, { bufnr = _G.diagnostic_bufnr, ns_id = _G.diagnostic_ns })
+ return {
+ _G.count_diagnostics(
+ _G.diagnostic_bufnr,
+ vim.diagnostic.severity.ERROR,
+ _G.diagnostic_ns
+ ),
+ _G.count_diagnostics(_G.diagnostic_bufnr, vim.diagnostic.severity.WARN, _G.other_ns),
+ _G.count_diagnostics(_G.diagnostic_bufnr, vim.diagnostic.severity.WARN),
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns),
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns),
+ }
+ end)
)
-- Show diagnostics from namespace 1 again
eq(
all_highlights,
- exec_lua([[
- vim.diagnostic.enable(true, { bufnr = diagnostic_bufnr, ns_id = diagnostic_ns })
- return {
- 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),
- count_extmarks(diagnostic_bufnr, diagnostic_ns),
- count_extmarks(diagnostic_bufnr, other_ns),
- }
- ]])
+ exec_lua(function()
+ vim.diagnostic.enable(true, { bufnr = _G.diagnostic_bufnr, ns_id = _G.diagnostic_ns })
+ return {
+ _G.count_diagnostics(
+ _G.diagnostic_bufnr,
+ vim.diagnostic.severity.ERROR,
+ _G.diagnostic_ns
+ ),
+ _G.count_diagnostics(_G.diagnostic_bufnr, vim.diagnostic.severity.WARN, _G.other_ns),
+ _G.count_diagnostics(_G.diagnostic_bufnr, vim.diagnostic.severity.WARN),
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns),
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns),
+ }
+ end)
)
end)
it('does not display diagnostics when disabled', function()
eq(
{ 0, 2 },
- exec_lua [[
- local ns_1_diags = {
- make_error("Error 1", 1, 1, 1, 5),
- make_warning("Warning on Server 1", 2, 1, 2, 3),
- }
- local ns_2_diags = {
- make_warning("Warning 1", 2, 1, 2, 3),
- }
+ exec_lua(function()
+ local ns_1_diags = {
+ _G.make_error('Error 1', 1, 1, 1, 5),
+ _G.make_warning('Warning on Server 1', 2, 1, 2, 3),
+ }
+ local ns_2_diags = {
+ _G.make_warning('Warning 1', 2, 1, 2, 3),
+ }
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, ns_1_diags)
- vim.diagnostic.set(other_ns, diagnostic_bufnr, ns_2_diags)
+ vim.diagnostic.set(_G.diagnostic_ns, _G.diagnostic_bufnr, ns_1_diags)
+ vim.diagnostic.set(_G.other_ns, _G.diagnostic_bufnr, ns_2_diags)
- vim.diagnostic.enable(false, { bufnr = diagnostic_bufnr, ns_id = diagnostic_ns })
+ vim.diagnostic.enable(false, { bufnr = _G.diagnostic_bufnr, ns_id = _G.diagnostic_ns })
- return {
- count_extmarks(diagnostic_bufnr, diagnostic_ns),
- count_extmarks(diagnostic_bufnr, other_ns),
- }
- ]]
+ return {
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns),
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns),
+ }
+ end)
)
eq(
{ 4, 0 },
- exec_lua [[
- vim.diagnostic.enable(true, { bufnr = diagnostic_bufnr, ns_id = diagnostic_ns })
- vim.diagnostic.enable(false, { bufnr = diagnostic_bufnr, ns_id = other_ns })
+ exec_lua(function()
+ vim.diagnostic.enable(true, { bufnr = _G.diagnostic_bufnr, ns_id = _G.diagnostic_ns })
+ vim.diagnostic.enable(false, { bufnr = _G.diagnostic_bufnr, ns_id = _G.other_ns })
- return {
- count_extmarks(diagnostic_bufnr, diagnostic_ns),
- count_extmarks(diagnostic_bufnr, other_ns),
- }
- ]]
+ return {
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns),
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns),
+ }
+ end)
)
end)
describe('show() and hide()', function()
it('works', function()
- local result = exec_lua [[
+ local result = exec_lua(function()
local other_bufnr = vim.api.nvim_create_buf(true, false)
- vim.api.nvim_win_set_buf(0, diagnostic_bufnr)
+ vim.api.nvim_win_set_buf(0, _G.diagnostic_bufnr)
local result = {}
vim.diagnostic.config({ underline = false, virtual_text = true })
local ns_1_diags = {
- make_error("Error 1", 1, 1, 1, 5),
- make_warning("Warning on Server 1", 2, 1, 2, 5),
+ _G.make_error('Error 1', 1, 1, 1, 5),
+ _G.make_warning('Warning on Server 1', 2, 1, 2, 5),
}
local ns_2_diags = {
- make_warning("Warning 1", 2, 1, 2, 5),
+ _G.make_warning('Warning 1', 2, 1, 2, 5),
}
local other_buffer_diags = {
- make_info("This is interesting", 0, 0, 0, 0)
+ _G.make_info('This is interesting', 0, 0, 0, 0),
}
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, ns_1_diags)
- vim.diagnostic.set(other_ns, diagnostic_bufnr, ns_2_diags)
- vim.diagnostic.set(diagnostic_ns, other_bufnr, other_buffer_diags)
+ vim.diagnostic.set(_G.diagnostic_ns, _G.diagnostic_bufnr, ns_1_diags)
+ vim.diagnostic.set(_G.other_ns, _G.diagnostic_bufnr, ns_2_diags)
+ vim.diagnostic.set(_G.diagnostic_ns, other_bufnr, other_buffer_diags)
-- All buffers and namespaces
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
- count_extmarks(diagnostic_bufnr, other_ns) +
- count_extmarks(other_bufnr, diagnostic_ns))
+ table.insert(
+ result,
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns)
+ + _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns)
+ + _G.count_extmarks(other_bufnr, _G.diagnostic_ns)
+ )
-- Hide one namespace
- vim.diagnostic.hide(diagnostic_ns)
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
- count_extmarks(diagnostic_bufnr, other_ns) +
- count_extmarks(other_bufnr, diagnostic_ns))
+ vim.diagnostic.hide(_G.diagnostic_ns)
+ table.insert(
+ result,
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns)
+ + _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns)
+ + _G.count_extmarks(other_bufnr, _G.diagnostic_ns)
+ )
-- Show one namespace
- vim.diagnostic.show(diagnostic_ns)
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
- count_extmarks(diagnostic_bufnr, other_ns) +
- count_extmarks(other_bufnr, diagnostic_ns))
+ vim.diagnostic.show(_G.diagnostic_ns)
+ table.insert(
+ result,
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns)
+ + _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns)
+ + _G.count_extmarks(other_bufnr, _G.diagnostic_ns)
+ )
-- Hide one buffer
vim.diagnostic.hide(nil, other_bufnr)
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
- count_extmarks(diagnostic_bufnr, other_ns) +
- count_extmarks(other_bufnr, diagnostic_ns))
+ table.insert(
+ result,
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns)
+ + _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns)
+ + _G.count_extmarks(other_bufnr, _G.diagnostic_ns)
+ )
-- Hide everything
vim.diagnostic.hide()
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
- count_extmarks(diagnostic_bufnr, other_ns) +
- count_extmarks(other_bufnr, diagnostic_ns))
+ table.insert(
+ result,
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns)
+ + _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns)
+ + _G.count_extmarks(other_bufnr, _G.diagnostic_ns)
+ )
-- Show one buffer
- vim.diagnostic.show(nil, diagnostic_bufnr)
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
- count_extmarks(diagnostic_bufnr, other_ns) +
- count_extmarks(other_bufnr, diagnostic_ns))
+ vim.diagnostic.show(nil, _G.diagnostic_bufnr)
+ table.insert(
+ result,
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns)
+ + _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns)
+ + _G.count_extmarks(other_bufnr, _G.diagnostic_ns)
+ )
return result
- ]]
+ end)
eq(4, result[1])
eq(1, result[2])
@@ -468,13 +557,17 @@ describe('vim.diagnostic', function()
end)
it("doesn't error after bwipeout on buffer", function()
- exec_lua [[
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {{ lnum = 0, end_lnum = 0, col = 0, end_col = 0 }})
- vim.cmd("bwipeout! " .. diagnostic_bufnr)
+ exec_lua(function()
+ vim.diagnostic.set(
+ _G.diagnostic_ns,
+ _G.diagnostic_bufnr,
+ { { lnum = 0, end_lnum = 0, col = 0, end_col = 0 } }
+ )
+ vim.cmd('bwipeout! ' .. _G.diagnostic_bufnr)
- vim.diagnostic.show(diagnostic_ns)
- vim.diagnostic.hide(diagnostic_ns)
- ]]
+ vim.diagnostic.show(_G.diagnostic_ns)
+ vim.diagnostic.hide(_G.diagnostic_ns)
+ end)
end)
end)
@@ -505,52 +598,64 @@ describe('vim.diagnostic', function()
end)
it('without arguments', function()
- local result = exec_lua [[
- vim.api.nvim_win_set_buf(0, diagnostic_bufnr)
+ local result = exec_lua(function()
+ vim.api.nvim_win_set_buf(0, _G.diagnostic_bufnr)
local result = {}
vim.diagnostic.config({ underline = false, virtual_text = true })
local ns_1_diags = {
- make_error("Error 1", 1, 1, 1, 5),
- make_warning("Warning on Server 1", 2, 1, 2, 5),
+ _G.make_error('Error 1', 1, 1, 1, 5),
+ _G.make_warning('Warning on Server 1', 2, 1, 2, 5),
}
local ns_2_diags = {
- make_warning("Warning 1", 2, 1, 2, 5),
+ _G.make_warning('Warning 1', 2, 1, 2, 5),
}
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, ns_1_diags)
- vim.diagnostic.set(other_ns, diagnostic_bufnr, ns_2_diags)
+ vim.diagnostic.set(_G.diagnostic_ns, _G.diagnostic_bufnr, ns_1_diags)
+ vim.diagnostic.set(_G.other_ns, _G.diagnostic_bufnr, ns_2_diags)
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
- count_extmarks(diagnostic_bufnr, other_ns))
+ table.insert(
+ result,
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns)
+ + _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns)
+ )
vim.diagnostic.enable(false)
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
- count_extmarks(diagnostic_bufnr, other_ns))
+ table.insert(
+ result,
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns)
+ + _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns)
+ )
-- Create a new buffer
local other_bufnr = vim.api.nvim_create_buf(true, false)
local other_buffer_diags = {
- make_info("This is interesting", 0, 0, 0, 0)
+ _G.make_info('This is interesting', 0, 0, 0, 0),
}
- vim.diagnostic.set(diagnostic_ns, other_bufnr, other_buffer_diags)
+ vim.diagnostic.set(_G.diagnostic_ns, other_bufnr, other_buffer_diags)
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
- count_extmarks(diagnostic_bufnr, other_ns) +
- count_extmarks(other_bufnr, diagnostic_ns))
+ table.insert(
+ result,
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns)
+ + _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns)
+ + _G.count_extmarks(other_bufnr, _G.diagnostic_ns)
+ )
vim.diagnostic.enable()
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
- count_extmarks(diagnostic_bufnr, other_ns) +
- count_extmarks(other_bufnr, diagnostic_ns))
+ table.insert(
+ result,
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns)
+ + _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns)
+ + _G.count_extmarks(other_bufnr, _G.diagnostic_ns)
+ )
return result
- ]]
+ end)
eq(3, result[1])
eq(0, result[2])
@@ -559,54 +664,66 @@ describe('vim.diagnostic', function()
end)
it('with buffer argument', function()
- local result = exec_lua [[
+ local result = exec_lua(function()
local other_bufnr = vim.api.nvim_create_buf(true, false)
- vim.api.nvim_win_set_buf(0, diagnostic_bufnr)
+ vim.api.nvim_win_set_buf(0, _G.diagnostic_bufnr)
local result = {}
vim.diagnostic.config({ underline = false, virtual_text = true })
local ns_1_diags = {
- make_error("Error 1", 1, 1, 1, 5),
- make_warning("Warning on Server 1", 2, 1, 2, 5),
+ _G.make_error('Error 1', 1, 1, 1, 5),
+ _G.make_warning('Warning on Server 1', 2, 1, 2, 5),
}
local ns_2_diags = {
- make_warning("Warning 1", 2, 1, 2, 5),
+ _G.make_warning('Warning 1', 2, 1, 2, 5),
}
local other_buffer_diags = {
- make_info("This is interesting", 0, 0, 0, 0)
+ _G.make_info('This is interesting', 0, 0, 0, 0),
}
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, ns_1_diags)
- vim.diagnostic.set(other_ns, diagnostic_bufnr, ns_2_diags)
- vim.diagnostic.set(diagnostic_ns, other_bufnr, other_buffer_diags)
+ vim.diagnostic.set(_G.diagnostic_ns, _G.diagnostic_bufnr, ns_1_diags)
+ vim.diagnostic.set(_G.other_ns, _G.diagnostic_bufnr, ns_2_diags)
+ vim.diagnostic.set(_G.diagnostic_ns, other_bufnr, other_buffer_diags)
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
- count_extmarks(diagnostic_bufnr, other_ns) +
- count_extmarks(other_bufnr, diagnostic_ns))
+ table.insert(
+ result,
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns)
+ + _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns)
+ + _G.count_extmarks(other_bufnr, _G.diagnostic_ns)
+ )
- vim.diagnostic.enable(false, { bufnr = diagnostic_bufnr })
+ vim.diagnostic.enable(false, { bufnr = _G.diagnostic_bufnr })
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
- count_extmarks(diagnostic_bufnr, other_ns) +
- count_extmarks(other_bufnr, diagnostic_ns))
+ table.insert(
+ result,
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns)
+ + _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns)
+ + _G.count_extmarks(other_bufnr, _G.diagnostic_ns)
+ )
- vim.diagnostic.enable(true, { bufnr = diagnostic_bufnr })
+ vim.diagnostic.enable(true, { bufnr = _G.diagnostic_bufnr })
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
- count_extmarks(diagnostic_bufnr, other_ns) +
- count_extmarks(other_bufnr, diagnostic_ns))
+ table.insert(
+ result,
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns)
+ + _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns)
+ + _G.count_extmarks(other_bufnr, _G.diagnostic_ns)
+ )
vim.diagnostic.enable(false, { bufnr = other_bufnr })
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
- count_extmarks(diagnostic_bufnr, other_ns) +
- count_extmarks(other_bufnr, diagnostic_ns))
+ table.insert(
+ result,
+ _G.count_extmarks(_G.diagnostic_bufnr, _G.diagnostic_ns)
+ + _G.count_extmarks(_G.diagnostic_bufnr, _G.other_ns)
+ + _G.count_extmarks(other_bufnr, _G.diagnostic_ns)