From 8f1ef592cde4f94aa3f9df41ed278201cd8f4c9c Mon Sep 17 00:00:00 2001 From: Daniel Lundin Date: Sun, 9 Feb 2025 14:08:55 +0100 Subject: [PATCH] nvim: Use new fancy built-in diagnostics --- home/common/nvim/default.nix | 23 ----------- home/common/nvim/dieter/lua/dieter/init.lua | 11 ++++-- home/common/nvim/init.lua | 42 ++++++++++++--------- 3 files changed, 32 insertions(+), 44 deletions(-) diff --git a/home/common/nvim/default.nix b/home/common/nvim/default.nix index e5adcd9..f6deed1 100644 --- a/home/common/nvim/default.nix +++ b/home/common/nvim/default.nix @@ -121,29 +121,6 @@ in ''; } - { - plugin = pkgs.vimUtils.buildVimPlugin { - name = "diagflow"; - src = pkgs.fetchFromGitHub { - owner = "dgagn"; - repo = "diagflow.nvim"; - rev = "fc09d55d2e60edc8ed8f9939ba97b7b7e6488c99"; - hash = "sha256-2WNuaIEXcAgUl2Kb/cCHEOrtehw9alaoM96qb4MLArw="; - }; - }; - type = "lua"; - config = '' - require('diagflow').setup { - scope = "line", - gap_size = 0, - max_width = 50, - max_height = 20, - show_borders = true, - toggle_event = { "InsertEnter", "InsertLeave" }, - } - ''; - } - { plugin = pkgs.vimUtils.buildVimPlugin { name = "dieter-nvim"; diff --git a/home/common/nvim/dieter/lua/dieter/init.lua b/home/common/nvim/dieter/lua/dieter/init.lua index f9fdcc2..61946a2 100644 --- a/home/common/nvim/dieter/lua/dieter/init.lua +++ b/home/common/nvim/dieter/lua/dieter/init.lua @@ -149,14 +149,17 @@ local setupGroups = function(c) CursorLine = { bg = c.highlight_subtle }, DiagnosticError = { fg = c.diagnostic_error, italic = true }, + DiagnosticHint = { fg = c.diagnostic_hint, italic = true }, + DiagnosticInfo = { fg = c.diagnostic_info, italic = true }, + DiagnosticWarn = { fg = c.diagnostic_warn, italic = true }, DiagnosticFloatingError = { fg = c.diagnostic_error, bg = c.popup_error_bg }, - DiagnosticFloatingWarn = { fg = c.diagnostic_warning, bg = c.popup_warning_bg }, - DiagnosticFloatingInfo = { fg = c.diagnostic_info, bg = c.popup_info_bg }, DiagnosticFloatingHint = { fg = c.diagnostic_hint, bg = c.popup_hint_bg }, + DiagnosticFloatingInfo = { fg = c.diagnostic_info, bg = c.popup_info_bg }, + DiagnosticFloatingWarn = { fg = c.diagnostic_warning, bg = c.popup_warning_bg }, DiagnosticUnderlineError = { fg = c.foreground, undercurl = true, sp = c.diagnostic_error }, - DiagnosticUnderlineWarn = { fg = c.foreground, undercurl = true, sp = c.diagnostic_warn }, + DiagnosticUnderlineHint = { fg = c.foreground, undercurl = true, sp = c.diagnostic_hint }, DiagnosticUnderlineInfo = { fg = c.foreground, undercurl = true, sp = c.diagnostic_info }, - DiagnosticUnderlinehint = { fg = c.foreground, undercurl = true, sp = c.diagnostic_hint }, + DiagnosticUnderlineWarn = { fg = c.foreground, undercurl = true, sp = c.diagnostic_warn }, DiagnosticSignError = { fg = c.diagnostic_error }, DiagnosticSignHint = { fg = c.diagnostic_hint }, diff --git a/home/common/nvim/init.lua b/home/common/nvim/init.lua index 3eb3cb9..0b30e4f 100644 --- a/home/common/nvim/init.lua +++ b/home/common/nvim/init.lua @@ -92,23 +92,31 @@ vim.o.updatetime = 250 vim.o.grepprg = [[rg --glob "!.jj" --glob "!.git" --no-heading --vimgrep --follow $*]] vim.opt.grepformat = vim.opt.grepformat ^ { "%f:%l:%c:%m" } -vim.fn.sign_define( - "DiagnosticSignError", - { text = "", hl = "DiagnosticSignError", texthl = "DiagnosticSignError", culhl = "DiagnosticSignErrorLine" } -) -vim.fn.sign_define( - "DiagnosticSignWarn", - { text = "", hl = "DiagnosticSignWarn", texthl = "DiagnosticSignWarn", culhl = "DiagnosticSignWarnLine" } -) -vim.fn.sign_define( - "DiagnosticSignInfo", - { text = "", hl = "DiagnosticSignInfo", texthl = "DiagnosticSignInfo", culhl = "DiagnosticSignInfoLine" } -) -vim.fn.sign_define( - "DiagnosticSignHint", - { text = "", hl = "DiagnosticSignHint", texthl = "DiagnosticSignHint", culhl = "DiagnosticSignHintLine" } -) - +-- Diagnostics +vim.diagnostic.config { + severity_sort = true, + signs = { + linehl = { + [vim.diagnostic.severity.ERROR] = "DiagnosticSignErrorLine", + [vim.diagnostic.severity.WARN] = "DiagnosticSignWarnLine", + [vim.diagnostic.severity.INFO] = "DiagnosticSignInfoLine", + [vim.diagnostic.severity.HINT] = "DiagnostigSignHintLine", + }, + numhl = { + [vim.diagnostic.severity.ERROR] = "DiagnosticSignError", + [vim.diagnostic.severity.WARN] = "DiagnosticSignWarn", + [vim.diagnostic.severity.INFO] = "DiagnosticSignInfo", + [vim.diagnostic.severity.HINT] = "DiagnostigSignHint", + }, + text = { + [vim.diagnostic.severity.ERROR] = "", + [vim.diagnostic.severity.WARN] = "", + [vim.diagnostic.severity.INFO] = "", + [vim.diagnostic.severity.HINT] = "", + }, + }, + virtual_lines = true, +} -- Make work for snippets vim.keymap.set({ "i", "s" }, "", function()