fix: lsp not attaching

This commit is contained in:
Matthew Leong 2022-12-30 12:36:20 -08:00
parent 710752e604
commit 11fecdb9d0

View file

@ -1,7 +1,7 @@
local user_config = require('cosmic.core.user')
return { return {
'williamboman/mason-lspconfig.nvim', 'williamboman/mason-lspconfig.nvim',
config = function() config = function()
local user_config = require('cosmic.core.user')
require('mason').setup({ require('mason').setup({
ui = { ui = {
border = user_config.border, border = user_config.border,
@ -16,59 +16,43 @@ return {
local default_config = require('cosmic.lsp.providers.defaults') local default_config = require('cosmic.lsp.providers.defaults')
local lspconfig = require('lspconfig') local lspconfig = require('lspconfig')
-- initial default servers local start_server = function(server)
-- by default tsserver/ts_utils and null_ls are enabled -- null_ls doesn't need/can't to be started via lspconfig
local requested_servers = {} if server == 'null_ls' then
return
-- get disabled servers from config
local disabled_servers = {}
for config_server, config_opt in pairs(user_config.lsp.servers) do
-- null ls doesn't need to be setup by lspconfig
if not config_server == 'null_ls' then
print(config_server)
end end
--[[ print(config_server) ]]
if config_opt == false or config_server == 'null_ls' then
table.insert(disabled_servers, config_server)
elseif not vim.tbl_contains(requested_servers, config_server) then
-- add additonally defined servers to be installed
table.insert(requested_servers, config_server)
end
end
for _, requested_server in pairs(requested_servers) do
local opts = default_config local opts = default_config
-- disable server if config disabled server list says so
opts.autostart = true
if vim.tbl_contains(disabled_servers, requested_server) then
opts.autostart = false
end
-- set up default cosmic options -- set up default cosmic options
if requested_server == 'tsserver' then if server == 'tsserver' then
opts = u.merge(opts, require('cosmic.lsp.providers.tsserver')) opts = u.merge(opts, require('cosmic.lsp.providers.tsserver'))
elseif requested_server == 'jsonls' then elseif server == 'jsonls' then
opts = u.merge(opts, require('cosmic.lsp.providers.jsonls')) opts = u.merge(opts, require('cosmic.lsp.providers.jsonls'))
elseif requested_server == 'pyright' then elseif server == 'pyright' then
opts = u.merge(opts, require('cosmic.lsp.providers.pyright')) opts = u.merge(opts, require('cosmic.lsp.providers.pyright'))
elseif requested_server == 'sumneko_lua' then elseif server == 'sumneko_lua' then
opts = u.merge(opts, require('cosmic.lsp.providers.sumneko_lua')) opts = u.merge(opts, require('cosmic.lsp.providers.sumneko_lua'))
end end
-- override options if user definds them -- override options if user definds them
if type(user_config.lsp.servers[requested_server]) == 'table' then if type(user_config.lsp.servers[server]) == 'table' then
if user_config.lsp.servers[requested_server].opts ~= nil then if user_config.lsp.servers[server].opts ~= nil then
opts = u.merge(opts, user_config.lsp.servers[requested_server].opts) opts = u.merge(opts, user_config.lsp.servers[server].opts)
end end
end end
lspconfig[requested_server].setup(opts) lspconfig[server].setup(opts)
end
for config_server, config_opt in pairs(user_config.lsp.servers) do
if not config_opt == false then
start_server(config_server)
end
end end
end, end,
dependencies = { dependencies = {
'williamboman/mason.nvim', 'williamboman/mason.nvim',
}, },
event = 'VeryLazy', event = 'BufEnter',
} }