summaryrefslogtreecommitdiffstats
path: root/.config/nvim/lua/diagnostic.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/diagnostic.lua')
-rwxr-xr-x.config/nvim/lua/diagnostic.lua45
1 files changed, 45 insertions, 0 deletions
diff --git a/.config/nvim/lua/diagnostic.lua b/.config/nvim/lua/diagnostic.lua
new file mode 100755
index 0000000..0eb4e91
--- /dev/null
+++ b/.config/nvim/lua/diagnostic.lua
@@ -0,0 +1,45 @@
+local original_diagnostic_set = vim.diagnostic.set
+local disabled_diagnostics_patterns = {
+ -- { 'mypy', 'Library stubs not installed' },
+ -- { 'mypy', 'Cannot find implementation or library stub' },
+ -- { 'mypy', 'Skipping analyzing' }
+}
+
+local function is_diagnostic_disabled(diagnostic, disabled_diagnostic_patterns)
+ return string.find(diagnostic.source, disabled_diagnostic_patterns[1]) and
+ string.find(diagnostic.message, disabled_diagnostic_patterns[2])
+end
+
+local function is_diagnostic_enabled(diagnostic, disabled_diagnostic_patterns)
+ local found_diagnostic = true
+ for _, disabled_diagnostic_patterns in pairs(disabled_diagnostics_patterns) do
+ if is_diagnostic_disabled(diagnostic, disabled_diagnostic_patterns) then
+ found_diagnostic = false
+ end
+ end
+ return found_diagnostic
+end
+
+vim.diagnostic.set = function(namespace, bufnr, diagnostics, opts)
+ local filtered_diagnostics = {}
+ for _, diagnostic in pairs(diagnostics) do
+ if is_diagnostic_enabled(diagnostic, disabled_diagnostics_patterns) then
+ table.insert(filtered_diagnostics, diagnostic)
+ end
+ end
+ original_diagnostic_set(namespace, bufnr, filtered_diagnostics, opts)
+end
+
+vim.diagnostic.config{
+ underline = false,
+ signs = true,
+ severity_sort = true,
+ update_in_insert = false,
+ float = {
+ source = 'always',
+ },
+ virtual_text = {
+ prefix = '▒ ',
+ spacing = 8,
+ },
+}
remember that computers suck.