summaryrefslogtreecommitdiff
path: root/lua/lvim/lsp
diff options
context:
space:
mode:
authorCPea <[email protected]>2022-06-26 19:08:54 +0700
committerGitHub <[email protected]>2022-06-26 14:08:54 +0200
commitc6431a09c7e6541dba46a7f7e6db7a34d0d00092 (patch)
tree0b3835e07f37519cca9ab6b9cc676b5aaca94fe3 /lua/lvim/lsp
parent12f8798bb05038a6269c6e50fe20c53ac47f75e3 (diff)
feat(lsp): add option to override default `nvim-lsp-installer` settings (#2698)
Diffstat (limited to 'lua/lvim/lsp')
-rw-r--r--lua/lvim/lsp/config.lua13
-rw-r--r--lua/lvim/lsp/init.lua5
-rw-r--r--lua/lvim/lsp/templates.lua10
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