1
0
neovim-config/lua/config/lspinstaller.lua

40 lines
1.1 KiB
Lua

local lspconfig_config = require('config.lspconfig')
local lsp_installer = require('nvim-lsp-installer')
local lsp_installer_servers = require('nvim-lsp-installer.servers')
-- local autoinstall_servers = {"sumneko_lua", "efm"}
local autoinstall_servers = {"sumneko_lua"}
for _, name in ipairs(autoinstall_servers) do
local ok, server = lsp_installer_servers.get_server(name)
if ok and not server:is_installed() then
server:install()
end
end
local capabilities = lspconfig_config.get_capabilities()
for _, server in ipairs(lsp_installer.get_installed_servers()) do
local opts = {
root_dir = function()
return vim.fn.getcwd()
end,
init_options = lspconfig_config.get_server_init_options(server.name),
on_attach = lspconfig_config.on_attach,
on_init = lspconfig_config.on_init,
flags = lspconfig_config.flags,
capabilities = capabilities,
settings = lspconfig_config.get_server_settings(server.name)
}
if server.name == "rust_analyzer" then
local has_rust_tools, rust_tools = pcall(require, "rust-tools")
if has_rust_tools then
rust_tools.setup({ server = opts })
goto continue
end
end
server:setup(opts)
::continue::
end