aboutsummaryrefslogtreecommitdiff
path: root/test/functional/lua
diff options
context:
space:
mode:
authorGregory Anders <8965202+gpanders@users.noreply.github.com>2021-11-16 08:47:49 -0700
committerGitHub <noreply@github.com>2021-11-16 08:47:49 -0700
commit98af683e0fb129520a9c0cb29f324743e0e2083f (patch)
tree29f9160d59035ed1202a80b93b37d446cb6aa879 /test/functional/lua
parent890f8cd750679381a66a2a12f0dda7096f59f8a0 (diff)
downloadrneovim-98af683e0fb129520a9c0cb29f324743e0e2083f.tar.gz
rneovim-98af683e0fb129520a9c0cb29f324743e0e2083f.tar.bz2
rneovim-98af683e0fb129520a9c0cb29f324743e0e2083f.zip
refactor(diagnostic): make bufnr arguments consistent (#16323)
Make the bufnr argument have similar semantics across API functions; namely, a nil value means "all buffers" while 0 means "current buffer". This increases the flexibility of the API by allowing functions such as enable() and disable() to apply globally or per-namespace, rather than only on a specific buffer.
Diffstat (limited to 'test/functional/lua')
-rw-r--r--test/functional/lua/diagnostic_spec.lua267
1 files changed, 256 insertions, 11 deletions
diff --git a/test/functional/lua/diagnostic_spec.lua b/test/functional/lua/diagnostic_spec.lua
index ec53916024..0de1f075c5 100644
--- a/test/functional/lua/diagnostic_spec.lua
+++ b/test/functional/lua/diagnostic_spec.lua
@@ -271,6 +271,8 @@ describe('vim.diagnostic', function()
describe('show() and hide()', function()
it('works', function()
local result = exec_lua [[
+ local other_bufnr = vim.api.nvim_create_buf(true, false)
+
vim.api.nvim_win_set_buf(0, diagnostic_bufnr)
local result = {}
@@ -284,36 +286,279 @@ describe('vim.diagnostic', function()
local ns_2_diags = {
make_warning("Warning 1", 2, 1, 2, 5),
}
+ local other_buffer_diags = {
+ 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)
- -- Both
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) + count_extmarks(diagnostic_bufnr, other_ns))
+ -- 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))
-- Hide one namespace
vim.diagnostic.hide(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(other_bufnr, diagnostic_ns))
-- Show one namespace
vim.diagnostic.show(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(other_bufnr, diagnostic_ns))
- -- Hide all namespaces
+ -- 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))
+
+ -- Hide everything
vim.diagnostic.hide()
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) + count_extmarks(diagnostic_bufnr, other_ns))
+ table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
+ count_extmarks(diagnostic_bufnr, other_ns) +
+ count_extmarks(other_bufnr, 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))
+
+ return result
+ ]]
+
+ eq(4, result[1])
+ eq(1, result[2])
+ eq(4, result[3])
+ eq(3, result[4])
+ eq(0, result[5])
+ eq(3, result[6])
+ end)
+ end)
+
+ describe('enable() and disable()', function()
+ it('works without arguments', function()
+ local result = exec_lua [[
+ vim.api.nvim_win_set_buf(0, 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),
+ }
+ local ns_2_diags = {
+ 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)
+
+ table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
+ count_extmarks(diagnostic_bufnr, other_ns))
+
+ vim.diagnostic.disable()
+
+ table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
+ count_extmarks(diagnostic_bufnr, 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)
+ }
- -- Show all namespaces
- vim.diagnostic.show()
- table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) + count_extmarks(diagnostic_bufnr, other_ns))
+ vim.diagnostic.set(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))
+
+ vim.diagnostic.enable()
+
+ table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
+ count_extmarks(diagnostic_bufnr, other_ns) +
+ count_extmarks(other_bufnr, diagnostic_ns))
return result
]]
eq(3, result[1])
eq(0, result[2])
- eq(2, result[3])
- eq(0, result[4])
+ eq(0, result[3])
+ eq(4, result[4])
+ end)
+
+ it('works with only a buffer argument', function()
+ local result = exec_lua [[
+ local other_bufnr = vim.api.nvim_create_buf(true, false)
+
+ vim.api.nvim_win_set_buf(0, 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),
+ }
+ local ns_2_diags = {
+ make_warning("Warning 1", 2, 1, 2, 5),
+ }
+ local other_buffer_diags = {
+ 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)
+
+ 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)
+
+ table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
+ count_extmarks(diagnostic_bufnr, other_ns) +
+ count_extmarks(other_bufnr, diagnostic_ns))
+
+ vim.diagnostic.enable(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.disable(other_bufnr)
+
+ table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
+ count_extmarks(diagnostic_bufnr, other_ns) +
+ count_extmarks(other_bufnr, diagnostic_ns))
+
+ return result
+ ]]
+
+ eq(4, result[1])
+ eq(1, result[2])
+ eq(4, result[3])
+ eq(3, result[4])
+ end)
+
+ it('works with only a namespace argument', function()
+ local result = exec_lua [[
+ vim.api.nvim_win_set_buf(0, 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),
+ }
+ local ns_2_diags = {
+ 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)
+
+ table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
+ count_extmarks(diagnostic_bufnr, other_ns))
+
+ vim.diagnostic.disable(nil, diagnostic_ns)
+
+ table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
+ count_extmarks(diagnostic_bufnr, other_ns))
+
+ vim.diagnostic.enable(nil, diagnostic_ns)
+
+ table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
+ count_extmarks(diagnostic_bufnr, other_ns))
+
+ vim.diagnostic.disable(nil, other_ns)
+
+ table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
+ count_extmarks(diagnostic_bufnr, other_ns))
+
+ return result
+ ]]
+
+ eq(3, result[1])
+ eq(1, result[2])
+ eq(3, result[3])
+ eq(2, result[4])
+ end)
+
+ it('works with both a buffer and a namespace argument', function()
+ local result = exec_lua [[
+ local other_bufnr = vim.api.nvim_create_buf(true, false)
+
+ vim.api.nvim_win_set_buf(0, 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),
+ }
+ local ns_2_diags = {
+ make_warning("Warning 1", 2, 1, 2, 5),
+ }
+ local other_buffer_diags = {
+ 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)
+
+ 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, 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.disable(diagnostic_bufnr, other_ns)
+
+ table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
+ count_extmarks(diagnostic_bufnr, other_ns) +
+ count_extmarks(other_bufnr, diagnostic_ns))
+
+ vim.diagnostic.enable(diagnostic_bufnr, diagnostic_ns)
+
+ table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
+ count_extmarks(diagnostic_bufnr, other_ns) +
+ count_extmarks(other_bufnr, diagnostic_ns))
+
+ -- Should have no effect
+ vim.diagnostic.disable(other_bufnr, other_ns)
+
+ table.insert(result, count_extmarks(diagnostic_bufnr, diagnostic_ns) +
+ count_extmarks(diagnostic_bufnr, other_ns) +
+ count_extmarks(other_bufnr, diagnostic_ns))
+
+ return result
+ ]]
+
+ eq(4, result[1])
+ eq(2, result[2])
+ eq(1, result[3])
+ eq(3, result[4])
eq(3, result[5])
end)
end)