diff options
| author | William Boman <william@redwill.se> | 2023-03-24 14:00:57 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-24 14:00:57 +0100 |
| commit | b64fdede85fd5e0b720ce722919e0a9b95ed6547 (patch) | |
| tree | 466de2f088d1d0a509e049d06c9842742b13920f /lua | |
| parent | fix(scripts): setup mason and refresh registry (#177) (diff) | |
| download | mason-lspconfig-b64fdede85fd5e0b720ce722919e0a9b95ed6547.tar mason-lspconfig-b64fdede85fd5e0b720ce722919e0a9b95ed6547.tar.gz mason-lspconfig-b64fdede85fd5e0b720ce722919e0a9b95ed6547.tar.bz2 mason-lspconfig-b64fdede85fd5e0b720ce722919e0a9b95ed6547.tar.lz mason-lspconfig-b64fdede85fd5e0b720ce722919e0a9b95ed6547.tar.xz mason-lspconfig-b64fdede85fd5e0b720ce722919e0a9b95ed6547.tar.zst mason-lspconfig-b64fdede85fd5e0b720ce722919e0a9b95ed6547.zip | |
feat: refresh registry before installing servers in ensure_installed (#170)
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/mason-lspconfig/ensure_installed.lua | 12 | ||||
| -rw-r--r-- | lua/mason-lspconfig/lspconfig_hook.lua | 22 |
2 files changed, 22 insertions, 12 deletions
diff --git a/lua/mason-lspconfig/ensure_installed.lua b/lua/mason-lspconfig/ensure_installed.lua index 15673d7..dabd931 100644 --- a/lua/mason-lspconfig/ensure_installed.lua +++ b/lua/mason-lspconfig/ensure_installed.lua @@ -1,9 +1,9 @@ local notify = require "mason-core.notify" +local registry = require "mason-registry" local settings = require "mason-lspconfig.settings" ---@param lspconfig_server_name string local function resolve_package(lspconfig_server_name) - local registry = require "mason-registry" local Optional = require "mason-core.optional" local server_mapping = require "mason-lspconfig.mappings.server" @@ -15,7 +15,7 @@ local function resolve_package(lspconfig_server_name) end) end -return function() +local function ensure_installed() for _, server_identifier in ipairs(settings.current.ensure_installed) do local Package = require "mason-core.package" @@ -39,3 +39,11 @@ return function() end) end end + +if registry.refresh then + return function() + registry.refresh(vim.schedule_wrap(ensure_installed)) + end +else + return ensure_installed +end diff --git a/lua/mason-lspconfig/lspconfig_hook.lua b/lua/mason-lspconfig/lspconfig_hook.lua index b5cb4bd..ccab5c1 100644 --- a/lua/mason-lspconfig/lspconfig_hook.lua +++ b/lua/mason-lspconfig/lspconfig_hook.lua @@ -75,16 +75,18 @@ return function() end end elseif should_auto_install(config.name) then - local pkg = registry.get_package(pkg_name) - require("mason-lspconfig.install").install(pkg):once( - "closed", - vim.schedule_wrap(function() - if pkg:is_installed() then - -- reload config - require("lspconfig")[config.name].setup(config) - end - end) - ) + local ok, pkg = pcall(registry.get_package, pkg_name) + if ok then + require("mason-lspconfig.install").install(pkg):once( + "closed", + vim.schedule_wrap(function() + if pkg:is_installed() then + -- reload config + require("lspconfig")[config.name].setup(config) + end + end) + ) + end end end) end |
