From 27041ff1fa9e760166a5d2051d9e82ca0c8d19b4 Mon Sep 17 00:00:00 2001 From: imxyy_soope_ Date: Sun, 4 May 2025 10:58:47 +0800 Subject: [PATCH] feat(nvim): switch virtual_lines --- .../neovim/nvim/lua/plugins/lsp/lspconfig.lua | 52 +++++++++++-------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/modules/coding/editor/neovim/nvim/lua/plugins/lsp/lspconfig.lua b/modules/coding/editor/neovim/nvim/lua/plugins/lsp/lspconfig.lua index 8fedd8e..fa87b09 100644 --- a/modules/coding/editor/neovim/nvim/lua/plugins/lsp/lspconfig.lua +++ b/modules/coding/editor/neovim/nvim/lua/plugins/lsp/lspconfig.lua @@ -37,7 +37,10 @@ local extra_config = { settings = { rust_analyzer = { check = { - command = "clippy" + command = "cargo clippy" + }, + diagnostics = { + experimental = true, }, formatting = { command = { "rustfmt" }, @@ -47,22 +50,6 @@ local extra_config = { }, } -local on_attach = function(client, bufnr) - vim.api.nvim_create_autocmd("CursorHold", { - buffer = bufnr, - callback = function() - local opts = { - focusable = false, - close_events = { "BufLeave", "CursorMoved", "InsertEnter", "FocusLost" }, - border = "rounded", - source = "always", - prefix = " ", - scope = "line", - } - vim.diagnostic.open_float(nil, opts) - end, - }) -end local capabilities = require("cmp_nvim_lsp").default_capabilities() capabilities = vim.lsp.protocol.make_client_capabilities() capabilities.textDocument.foldingRange = { @@ -73,7 +60,6 @@ local lspconfig = require("lspconfig") for _, server in ipairs(servers) do local extra = extra_config[server] or {} local config = { - on_attach = on_attach, capabilities = capabilities } for k, v in pairs(extra) do @@ -82,7 +68,29 @@ for _, server in ipairs(servers) do lspconfig[server].setup(config) end -vim.diagnostic.config({ - virtual_lines = true -}) - +local diag_config1 = { + virtual_text = { + severity = { + max = vim.diagnostic.severity.WARN, + }, + }, + virtual_lines = { + severity = { + min = vim.diagnostic.severity.ERROR, + }, + }, +} +local diag_config2 = { + virtual_text = true, + virtual_lines = false, +} +vim.diagnostic.config(diag_config1) +local diag_config_basic = false +vim.keymap.set("n", "ll", function() + diag_config_basic = not diag_config_basic + if diag_config_basic then + vim.diagnostic.config(diag_config2) + else + vim.diagnostic.config(diag_config1) + end +end, { desc = "Toggle diagnostic virtual_lines" })