diff options
| author | William Boman <william@redwill.se> | 2022-04-28 17:14:21 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-28 17:14:21 +0200 |
| commit | 8603cdc1692f2c3078e328a2ed9554cf9047594d (patch) | |
| tree | ba8f51d83fb4824cdb28572b649ddec7a951fef6 /lua/nvim-lsp-installer.lua | |
| parent | docs: remove Rust Wiki link (diff) | |
| download | mason-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.lua | 19 |
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 = { |
