aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2021-08-26 17:01:44 +0200
committerGitHub <noreply@github.com>2021-08-26 17:01:44 +0200
commitf989567a9a9ea0f46e502f2d2271604b1cb89f4c (patch)
tree0963dc7092bafd55a85d7dda2f8b4764656a1f21
parentfix: add typescript dependency to tsserver (#69) (diff)
downloadmason-f989567a9a9ea0f46e502f2d2271604b1cb89f4c.tar
mason-f989567a9a9ea0f46e502f2d2271604b1cb89f4c.tar.gz
mason-f989567a9a9ea0f46e502f2d2271604b1cb89f4c.tar.bz2
mason-f989567a9a9ea0f46e502f2d2271604b1cb89f4c.tar.lz
mason-f989567a9a9ea0f46e502f2d2271604b1cb89f4c.tar.xz
mason-f989567a9a9ea0f46e502f2d2271604b1cb89f4c.tar.zst
mason-f989567a9a9ea0f46e502f2d2271604b1cb89f4c.zip
add g:lsp_installer_allow_federated_servers flag (#67)
-rw-r--r--doc/nvim-lsp-installer.txt25
-rw-r--r--lua/nvim-lsp-installer/servers/vscode-langservers-extracted/init.lua2
-rw-r--r--plugin/nvim-lsp-installer.vim1
3 files changed, 27 insertions, 1 deletions
diff --git a/doc/nvim-lsp-installer.txt b/doc/nvim-lsp-installer.txt
index c77a952c..ba3e52d8 100644
--- a/doc/nvim-lsp-installer.txt
+++ b/doc/nvim-lsp-installer.txt
@@ -79,6 +79,31 @@ Prints all installed language servers.
==============================================================================
+OPTIONS *nvim-lsp-installer-options*
+
+ *g:lsp_installer_allow_federated_servers*
+ *vim.g.lsp_installer_allow_federated_servers*
+VimL: g:lsp_installer_allow_federated_servers
+Lua: vim.g.lsp_installer_allow_federated_servers
+
+ Type: |Boolean|
+ Default: `true` (`1`)
+
+ Whether to allow LSP servers to share the same installation directory.
+ For some servers, this effectively causes more than one server to be
+ installed (and uninstalled) when executing `:LspInstall` and
+ `:LspUninstall`.
+
+ For example, installing `cssls` will also install both `jsonls` and `html`
+ (and the other ways around), as these all share the same underlying
+ package.
+
+ Example: >
+ let g:lsp_installer_allow_federated_servers = 0
+ vim.g.lsp_installer_allow_federated_servers = false
+<
+
+==============================================================================
Lua module: nvim-lsp-installer *lsp_installer*
*lsp_installer.get_available_servers()*
diff --git a/lua/nvim-lsp-installer/servers/vscode-langservers-extracted/init.lua b/lua/nvim-lsp-installer/servers/vscode-langservers-extracted/init.lua
index 3609b40c..53ba4815 100644
--- a/lua/nvim-lsp-installer/servers/vscode-langservers-extracted/init.lua
+++ b/lua/nvim-lsp-installer/servers/vscode-langservers-extracted/init.lua
@@ -6,7 +6,7 @@ local root_dir = server.get_server_root_path "vscode-langservers-extracted"
return function(name, executable)
return server.Server:new {
name = name,
- root_dir = root_dir,
+ root_dir = vim.g.lsp_installer_allow_federated_servers and root_dir or ("%s_%s"):format(root_dir, name),
installer = npm.packages { "vscode-langservers-extracted" },
default_options = {
cmd = { npm.executable(root_dir, executable), "--stdio" },
diff --git a/plugin/nvim-lsp-installer.vim b/plugin/nvim-lsp-installer.vim
index 6e9e192d..1293b7fb 100644
--- a/plugin/nvim-lsp-installer.vim
+++ b/plugin/nvim-lsp-installer.vim
@@ -1,5 +1,6 @@
if exists('g:loaded_nvim_lsp_installer') | finish | endif
let g:loaded_nvim_lsp_installer = 1
+let g:lsp_installer_allow_federated_servers = get(g:, "lsp_installer_allow_federated_servers", 1)
let s:save_cpo = &cpo
set cpo&vim