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

72 lines
1.4 KiB
Lua

-------------------------------------------------------------------------------
-- - LSP servers configuration -
-------------------------------------------------------------------------------
local lspconfig = require("lspconfig")
require("nvim-lsp-installer").setup({})
local common_config = require("esensar.lsp.server_config")
-- Language specific LSP config overrides
local configuration_overrides = {
gdscript = {
flags = {
-- Slow Godot LS
debounce_text_changes = 600,
},
},
omnisharp = {
cmd = {
vim.fn.glob("$HOME") .. "/lsp/dotnet/omnisharp/run",
"--languageserver",
"--hostPID",
tostring(vim.fn.getpid()),
},
},
lemminx = {
cmd = { "lemminx" },
},
}
-- Lsp default language servers
local servers = {
"bashls",
"clangd",
"clojure_lsp",
"cmake",
"crystalline",
"cucumber_language_server",
"dockerls",
"gdscript",
"gopls",
"hls",
"jsonls",
"kotlin_language_server",
"lemminx",
"mint",
"omnisharp",
"pyright",
"rust_analyzer",
"solang",
"terraformls",
"tsserver",
"vimls",
"zls",
}
for _, lsp in ipairs(servers) do
lspconfig[lsp].setup(vim.tbl_extend("force", common_config, configuration_overrides[lsp] or {}))
end
-- Lua bultin lsp
require("nlua.lsp.nvim").setup(
lspconfig,
vim.tbl_extend("force", common_config, {
-- Tell LSP which globals should be considered real
globals = {},
})
)
-- Flutter tools
require("flutter-tools").setup({
lsp = common_config,
})