diff options
Diffstat (limited to 'scripts/lua')
| -rw-r--r-- | scripts/lua/mason-scripts/mason-lspconfig/generate.lua | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/scripts/lua/mason-scripts/mason-lspconfig/generate.lua b/scripts/lua/mason-scripts/mason-lspconfig/generate.lua index 2fa58692..66c2ba62 100644 --- a/scripts/lua/mason-scripts/mason-lspconfig/generate.lua +++ b/scripts/lua/mason-scripts/mason-lspconfig/generate.lua @@ -32,8 +32,23 @@ local function create_lspconfig_filetype_map() ) end +---@async +local function ensure_valid_mapping() + local server_mappings = require "mason-lspconfig.mappings.server" + local registry = require "mason-registry" + + for lspconfig_server, mason_package in pairs(server_mappings.lspconfig_to_package) do + local lspconfig_ok, server_config = + pcall(require, ("lspconfig.server_configurations.%s"):format(lspconfig_server)) + local mason_ok, pkg = pcall(registry.get_package, mason_package) + assert(lspconfig_ok and server_config ~= nil, lspconfig_server .. " is not a valid lspconfig server name.") + assert(mason_ok and pkg ~= nil, mason_package .. " is not a valid Mason package name.") + end +end + a.run_blocking(function() a.wait_all { create_lspconfig_filetype_map, + ensure_valid_mapping, } end) |
