aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/diagnostic.lua
diff options
context:
space:
mode:
authorMichael Strobel <71396679+Kibadda@users.noreply.github.com>2023-08-16 15:49:14 +0200
committerGitHub <noreply@github.com>2023-08-16 08:49:14 -0500
commite7801775060e2d8f9f20572fac687f438e81caa0 (patch)
tree0b8c6eefffe1dd750b1dab9453a9ef2554dc975a /runtime/lua/vim/diagnostic.lua
parent9cb7e00b9748b08fce661f8cbeb06c5994c749ae (diff)
downloadrneovim-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.lua17
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