aboutsummaryrefslogtreecommitdiff
path: root/test/functional/lua/diagnostic_spec.lua
diff options
context:
space:
mode:
authorGregory Anders <greg@gpanders.com>2021-09-17 14:59:30 -0600
committerGregory Anders <greg@gpanders.com>2021-09-17 14:59:30 -0600
commit938ed458e2818b7840e9c4eaf298c5a7af8d79ea (patch)
treea2147f01deaceb10d3af8b322c263ad1222e478d /test/functional/lua/diagnostic_spec.lua
parentede5695eb194e9b607421415525177888b447753 (diff)
downloadrneovim-938ed458e2818b7840e9c4eaf298c5a7af8d79ea.tar.gz
rneovim-938ed458e2818b7840e9c4eaf298c5a7af8d79ea.tar.bz2
rneovim-938ed458e2818b7840e9c4eaf298c5a7af8d79ea.zip
fix(diagnostic): change default severity_sort order
When severity_sort is true, higher severities should be displayed before lower severities (e.g. ERROR is displayed over WARN). Also improved the test case for this.
Diffstat (limited to 'test/functional/lua/diagnostic_spec.lua')
-rw-r--r--test/functional/lua/diagnostic_spec.lua52
1 files changed, 31 insertions, 21 deletions
diff --git a/test/functional/lua/diagnostic_spec.lua b/test/functional/lua/diagnostic_spec.lua
index 3c8d6e8f2c..2971d3bc51 100644
--- a/test/functional/lua/diagnostic_spec.lua
+++ b/test/functional/lua/diagnostic_spec.lua
@@ -540,11 +540,11 @@ describe('vim.diagnostic', function()
end)
it('allows sorting by severity', function()
- local result = exec_lua([[
+ exec_lua [[
vim.diagnostic.config({
- underline = true,
- virtual_text = false,
- severity_sort = false,
+ underline = false,
+ signs = true,
+ virtual_text = true,
})
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
@@ -553,31 +553,41 @@ describe('vim.diagnostic', function()
make_info('Info', 4, 4, 4, 4),
})
- local extmarks = vim.api.nvim_buf_get_extmarks(diagnostic_bufnr, diagnostic_ns, 0, -1, {details = true})
+ function get_virt_text_and_signs(severity_sort)
+ vim.diagnostic.config({
+ severity_sort = severity_sort,
+ })
- local warn_highlight = extmarks[1][4].hl_group
+ local virt_text = vim.api.nvim_buf_get_extmarks(diagnostic_bufnr, diagnostic_ns, 0, -1, {details = true})[1][4].virt_text
- vim.diagnostic.config({
- severity_sort = true,
- })
+ local virt_texts = {}
+ for i = 2, #virt_text do
+ table.insert(virt_texts, (string.gsub(virt_text[i][2], "DiagnosticVirtualText", "")))
+ end
- extmarks = vim.api.nvim_buf_get_extmarks(diagnostic_bufnr, diagnostic_ns, 0, -1, {details = true})
+ local signs = {}
+ for _, v in ipairs(vim.fn.sign_getplaced(diagnostic_bufnr, {group = "*"})[1].signs) do
+ table.insert(signs, (string.gsub(v.name, "DiagnosticSign", "")))
+ end
- local err_highlight = extmarks[1][4].hl_group
+ return {virt_texts, signs}
+ end
+ ]]
- vim.diagnostic.config({
- severity_sort = { reverse = true },
- })
+ local result = exec_lua [[return get_virt_text_and_signs(false)]]
- extmarks = vim.api.nvim_buf_get_extmarks(diagnostic_bufnr, diagnostic_ns, 0, -1, {details = true})
+ -- Virt texts are defined lowest priority to highest, signs from
+ -- highest to lowest
+ eq({'Warn', 'Error', 'Info'}, result[1])
+ eq({'Info', 'Error', 'Warn'}, result[2])
- local info_highlight = extmarks[1][4].hl_group
+ result = exec_lua [[return get_virt_text_and_signs(true)]]
+ eq({'Info', 'Warn', 'Error'}, result[1])
+ eq({'Error', 'Warn', 'Info'}, result[2])
- return { warn_highlight, err_highlight, info_highlight }
- ]])
- eq('DiagnosticUnderlineWarn', result[1])
- eq('DiagnosticUnderlineError', result[2])
- eq('DiagnosticUnderlineInfo', result[3])
+ result = exec_lua [[return get_virt_text_and_signs({ reverse = true })]]
+ eq({'Error', 'Warn', 'Info'}, result[1])
+ eq({'Info', 'Warn', 'Error'}, result[2])
end)
end)