From d738142ebe0f80cd10dc49cc1f42cb3d6c92bb4e Mon Sep 17 00:00:00 2001 From: Roman Date: Mon, 22 Jun 2026 00:25:40 +0200 Subject: [PATCH] :DiagInline commands --- nvim/.config/nvim/lua/romanzy/plugins/lsp.lua | 55 +++++++++++++++---- 1 file changed, 43 insertions(+), 12 deletions(-) diff --git a/nvim/.config/nvim/lua/romanzy/plugins/lsp.lua b/nvim/.config/nvim/lua/romanzy/plugins/lsp.lua index 059edbf..7e28ba9 100644 --- a/nvim/.config/nvim/lua/romanzy/plugins/lsp.lua +++ b/nvim/.config/nvim/lua/romanzy/plugins/lsp.lua @@ -17,19 +17,50 @@ local mason_lspconfig = require("mason-lspconfig") vim.opt.completeopt = { "menu", "menuone", "noselect", "popup", "fuzzy" } -vim.diagnostic.config({ - severity_sort = true, - signs = true, - underline = true, - update_in_insert = false, - virtual_text = { +local diag_inline_enabled = true + +local function diag_virtual_text() + if not diag_inline_enabled then + return false + end + + return { severity = vim.diagnostic.severity.ERROR, - }, - float = { - border = "rounded", - source = "if_many", - }, -}) + } +end + +local function configure_diagnostics() + vim.diagnostic.config({ + severity_sort = true, + signs = true, + underline = true, + update_in_insert = false, + virtual_text = diag_virtual_text(), + float = { + border = "rounded", + source = "if_many", + }, + }) +end + +local function set_diag_inline(enabled) + diag_inline_enabled = enabled + configure_diagnostics() +end + +configure_diagnostics() + +vim.api.nvim_create_user_command("DiagInline", function() + set_diag_inline(not diag_inline_enabled) +end, {}) + +vim.api.nvim_create_user_command("DiagInlineOn", function() + set_diag_inline(true) +end, {}) + +vim.api.nvim_create_user_command("DiagInlineOff", function() + set_diag_inline(false) +end, {}) vim.api.nvim_create_autocmd("LspAttach", { callback = function(ev)