aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/autogen_metadata.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-07-08 23:16:01 +0200
committerGitHub <noreply@github.com>2022-07-08 23:16:01 +0200
commita444f770b40bce70d2d4e0f88bcb8344958411d5 (patch)
treeb822be4a9c9f216b86669497bdaa1a2199f7ff4e /scripts/autogen_metadata.lua
parentfeat: add eslint_d linter (#31) (diff)
downloadmason-a444f770b40bce70d2d4e0f88bcb8344958411d5.tar
mason-a444f770b40bce70d2d4e0f88bcb8344958411d5.tar.gz
mason-a444f770b40bce70d2d4e0f88bcb8344958411d5.tar.bz2
mason-a444f770b40bce70d2d4e0f88bcb8344958411d5.tar.lz
mason-a444f770b40bce70d2d4e0f88bcb8344958411d5.tar.xz
mason-a444f770b40bce70d2d4e0f88bcb8344958411d5.tar.zst
mason-a444f770b40bce70d2d4e0f88bcb8344958411d5.zip
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.
Diffstat (limited to 'scripts/autogen_metadata.lua')
-rw-r--r--scripts/autogen_metadata.lua20
1 files changed, 20 insertions, 0 deletions
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
@@ -48,6 +49,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 {
vim.loop.cwd(),
@@ -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,
}))