diff options
Diffstat (limited to 'lua')
-rw-r--r-- | lua/lvim/lsp/config.lua | 13 | ||||
-rw-r--r-- | lua/lvim/lsp/init.lua | 5 | ||||
-rw-r--r-- | lua/lvim/lsp/templates.lua | 10 |
3 files changed, 23 insertions, 5 deletions
diff --git a/lua/lvim/lsp/config.lua b/lua/lvim/lsp/config.lua index 1f84c4e2..7dc4c217 100644 --- a/lua/lvim/lsp/config.lua +++ b/lua/lvim/lsp/config.lua @@ -119,6 +119,19 @@ return { insert_mode = {}, visual_mode = {}, }, + ---@usage list of settings of nvim-lsp-installer + installer = { + setup = { + ensure_installed = {}, + ui = { + icons = { + server_installed = "✓", + server_pending = "", + server_uninstalled = "✗", + }, + }, + }, + }, null_ls = { setup = {}, config = {}, diff --git a/lua/lvim/lsp/init.lua b/lua/lvim/lsp/init.lua index 2f3258c9..505c1bc1 100644 --- a/lua/lvim/lsp/init.lua +++ b/lua/lvim/lsp/init.lua @@ -122,10 +122,7 @@ function M.setup() append_default_schemas = true, } - require("nvim-lsp-installer").setup { - -- use the default nvim_data_dir, since the server binaries are independent - install_root_dir = utils.join_paths(vim.call("stdpath", "data"), "lsp_servers"), - } + require("nvim-lsp-installer").setup(lvim.lsp.installer.setup) require("lvim.lsp.null-ls").setup() diff --git a/lua/lvim/lsp/templates.lua b/lua/lvim/lsp/templates.lua index 09f82430..578362a7 100644 --- a/lua/lvim/lsp/templates.lua +++ b/lua/lvim/lsp/templates.lua @@ -17,12 +17,20 @@ end local skipped_filetypes = lvim.lsp.automatic_configuration.skipped_filetypes local skipped_servers = lvim.lsp.automatic_configuration.skipped_servers +local ensure_installed_servers = lvim.lsp.installer.setup.ensure_installed + +---Check if we should skip generating an ftplugin file based on the server_name +---@param server_name string name of a valid language server +local function should_skip(server_name) + -- ensure_installed_servers should take priority over skipped_servers + return vim.tbl_contains(skipped_servers, server_name) and not vim.tbl_contains(ensure_installed_servers, server_name) +end ---Generates an ftplugin file based on the server_name in the selected directory ---@param server_name string name of a valid language server, e.g. pyright, gopls, tsserver, etc. ---@param dir string the full path to the desired directory function M.generate_ftplugin(server_name, dir) - if vim.tbl_contains(skipped_servers, server_name) then + if should_skip(server_name) then return end |