diff options
Diffstat (limited to 'lua/mason-lspconfig/init.lua')
| -rw-r--r-- | lua/mason-lspconfig/init.lua | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/lua/mason-lspconfig/init.lua b/lua/mason-lspconfig/init.lua index 276d41c4..e3c7cc93 100644 --- a/lua/mason-lspconfig/init.lua +++ b/lua/mason-lspconfig/init.lua @@ -10,7 +10,7 @@ local registry = require "mason-registry" local M = {} ---@param lspconfig_server_name string -function M.resolve_package(lspconfig_server_name) +local function resolve_package(lspconfig_server_name) return Optional.of_nilable(server_mapping.lspconfig_to_package[lspconfig_server_name]):map(function(package_name) local ok, pkg = pcall(registry.get_package, package_name) if ok then @@ -20,7 +20,7 @@ function M.resolve_package(lspconfig_server_name) end ---@param lspconfig_server_name string -function M.resolve_server_config_factory(lspconfig_server_name) +local function resolve_server_config_factory(lspconfig_server_name) local ok, server_config = pcall(require, ("mason-lspconfig.server_configurations.%s"):format(lspconfig_server_name)) if ok then return Optional.of(server_config) @@ -67,7 +67,7 @@ local function setup_lspconfig_hook() end if registry.is_installed(pkg_name) then - M.resolve_server_config_factory(config.name):if_present(function(config_factory) + resolve_server_config_factory(config.name):if_present(function(config_factory) merge_in_place(config, config_factory(path.package_prefix(pkg_name))) end) else @@ -82,7 +82,7 @@ end local function ensure_installed() for _, server_identifier in ipairs(settings.current.ensure_installed) do local server_name, version = Package.Parse(server_identifier) - M.resolve_package(server_name):if_present( + resolve_package(server_name):if_present( ---@param pkg Package function(pkg) if not pkg:is_installed() then @@ -154,4 +154,11 @@ function M.setup_handlers(handlers) ) end +---@return string[] +function M.get_installed_servers() + return _.filter_map(function(pkg_name) + return Optional.of_nilable(server_mapping.package_to_lspconfig[pkg_name]) + end, registry.get_installed_package_names()) +end + return M |
