diff options
| author | William Boman <william@redwill.se> | 2022-07-28 00:03:24 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-28 00:03:24 +0200 |
| commit | 05e70bc283471d27c905383a02185934a68ab496 (patch) | |
| tree | b604f3b5de8147999206f2e79c7a1cc48ffa553a /scripts | |
| parent | chore: better issue template (#9) (diff) | |
| download | mason-lspconfig-05e70bc283471d27c905383a02185934a68ab496.tar mason-lspconfig-05e70bc283471d27c905383a02185934a68ab496.tar.gz mason-lspconfig-05e70bc283471d27c905383a02185934a68ab496.tar.bz2 mason-lspconfig-05e70bc283471d27c905383a02185934a68ab496.tar.lz mason-lspconfig-05e70bc283471d27c905383a02185934a68ab496.tar.xz mason-lspconfig-05e70bc283471d27c905383a02185934a68ab496.tar.zst mason-lspconfig-05e70bc283471d27c905383a02185934a68ab496.zip | |
docs: generate server-mapping.md (#13)
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/lua/mason-scripts/mason-lspconfig/generate.lua | 33 | ||||
| -rw-r--r-- | scripts/lua/mason-scripts/utils.lua | 35 |
2 files changed, 56 insertions, 12 deletions
diff --git a/scripts/lua/mason-scripts/mason-lspconfig/generate.lua b/scripts/lua/mason-scripts/mason-lspconfig/generate.lua index 66c2ba6..88fdc9d 100644 --- a/scripts/lua/mason-scripts/mason-lspconfig/generate.lua +++ b/scripts/lua/mason-scripts/mason-lspconfig/generate.lua @@ -4,6 +4,7 @@ local _ = require "mason-core.functional" local lspconfig_server_mapping = require "mason-lspconfig.mappings.server" local script_utils = require "mason-scripts.utils" +local DOCS_DIR = path.concat { vim.loop.cwd(), "doc" } local MASON_LSPCONFIG_DIR = path.concat { vim.loop.cwd(), "lua", "mason-lspconfig" } local function get_lspconfig(name) @@ -33,7 +34,7 @@ local function create_lspconfig_filetype_map() end ---@async -local function ensure_valid_mapping() +local function ensure_valid_package_name_translations() local server_mappings = require "mason-lspconfig.mappings.server" local registry = require "mason-registry" @@ -46,9 +47,37 @@ local function ensure_valid_mapping() end end +---@async +local function create_server_mapping_docs() + local server_mappings = require "mason-lspconfig.mappings.server" + + local table_body = _.compose( + _.map(function(pair) + local lspconfig_name, mason_name = assert(pair[1]), assert(pair[2]) + return string.format( + "| [%s](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#%s) | %s |", + lspconfig_name, + lspconfig_name, + mason_name + ) + end), + _.sort_by(_.head), + _.to_pairs + )(server_mappings.lspconfig_to_package) + + local table_header = { + "| lspconfig server name | mason.nvim package name |", + "| --------------------- | ----------------------- |", + } + + local output = _.join("\n", _.concat(table_header, table_body)) + script_utils.write_file(path.concat { DOCS_DIR, "server-mapping.md" }, output) +end + a.run_blocking(function() a.wait_all { create_lspconfig_filetype_map, - ensure_valid_mapping, + ensure_valid_package_name_translations, + create_server_mapping_docs, } end) diff --git a/scripts/lua/mason-scripts/utils.lua b/scripts/lua/mason-scripts/utils.lua index 771d419..49a20df 100644 --- a/scripts/lua/mason-scripts/utils.lua +++ b/scripts/lua/mason-scripts/utils.lua @@ -1,21 +1,36 @@ local fs = require "mason-core.fs" +local _ = require "mason-core.functional" local M = {} ---@async ---@param path string ---@param contents string ----@param flags string +---@param flags string? function M.write_file(path, contents, flags) - fs.async.write_file( - path, - table.concat({ - "-- THIS FILE IS GENERATED. DO NOT EDIT MANUALLY.", - "-- stylua: ignore start", - contents, - }, "\n"), - flags - ) + local header = _.cond({ + { + _.matches "%.lua$", + _.always { + "-- THIS FILE IS GENERATED. DO NOT EDIT MANUALLY.", + "-- stylua: ignore start", + }, + }, + { + _.matches "%.md$", + _.always { + "<!--- THIS FILE IS GENERATED. DO NOT EDIT MANUALLY. -->", + }, + }, + { + _.T, + _.always { + "# THIS FILE IS GENERATED. DO NOT EDIT MANUALLY.", + }, + }, + }, path) + + fs.async.write_file(path, table.concat(_.concat(header, { contents }), "\n"), flags) end return M |
