diff options
| author | William Boman <william@redwill.se> | 2022-07-09 01:00:34 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-09 01:00:34 +0200 |
| commit | d132a7a673d43b2da73f75e09fbe7fb49c431514 (patch) | |
| tree | 4b3b10d68ee149382d71b6977664bcb9d6dd2d20 /scripts/lua/mason-scripts/mason-lspconfig | |
| parent | feat: add black (#34) (diff) | |
| download | mason-d132a7a673d43b2da73f75e09fbe7fb49c431514.tar mason-d132a7a673d43b2da73f75e09fbe7fb49c431514.tar.gz mason-d132a7a673d43b2da73f75e09fbe7fb49c431514.tar.bz2 mason-d132a7a673d43b2da73f75e09fbe7fb49c431514.tar.lz mason-d132a7a673d43b2da73f75e09fbe7fb49c431514.tar.xz mason-d132a7a673d43b2da73f75e09fbe7fb49c431514.tar.zst mason-d132a7a673d43b2da73f75e09fbe7fb49c431514.zip | |
chore(workflow): modularize scripts and remove mason-lspconfig from CI checks (#36)
Diffstat (limited to 'scripts/lua/mason-scripts/mason-lspconfig')
| -rw-r--r-- | scripts/lua/mason-scripts/mason-lspconfig/generate.lua | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/scripts/lua/mason-scripts/mason-lspconfig/generate.lua b/scripts/lua/mason-scripts/mason-lspconfig/generate.lua new file mode 100644 index 00000000..2fa58692 --- /dev/null +++ b/scripts/lua/mason-scripts/mason-lspconfig/generate.lua @@ -0,0 +1,39 @@ +local a = require "mason-core.async" +local path = require "mason-core.path" +local _ = require "mason-core.functional" +local lspconfig_server_mapping = require "mason-lspconfig.mappings.server" +local script_utils = require "mason-scripts.utils" + +local MASON_LSPCONFIG_DIR = path.concat { vim.loop.cwd(), "lua", "mason-lspconfig" } + +local function get_lspconfig(name) + return require(("lspconfig.server_configurations.%s"):format(name)) +end + +---@async +local function create_lspconfig_filetype_map() + local filetype_map = {} + + for _, server_name in ipairs(_.keys(lspconfig_server_mapping.lspconfig_to_package)) do + local config = get_lspconfig(server_name) + for _, filetype in ipairs(config.default_config.filetypes or {}) do + if not filetype_map[filetype] then + filetype_map[filetype] = {} + end + table.insert(filetype_map[filetype], server_name) + table.sort(filetype_map[filetype]) + end + end + + script_utils.write_file( + path.concat { MASON_LSPCONFIG_DIR, "mappings", "filetype.lua" }, + "return " .. vim.inspect(filetype_map), + "w" + ) +end + +a.run_blocking(function() + a.wait_all { + create_lspconfig_filetype_map, + } +end) |
