aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/lua/mason-scripts/mason-lspconfig/generate.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-07-22 03:15:43 +0200
committerGitHub <noreply@github.com>2022-07-22 03:15:43 +0200
commit11c0af44e69a165df41e5fe6681b47f4204d3623 (patch)
tree28bc4c9c6e7295996924d6b2ce8e620b2a963fa2 /scripts/lua/mason-scripts/mason-lspconfig/generate.lua
parentfeat: add markdownlint linter (#107) (diff)
downloadmason-11c0af44e69a165df41e5fe6681b47f4204d3623.tar
mason-11c0af44e69a165df41e5fe6681b47f4204d3623.tar.gz
mason-11c0af44e69a165df41e5fe6681b47f4204d3623.tar.bz2
mason-11c0af44e69a165df41e5fe6681b47f4204d3623.tar.lz
mason-11c0af44e69a165df41e5fe6681b47f4204d3623.tar.xz
mason-11c0af44e69a165df41e5fe6681b47f4204d3623.tar.zst
mason-11c0af44e69a165df41e5fe6681b47f4204d3623.zip
refactor!: extract mason-lspconfig to separate plugin (#109)
The rationale behind this is to make boundaries clearer as mason.nvim has no direct relation with lspconfig per se. Also, hopefully, by having it as a separate package like this would encourage more people to write similar extensions (think mason-dap and mason-null-ls). Ideally such extensions wouldn't be required at all, but there are definitely gaps to fill as of today. From now on you'll need to add `williamboman/mason-lspconfig.nvim` as a plugin if you want to use the `mason-lspconfig` extension: ```lua use { { "williamboman/mason.nvim", branch = "alpha" }, "williamboman/mason-lspconfig.nvim", "neovim/nvim-lspconfig", } ``` ```lua Plug "williamboman/mason.nvim", { 'branch': 'alpha' } Plug "williamboman/mason-lspconfig.nvim" Plug "neovim/nvim-lspconfig" ```
Diffstat (limited to 'scripts/lua/mason-scripts/mason-lspconfig/generate.lua')
-rw-r--r--scripts/lua/mason-scripts/mason-lspconfig/generate.lua54
1 files changed, 0 insertions, 54 deletions
diff --git a/scripts/lua/mason-scripts/mason-lspconfig/generate.lua b/scripts/lua/mason-scripts/mason-lspconfig/generate.lua
deleted file mode 100644
index 66c2ba62..00000000
--- a/scripts/lua/mason-scripts/mason-lspconfig/generate.lua
+++ /dev/null
@@ -1,54 +0,0 @@
-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
-
----@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)