diff options
| author | William Boman <william@redwill.se> | 2022-04-29 13:32:59 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-29 13:32:59 +0200 |
| commit | 016cd4bdfd7740d71fae024162a47b8e8a72af03 (patch) | |
| tree | 2314a87e2a8e2c88948ed8ea3e86c02f0cfdd8d4 /lua | |
| parent | fix!(arduino_language_server): dont install arduino-cli and clangd (#640) (diff) | |
| download | mason-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.lua | 9 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/middleware.lua | 4 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/settings.lua | 2 |
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. |
