diff options
author | Michael Strobel <71396679+Kibadda@users.noreply.github.com> | 2023-08-16 15:49:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-16 08:49:14 -0500 |
commit | e7801775060e2d8f9f20572fac687f438e81caa0 (patch) | |
tree | 0b8c6eefffe1dd750b1dab9453a9ef2554dc975a /runtime/lua/vim/diagnostic.lua | |
parent | 9cb7e00b9748b08fce661f8cbeb06c5994c749ae (diff) | |
download | rneovim-e7801775060e2d8f9f20572fac687f438e81caa0.tar.gz rneovim-e7801775060e2d8f9f20572fac687f438e81caa0.tar.bz2 rneovim-e7801775060e2d8f9f20572fac687f438e81caa0.zip |
feat(diagnostic): filter diagnostics by specific severities (#24736)
Allow users to filter diagnostics by specifying severities
Diffstat (limited to 'runtime/lua/vim/diagnostic.lua')
-rw-r--r-- | runtime/lua/vim/diagnostic.lua | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/runtime/lua/vim/diagnostic.lua b/runtime/lua/vim/diagnostic.lua index 1391dafd75..96d1cb7629 100644 --- a/runtime/lua/vim/diagnostic.lua +++ b/runtime/lua/vim/diagnostic.lua @@ -94,11 +94,22 @@ local function filter_by_severity(severity, diagnostics) end, diagnostics) end - local min_severity = to_severity(severity.min) or M.severity.HINT - local max_severity = to_severity(severity.max) or M.severity.ERROR + if severity.min or severity.max then + local min_severity = to_severity(severity.min) or M.severity.HINT + local max_severity = to_severity(severity.max) or M.severity.ERROR + + return vim.tbl_filter(function(t) + return t.severity <= min_severity and t.severity >= max_severity + end, diagnostics) + end + + local severities = {} + for _, s in ipairs(severity) do + severities[to_severity(s)] = true + end return vim.tbl_filter(function(t) - return t.severity <= min_severity and t.severity >= max_severity + return severities[t.severity] end, diagnostics) end |