nvim: Update lsp diagnostics keys

Can show hide diagnostics, virtual text and virtual lines independently.
This commit is contained in:
Marty Oehme 2025-03-08 19:32:50 +01:00
parent 642d422007
commit 96cab3d9a6
Signed by: Marty
GPG key ID: 4E535BC19C61886E

View file

@ -51,7 +51,6 @@ local lsp = {
vim.fn.sign_define("DiagnosticSignHint", { text = "", texthl = "DiagnosticSignHint" }) vim.fn.sign_define("DiagnosticSignHint", { text = "", texthl = "DiagnosticSignHint" })
for server, config in pairs(lspconfig_opts.servers) do for server, config in pairs(lspconfig_opts.servers) do
-- TODO: Check if it actually can be ignored in Nvim 0.11+, see https://cmp.saghen.dev/installation.html#lazy-nvim
if vim.fn.has("nvim-0.11") == false then if vim.fn.has("nvim-0.11") == false then
config.capabilities = require("blink.cmp").get_lsp_capabilities(config.capabilities) config.capabilities = require("blink.cmp").get_lsp_capabilities(config.capabilities)
end end
@ -206,16 +205,28 @@ vim.api.nvim_create_autocmd("LspAttach", {
require("which-key").add({ "<localleader>l", group = "language" }) require("which-key").add({ "<localleader>l", group = "language" })
end end
map("n", "<localleader>ld", "<cmd>lua vim.diagnostic.open_float()<cr>", o({ desc = "Show line diagnostics" })) map("n", "<localleader>ld", "<cmd>lua vim.diagnostic.open_float()<cr>", o({ desc = "Show line diagnostics" }))
map("n", "<localleader>lI", function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
end, o({ desc = "Toggle inlay hints" }))
map("n", "<localleader>la", "<cmd>lua vim.lsp.buf.code_action()<cr>", o({ desc = "Codeactions" })) map("n", "<localleader>la", "<cmd>lua vim.lsp.buf.code_action()<cr>", o({ desc = "Codeactions" }))
map("n", "<localleader>ln", "<cmd>lua vim.lsp.buf.rename()<cr>", o({ desc = "Rename element" })) map("n", "<localleader>ln", "<cmd>lua vim.lsp.buf.rename()<cr>", o({ desc = "Rename element" }))
map("n", "<localleader>lc", "<cmd>lua vim.lsp.buf.declaration()<cr>", o({ desc = "Declaration" })) map("n", "<localleader>lc", "<cmd>lua vim.lsp.buf.declaration()<cr>", o({ desc = "Declaration" }))
map("n", "<localleader>ls", "<cmd>lua vim.lsp.buf.signature_help()<cr>", o({ desc = "Signature help" })) map("n", "<localleader>ls", "<cmd>lua vim.lsp.buf.signature_help()<cr>", o({ desc = "Signature help" }))
map("n", "<localleader>lo", function()
map("n", "<localleader>lI", function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
end, o({ desc = "Toggle inlay hints" }))
map("n", "<localleader>lD", function()
vim.diagnostic.enable(not vim.diagnostic.is_enabled()) vim.diagnostic.enable(not vim.diagnostic.is_enabled())
end, o({ desc = "Toggle Diagnostics" })) end, o({ desc = "Toggle Diagnostics" }))
-- FIXME: Will be re-enabled with insert-mode autocmd above
map("n", "<localleader>lo", function()
local c = vim.diagnostic.config() or {}
vim.diagnostic.config({ virtual_text = not c["virtual_text"] })
end, o({ desc = "Toggle virtual diag text" }))
if vim.fn.has("nvim-0.11") == true then -- new feature https://gpanders.com/blog/whats-new-in-neovim-0-11/#virtual-lines
map("n", "<localleader>lO", function()
local c = vim.diagnostic.config() or {}
vim.diagnostic.config({ virtual_lines = not c["virtual_lines"] })
end, o({ desc = "Toggle virtual diag lines" }))
end
local pref = function(glances, telescope, fallback) local pref = function(glances, telescope, fallback)
if glances and vim.fn.exists(":Glance") > 0 then if glances and vim.fn.exists(":Glance") > 0 then