aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-04-29 13:32:59 +0200
committerGitHub <noreply@github.com>2022-04-29 13:32:59 +0200
commit016cd4bdfd7740d71fae024162a47b8e8a72af03 (patch)
tree2314a87e2a8e2c88948ed8ea3e86c02f0cfdd8d4 /lua
parentfix!(arduino_language_server): dont install arduino-cli and clangd (#640) (diff)
downloadmason-016cd4bdfd7740d71fae024162a47b8e8a72af03.tar
mason-016cd4bdfd7740d71fae024162a47b8e8a72af03.tar.gz
mason-016cd4bdfd7740d71fae024162a47b8e8a72af03.tar.bz2
mason-016cd4bdfd7740d71fae024162a47b8e8a72af03.tar.lz
mason-016cd4bdfd7740d71fae024162a47b8e8a72af03.tar.xz
mason-016cd4bdfd7740d71fae024162a47b8e8a72af03.tar.zst
mason-016cd4bdfd7740d71fae024162a47b8e8a72af03.zip
feat: add 'automatic_installation' feature toggle to setup options (#638)
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim-lsp-installer.lua9
-rw-r--r--lua/nvim-lsp-installer/middleware.lua4
-rw-r--r--lua/nvim-lsp-installer/settings.lua2
3 files changed, 12 insertions, 3 deletions
diff --git a/lua/nvim-lsp-installer.lua b/lua/nvim-lsp-installer.lua
index f41dbbf7..631f66a2 100644
--- a/lua/nvim-lsp-installer.lua
+++ b/lua/nvim-lsp-installer.lua
@@ -37,9 +37,12 @@ function M.setup(config)
end
settings.uses_new_setup = true
require("nvim-lsp-installer.middleware").register_lspconfig_hook()
- vim.schedule(function()
- ensure_installed(settings.current.ensure_installed)
- end)
+
+ if vim.tbl_islist(settings.current.ensure_installed) then
+ vim.schedule(function()
+ ensure_installed(settings.current.ensure_installed)
+ end)
+ end
end
M.info_window = {
diff --git a/lua/nvim-lsp-installer/middleware.lua b/lua/nvim-lsp-installer/middleware.lua
index 3e01b976..cd5c508d 100644
--- a/lua/nvim-lsp-installer/middleware.lua
+++ b/lua/nvim-lsp-installer/middleware.lua
@@ -1,5 +1,6 @@
local util = require "lspconfig.util"
local servers = require "nvim-lsp-installer.servers"
+local settings = require "nvim-lsp-installer.settings"
local M = {}
@@ -25,6 +26,9 @@ function M.register_lspconfig_hook()
local ok, server = servers.get_server(config.name)
if ok then
merge_in_place(config, server._default_options)
+ if settings.current.automatic_installation and not server:is_installed() then
+ server:install()
+ end
end
end)
end
diff --git a/lua/nvim-lsp-installer/settings.lua b/lua/nvim-lsp-installer/settings.lua
index 7a36e217..44c739db 100644
--- a/lua/nvim-lsp-installer/settings.lua
+++ b/lua/nvim-lsp-installer/settings.lua
@@ -6,6 +6,8 @@ local M = {}
local DEFAULT_SETTINGS = {
-- A list of servers to automatically install. Example: { "rust_analyzer", "sumneko_lua" }
ensure_installed = {},
+ -- Whether servers that are set up (via lspconfig) should be automatically installed if they're not already installed.
+ automatic_installation = false,
ui = {
icons = {
-- The list icon to use for installed servers.