local lspconfig = require("lspconfig") local lsp = require("ambroisie.lsp") local utils = require("ambroisie.utils") -- Diagnostics vim.diagnostic.config({ -- Disable virtual test next to affected regions virtual_text = false, -- Also disable virtual diagnostics under the affected regions virtual_lines = false, -- Show diagnostics signs signs = true, -- Underline offending regions underline = true, -- Do not bother me in the middle of insertion update_in_insert = false, -- Show highest severity first severity_sort = true, }) -- Inform servers we are able to do completion, snippets, etc... local capabilities = require("cmp_nvim_lsp").default_capabilities() -- C/C++ if utils.is_executable("clangd") then lspconfig.clangd.setup({ capabilities = capabilities, on_attach = lsp.on_attach, }) end -- Nix if utils.is_executable("nil") then lspconfig.nil_ls.setup({ capabilities = capabilities, on_attach = lsp.on_attach, }) end if utils.is_executable("rnix-lsp") then lspconfig.rnix.setup({ capabilities = capabilities, on_attach = lsp.on_attach, }) end -- Python if utils.is_executable("pyright") then lspconfig.pyright.setup({ capabilities = capabilities, on_attach = lsp.on_attach, }) end -- Rust if utils.is_executable("rust-analyzer") then lspconfig.rust_analyzer.setup({ capabilities = capabilities, on_attach = lsp.on_attach, }) end