diff options
Diffstat (limited to 'runtime/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 |