diff --git a/lua/cosmic/lsp/providers/defaults.lua b/lua/cosmic/lsp/providers/defaults.lua index 596fa51..fb6cbc8 100644 --- a/lua/cosmic/lsp/providers/defaults.lua +++ b/lua/cosmic/lsp/providers/defaults.lua @@ -1,9 +1,9 @@ -local capabilities = require('cmp_nvim_lsp').default_capabilities() local M = {} local augroup_name = 'CosmicNvimLspFormat' local user_config = require('cosmic.core.user') local u = require('cosmic.utils') local lsp_utils = require('cosmic.utils.lsp') +local lsp_mappings = require('cosmic.lsp.mappings') M.augroup = vim.api.nvim_create_augroup(augroup_name, { clear = true }) @@ -42,7 +42,7 @@ function M.on_attach(client, bufnr) end -- set up default mappings - require('cosmic.lsp.mappings').init(client, bufnr) + lsp_mappings.init(client, bufnr) -- set up any additional mappings/overrides from user config for _, callback in pairs(user_config.lsp.on_attach_mappings) do @@ -50,7 +50,7 @@ function M.on_attach(client, bufnr) end end -M.capabilities = u.merge(capabilities, { +M.capabilities = u.merge(require('cmp_nvim_lsp').default_capabilities(), { -- See: https://github.com/neovim/neovim/issues/23291 workspace = { didChangeWatchedFiles = { diff --git a/lua/cosmic/plugins/mason-lspconfig/init.lua b/lua/cosmic/plugins/mason-lspconfig/init.lua index 3be2a3d..14e41ae 100644 --- a/lua/cosmic/plugins/mason-lspconfig/init.lua +++ b/lua/cosmic/plugins/mason-lspconfig/init.lua @@ -17,29 +17,22 @@ return { local lspconfig = require('lspconfig') local start_server = function(server) - local opts = default_config + local server_config = default_config -- set up default cosmic options - if server == 'tsserver' then - opts = u.merge(opts, require('cosmic.lsp.providers.tsserver')) - elseif server == 'jsonls' then - opts = u.merge(opts, require('cosmic.lsp.providers.jsonls')) - elseif server == 'pyright' then - opts = u.merge(opts, require('cosmic.lsp.providers.pyright')) - elseif server == 'eslint' then - opts = u.merge(opts, require('cosmic.lsp.providers.eslint')) - elseif server == 'lua_ls' then - opts = u.merge(opts, require('cosmic.lsp.providers.lua_ls')) + local ok, cosmic_server_config = pcall('cosmic.lsp.providers.' .. server) + if ok then + server_config = u.merge(server_config, cosmic_server_config) end -- override options if user defines them if type(user_config.lsp.servers[server]) == 'table' then if user_config.lsp.servers[server].opts ~= nil then - opts = u.merge(opts, user_config.lsp.servers[server].opts) + server_config = u.merge(server_config, user_config.lsp.servers[server].opts) end end - lspconfig[server].setup(opts) + lspconfig[server].setup(server_config) end for config_server, config_opt in pairs(user_config.lsp.servers) do