From a444f770b40bce70d2d4e0f88bcb8344958411d5 Mon Sep 17 00:00:00 2001 From: William Boman Date: Fri, 8 Jul 2022 23:16:01 +0200 Subject: feat(mason-lspconfig): add :LspInstall and :LspUninstall commands (#35) These should be in complete parity with the nvim-lsp-installer commands. Now even better than before. --- scripts/autogen_metadata.lua | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'scripts/autogen_metadata.lua') diff --git a/scripts/autogen_metadata.lua b/scripts/autogen_metadata.lua index 29339ce1..736b1bcb 100644 --- a/scripts/autogen_metadata.lua +++ b/scripts/autogen_metadata.lua @@ -3,6 +3,7 @@ local Path = require "mason-core.path" local fetch = require "mason-core.fetch" local _ = require "mason-core.functional" local fs = require "mason-core.fs" +local registry = require "mason-registry" local lspconfig_server_mapping = require "mason-lspconfig.mappings.server" ---@async @@ -47,6 +48,24 @@ local function create_lspconfig_filetype_map() ) end +---@async +local function create_language_map() + local language_map = {} + local sorted_packages = _.sort_by(_.prop "name", registry.get_all_packages()) + _.each(function(pkg) + _.each(function(language) + local language_lc = language:lower() + language_map[language_lc] = _.append(pkg.name, language_map[language_lc] or {}) + end, pkg.spec.languages) + end, sorted_packages) + + write_file( + Path.concat { vim.loop.cwd(), "lua", "mason", "mappings", "language.lua" }, + "return " .. vim.inspect(language_map), + "w" + ) +end + ---@async local function create_lsp_setting_schema_files() local lsp_schemas_path = Path.concat { @@ -124,6 +143,7 @@ end a.run_blocking(function() a.wait_all(_.filter(_.identity, { create_lspconfig_filetype_map, + create_language_map, not vim.env.SKIP_SCHEMAS and create_lsp_setting_schema_files, create_package_index, })) -- cgit v1.2.3-70-g09d2