From c0e15e1141538a0caef9aa92998341c33b9454cb Mon Sep 17 00:00:00 2001 From: Vladan Popovic Date: Tue, 17 Sep 2024 16:36:40 +0200 Subject: [PATCH] cleanup lsp module --- lua/lsp.lua | 66 +++++++++++++++-------------------------------------- 1 file changed, 19 insertions(+), 47 deletions(-) diff --git a/lua/lsp.lua b/lua/lsp.lua index 68ec12d..85e4cd7 100644 --- a/lua/lsp.lua +++ b/lua/lsp.lua @@ -1,6 +1,4 @@ -local on_attach = function(client, bufnr) - local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) - +local common_on_attach = function(client, bufnr) -- Mappings. vim.keymap.set("n", "K", "lua vim.lsp.buf.hover()") vim.keymap.set("n", "", "lua vim.lsp.buf.signature_help()") @@ -9,11 +7,11 @@ local on_attach = function(client, bufnr) vim.keymap.set("n", "wl", "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))") vim.keymap.set("n", "wa", "lua vim.lsp.buf.add_workspace_folder()") vim.keymap.set("n", "wr", "lua vim.lsp.buf.remove_workspace_folder()") + vim.keymap.set("n", "r", "lua vim.lsp.buf.rename()") + -- Autoformat on save. if client.supports_method("textDocument/formatting") then - vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) vim.api.nvim_create_autocmd("BufWritePre", { - group = augroup, buffer = bufnr, callback = function() vim.lsp.buf.format() @@ -21,7 +19,7 @@ local on_attach = function(client, bufnr) }) end - -- use vim's default coloring + -- Use vim's default coloring. client.server_capabilities.semanticTokensProvider = nil for _, group in ipairs(vim.fn.getcompletion("@lsp", "highlight")) do vim.api.nvim_set_hl(0, group, {}) @@ -40,16 +38,15 @@ local servers = { "ocamllsp", "pyright", "rnix", - "ruff_lsp", "terraformls", "vimls", } for _, lsp in ipairs(servers) do - nvim_lsp[lsp].setup { capabilities = capabilities, on_attach = on_attach } + nvim_lsp[lsp].setup { capabilities = capabilities, on_attach = common_on_attach } end nvim_lsp.rust_analyzer.setup({ - on_attach = on_attach, + on_attach = common_on_attach, capabilities = capabilities, settings = { ["rust-analyzer"] = { @@ -74,26 +71,21 @@ nvim_lsp.rust_analyzer.setup({ } }) -vim.g.code_action_menu_window_border = 'single' - --- symbols-outline.nvim -vim.g.symbols_outline = { - highlight_hovered_item = true, - show_guides = true, - auto_preview = false, -- experimental - position = 'right', - keymaps = { - close = "", - goto_location = "", - focus_location = "o", - hover_symbol = "", - rename_symbol = "r", - code_actions = "a" +nvim_lsp.ruff.setup({ + on_attach = function (client) + common_on_attach(client) + client.server_capabilities.renameProvider = false + client.server_capabilities.hoverProvider = false + end, + init_options = { + settings = { + -- Any extra CLI arguments for `ruff` go here. + args = {} + } }, - lsp_blacklist = {} -} +}) --- LSP Enable diagnostics +-- LSP diagnostics. vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, { virtual_text = false, @@ -101,23 +93,3 @@ vim.lsp.handlers["textDocument/publishDiagnostics"] = signs = true, update_in_insert = false }) - --- Send diagnostics to quickfix list -do - local method = "textDocument/publishDiagnostics" - local default_handler = vim.lsp.handlers[method] - vim.lsp.handlers[method] = function(err, method, result, client_id, bufnr, config) - default_handler(err, method, result, client_id, bufnr, config) - local diagnostics = vim.diagnostic.get() - local qflist = {} - for bufnr, diagnostic in pairs(diagnostics) do - for _, d in ipairs(diagnostic) do - d.bufnr = bufnr - d.lnum = d.range.start.line + 1 - d.col = d.range.start.character + 1 - d.text = d.message - table.insert(qflist, d) - end - end - end -end