dotfiles/symlinks/config/nvim/lua/esensar/lsp/servers.lua

102 lines
2.2 KiB
Lua
Raw Normal View History

2021-02-23 11:27:32 +00:00
-------------------------------------------------------------------------------
-- - LSP servers configuration -
-------------------------------------------------------------------------------
local lspconfig = require("lspconfig")
require("mason").setup()
require("mason-lspconfig").setup()
2023-03-01 17:54:50 +00:00
require("neodev").setup()
local common_config = require("esensar.lsp.server_config")
2022-05-09 09:33:44 +00:00
-- Language specific LSP config overrides
local configuration_overrides = {
gdscript = {
flags = {
-- Slow Godot LS
debounce_text_changes = 600,
2022-05-09 11:14:19 +00:00
},
2022-05-09 09:33:44 +00:00
},
omnisharp = {
cmd = {
vim.fn.glob("$HOME") .. "/.local/share/lsp/dotnet/omnisharp/run",
2022-05-09 09:33:44 +00:00
"--languageserver",
"--hostPID",
2022-05-09 11:14:19 +00:00
tostring(vim.fn.getpid()),
2022-05-09 09:33:44 +00:00
},
},
lemminx = {
2022-05-09 11:14:19 +00:00
cmd = { "lemminx" },
},
2022-07-30 08:51:03 +00:00
rust_analyzer = {
settings = {
["rust-analyzer"] = {
checkOnSave = {
2022-10-21 06:13:39 +00:00
command = "clippy",
2022-07-30 08:51:03 +00:00
},
2022-10-21 06:13:39 +00:00
},
},
},
2022-05-09 09:33:44 +00:00
}
2021-10-08 14:28:07 +00:00
2021-02-24 14:13:56 +00:00
-- Lsp default language servers
local servers = {
2022-04-28 13:53:54 +00:00
"bashls",
"clangd",
"clojure_lsp",
"cmake",
"crystalline",
"cucumber_language_server",
"dockerls",
2022-05-09 09:33:44 +00:00
"gdscript",
2022-04-28 13:53:54 +00:00
"gopls",
"hls",
"jsonls",
"kotlin_language_server",
2022-05-09 09:33:44 +00:00
"lemminx",
2023-03-01 17:54:50 +00:00
"lua_ls",
2022-04-28 13:53:54 +00:00
"mint",
2022-05-09 09:33:44 +00:00
"omnisharp",
2022-04-28 13:53:54 +00:00
"pyright",
"solang",
"terraformls",
"tsserver",
"vimls",
2022-04-30 21:18:43 +00:00
"zls",
}
2021-02-24 14:13:56 +00:00
for _, lsp in ipairs(servers) do
2022-05-09 11:14:19 +00:00
lspconfig[lsp].setup(vim.tbl_extend("force", common_config, configuration_overrides[lsp] or {}))
2021-02-23 11:27:32 +00:00
end
-- Lua bultin lsp
2022-10-21 06:12:42 +00:00
local nlua_capabilities = vim.deepcopy(common_config.capabilities)
nlua_capabilities.textDocument.formatting = false
nlua_capabilities.textDocument.rangeFormatting = false
2022-05-09 11:14:19 +00:00
require("nlua.lsp.nvim").setup(
lspconfig,
vim.tbl_extend("force", common_config, {
-- Tell LSP which globals should be considered real
globals = {},
2022-10-21 06:12:42 +00:00
capabilities = nlua_capabilities,
2022-05-09 11:14:19 +00:00
})
)
2021-03-17 19:34:03 +00:00
-- Flutter tools
2022-04-28 13:53:54 +00:00
require("flutter-tools").setup({
2022-05-09 11:14:19 +00:00
lsp = common_config,
2022-04-28 13:53:54 +00:00
})
2023-01-19 12:03:18 +00:00
-- Rust tools
local rt = require("rust-tools")
rt.setup({
server = vim.tbl_extend("force", common_config, {
on_attach = function(client, bufnr)
common_config.on_attach(client, bufnr)
-- Hover actions
vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr })
-- Code action groups
vim.keymap.set("n", "<Leader>a", rt.code_action_group.code_action_group, { buffer = bufnr })
end,
}),
})