aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-04-28 17:14:21 +0200
committerGitHub <noreply@github.com>2022-04-28 17:14:21 +0200
commit8603cdc1692f2c3078e328a2ed9554cf9047594d (patch)
treeba8f51d83fb4824cdb28572b649ddec7a951fef6 /lua/nvim-lsp-installer.lua
parentdocs: remove Rust Wiki link (diff)
downloadmason-8603cdc1692f2c3078e328a2ed9554cf9047594d.tar
mason-8603cdc1692f2c3078e328a2ed9554cf9047594d.tar.gz
mason-8603cdc1692f2c3078e328a2ed9554cf9047594d.tar.bz2
mason-8603cdc1692f2c3078e328a2ed9554cf9047594d.tar.lz
mason-8603cdc1692f2c3078e328a2ed9554cf9047594d.tar.xz
mason-8603cdc1692f2c3078e328a2ed9554cf9047594d.tar.zst
mason-8603cdc1692f2c3078e328a2ed9554cf9047594d.zip
feat: add ensure_installed to setup table (#637)
Diffstat (limited to 'lua/nvim-lsp-installer.lua')
-rw-r--r--lua/nvim-lsp-installer.lua19
1 files changed, 19 insertions, 0 deletions
diff --git a/lua/nvim-lsp-installer.lua b/lua/nvim-lsp-installer.lua
index a910440e..ab566551 100644
--- a/lua/nvim-lsp-installer.lua
+++ b/lua/nvim-lsp-installer.lua
@@ -14,6 +14,22 @@ local M = {}
M.settings = settings.set
+---@param server_identifiers string[]
+local function ensure_installed(server_identifiers)
+ local candidates = {}
+ for _, server_identifier in ipairs(server_identifiers) do
+ local server_name, version = servers.parse_server_identifier(server_identifier)
+ local ok, server = servers.get_server(server_name)
+ if ok and not server:is_installed() then
+ table.insert(candidates, server_name)
+ server:install(version)
+ end
+ end
+ if #candidates > 0 then
+ notify("Installing LSP servers: " .. table.concat(candidates, ", "))
+ end
+end
+
---@param config table
function M.setup(config)
if config then
@@ -21,6 +37,9 @@ 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)
end
M.info_window = {