aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/diagnostic.lua
diff options
context:
space:
mode:
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