diff options
author | Gregory Anders <greg@gpanders.com> | 2021-09-17 14:59:30 -0600 |
---|---|---|
committer | Gregory Anders <greg@gpanders.com> | 2021-09-17 14:59:30 -0600 |
commit | 938ed458e2818b7840e9c4eaf298c5a7af8d79ea (patch) | |
tree | a2147f01deaceb10d3af8b322c263ad1222e478d /test/functional/lua/diagnostic_spec.lua | |
parent | ede5695eb194e9b607421415525177888b447753 (diff) | |
download | rneovim-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.lua | 52 |
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) |