diff options
| author | William Boman <william@redwill.se> | 2025-04-21 21:06:36 +0200 |
|---|---|---|
| committer | William Boman <william@redwill.se> | 2025-04-21 21:53:16 +0200 |
| commit | 80f2cd7734ff21da4cf1489c9695e440cdcd139f (patch) | |
| tree | 4e97c2a3b2a416c87985e8efdff6007eaf57823f /lua | |
| parent | refactor!: remove `automatic_installation` setting (diff) | |
| download | mason-lspconfig-80f2cd7734ff21da4cf1489c9695e440cdcd139f.tar mason-lspconfig-80f2cd7734ff21da4cf1489c9695e440cdcd139f.tar.gz mason-lspconfig-80f2cd7734ff21da4cf1489c9695e440cdcd139f.tar.bz2 mason-lspconfig-80f2cd7734ff21da4cf1489c9695e440cdcd139f.tar.lz mason-lspconfig-80f2cd7734ff21da4cf1489c9695e440cdcd139f.tar.xz mason-lspconfig-80f2cd7734ff21da4cf1489c9695e440cdcd139f.tar.zst mason-lspconfig-80f2cd7734ff21da4cf1489c9695e440cdcd139f.zip | |
refactor!: remove handler functionality, add automatic enable feature
This also removes all generated code/docs, including relevant scripts. Mappings are now also dynamically generated
instead of compiled. These changes should reduce churn in this plugin and make it more resilient for external changes in
Mason and/or nvim-lspconfig.
Mappings have been centralized in the registry instead.
Diffstat (limited to 'lua')
48 files changed, 204 insertions, 850 deletions
diff --git a/lua/mason-lspconfig/api/command.lua b/lua/mason-lspconfig/api/command.lua index b0b100d..70486e2 100644 --- a/lua/mason-lspconfig/api/command.lua +++ b/lua/mason-lspconfig/api/command.lua @@ -2,15 +2,15 @@ local Optional = require "mason-core.optional" local _ = require "mason-core.functional" local a = require "mason-core.async" local notify = require "mason-lspconfig.notify" +local registry = require "mason-registry" ---@async ---@param user_args string[]: The arguments, as provided by the user. local function parse_packages_from_user_args(user_args) - local registry = require "mason-registry" local Package = require "mason-core.package" - local server_mapping = require "mason-lspconfig.mappings.server" - local language_mapping = require "mason-lspconfig.mappings.language" - local language_map = language_mapping.get_language_map() + local mappings = require "mason-lspconfig.mappings" + local server_mapping = mappings.get_mason_map() + local language_map = mappings.get_language_map() return _.filter_map(function(server_specifier) local server_name, version = Package.Parse(server_specifier) @@ -55,13 +55,13 @@ end ---@async local function parse_packages_from_heuristics() - local server_mapping = require "mason-lspconfig.mappings.server" - local registry = require "mason-registry" + local mappings = require "mason-lspconfig.mappings" + local server_mapping = mappings.get_mason_map() + local filetype_mapping = mappings.get_filetype_map() -- Prompt user which server they want to install (based on the current filetype) local current_ft = vim.api.nvim_buf_get_option(vim.api.nvim_get_current_buf(), "filetype") - local filetype_mapping = require "mason-lspconfig.mappings.filetype" - local server_names = _.flatten(_.concat(filetype_mapping[current_ft] or {}, filetype_mapping["*"] or {})) + local server_names = filetype_mapping[current_ft] or {} if #server_names == 0 then notify(("No LSP servers found for filetype %q."):format(current_ft), vim.log.levels.ERROR) return {} @@ -90,6 +90,7 @@ local parse_packages_to_install = _.cond { } local LspInstall = a.scope(function(servers) + a.wait(registry.refresh) local packages_to_install = parse_packages_to_install(servers) if #packages_to_install > 0 then require("mason.api.command").MasonInstall(_.map(function(target) @@ -113,7 +114,7 @@ end, { }) local function LspUninstall(servers) - local server_mapping = require "mason-lspconfig.mappings.server" + local server_mapping = require("mason-lspconfig.mappings").get_mason_map() require("mason.api.command").MasonUninstall(_.map(function(lspconfig_name) return server_mapping.lspconfig_to_package[lspconfig_name] or lspconfig_name end, servers)) @@ -132,9 +133,9 @@ end, { _G.mason_lspconfig_completion = { available_server_completion = function() local available_servers = require("mason-lspconfig").get_available_servers() - local language_mapping = require "mason-lspconfig.mappings.language" + local mappings = require "mason-lspconfig.mappings" local sort_deduped = _.compose(_.sort_by(_.identity), _.uniq_by(_.identity)) - local completions = sort_deduped(_.concat(_.keys(language_mapping.get_language_map()), available_servers)) + local completions = sort_deduped(_.concat(_.keys(mappings.get_language_map()), available_servers)) return table.concat(completions, "\n") end, installed_server_completion = function() diff --git a/lua/mason-lspconfig/automatic_enable.lua b/lua/mason-lspconfig/automatic_enable.lua new file mode 100644 index 0000000..b1f0046 --- /dev/null +++ b/lua/mason-lspconfig/automatic_enable.lua @@ -0,0 +1,32 @@ +local _ = require "mason-core.functional" +local mappings = require "mason-lspconfig.mappings" +local registry = require "mason-registry" +local settings = require "mason-lspconfig.settings" + +---@param mason_pkg string +local function setup_server(mason_pkg) + local lspconfig_name = mappings.get_mason_map().package_to_lspconfig[mason_pkg] + if not lspconfig_name then + return + end + + -- We don't provide LSP configurations in the lsp/ directory because it risks overriding configurations in a way the + -- user doesn't want. Instead we only override LSP configurations for servers that are installed via Mason. + local ok, config = pcall(require, ("mason-lspconfig.lsp.%s"):format(lspconfig_name)) + if ok then + vim.lsp.config(lspconfig_name, config) + end + + if settings.current.automatic_enable then + vim.lsp.enable(lspconfig_name) + end +end + +_.each(setup_server, registry.get_installed_package_names()) + +registry:on( + "package:install:success", + vim.schedule_wrap(function(pkg) + setup_server(pkg.name) + end) +) diff --git a/lua/mason-lspconfig/ensure_installed.lua b/lua/mason-lspconfig/ensure_installed.lua index cdb30eb..583feec 100644 --- a/lua/mason-lspconfig/ensure_installed.lua +++ b/lua/mason-lspconfig/ensure_installed.lua @@ -5,7 +5,7 @@ local settings = require "mason-lspconfig.settings" ---@param lspconfig_server_name string local function resolve_package(lspconfig_server_name) local Optional = require "mason-core.optional" - local server_mapping = require "mason-lspconfig.mappings.server" + local server_mapping = require("mason-lspconfig.mappings").get_mason_map() return Optional.of_nilable(server_mapping.lspconfig_to_package[lspconfig_server_name]):map(function(package_name) local ok, pkg = pcall(registry.get_package, package_name) @@ -15,7 +15,7 @@ local function resolve_package(lspconfig_server_name) end) end -local function ensure_installed() +return function() for _, server_identifier in ipairs(settings.current.ensure_installed) do local Package = require "mason-core.package" @@ -24,7 +24,7 @@ local function ensure_installed() :if_present( ---@param pkg Package function(pkg) - if not pkg:is_installed() then + if not pkg:is_installed() and not pkg:is_installing() then require("mason-lspconfig.install").install(pkg, version) end end @@ -39,11 +39,3 @@ local function ensure_installed() end) end end - -if registry.refresh then - return function() - registry.refresh(vim.schedule_wrap(ensure_installed)) - end -else - return ensure_installed -end diff --git a/lua/mason-lspconfig/init.lua b/lua/mason-lspconfig/init.lua index 5579a41..1267df7 100644 --- a/lua/mason-lspconfig/init.lua +++ b/lua/mason-lspconfig/init.lua @@ -25,84 +25,25 @@ function M.setup(config) check_and_notify_bad_setup_order() - local ok, err = pcall(function() - require "mason-lspconfig.lspconfig_hook"() - require "mason-lspconfig.server_config_extensions"() - end) - if not ok then - log.error("Failed to set up lspconfig integration.", err) - end - - if not platform.is_headless and #settings.current.ensure_installed > 0 then - require "mason-lspconfig.ensure_installed"() - end - local registry = require "mason-registry" - if registry.register_package_aliases then + registry.refresh(vim.schedule_wrap(function() + if not platform.is_headless and #settings.current.ensure_installed > 0 then + require "mason-lspconfig.ensure_installed"() + end + require "mason-lspconfig.automatic_enable" registry.register_package_aliases(_.map(function(server_name) return { server_name } - end, require("mason-lspconfig.mappings.server").package_to_lspconfig)) - end + end, require("mason-lspconfig.mappings").get_mason_map().package_to_lspconfig)) + end)) require "mason-lspconfig.api.command" - - if settings.current.handlers then - M.setup_handlers(settings.current.handlers) - end -end - ----See `:h mason-lspconfig.setup_handlers()` ----@param handlers table<string, fun(server_name: string)> -function M.setup_handlers(handlers) - local Optional = require "mason-core.optional" - local server_mapping = require "mason-lspconfig.mappings.server" - local registry = require "mason-registry" - local notify = require "mason-lspconfig.notify" - - local default_handler = Optional.of_nilable(handlers[1]) - - _.each(function(handler) - if type(handler) == "string" and not server_mapping.lspconfig_to_package[handler] then - notify( - ("mason-lspconfig.setup_handlers: Received handler for unknown lspconfig server name: %s."):format( - handler - ), - vim.log.levels.WARN - ) - end - end, _.keys(handlers)) - - ---@param pkg_name string - local function get_server_name(pkg_name) - return Optional.of_nilable(server_mapping.package_to_lspconfig[pkg_name]) - end - - local function call_handler(server_name) - log.fmt_trace("Checking handler for %s", server_name) - Optional.of_nilable(handlers[server_name]):or_(_.always(default_handler)):if_present(function(handler) - log.fmt_trace("Calling handler for %s", server_name) - local ok, err = pcall(handler, server_name) - if not ok then - notify(err, vim.log.levels.ERROR) - end - end) - end - - local installed_servers = _.filter_map(get_server_name, registry.get_installed_package_names()) - _.each(call_handler, installed_servers) - registry:on( - "package:install:success", - vim.schedule_wrap(function(pkg) - get_server_name(pkg.name):if_present(call_handler) - end) - ) end ---@return string[] function M.get_installed_servers() local Optional = require "mason-core.optional" local registry = require "mason-registry" - local server_mapping = require "mason-lspconfig.mappings.server" + local server_mapping = require("mason-lspconfig.mappings").get_mason_map() return _.filter_map(function(pkg_name) return Optional.of_nilable(server_mapping.package_to_lspconfig[pkg_name]) @@ -111,7 +52,7 @@ end ---@param filetype string | string[] local function is_server_in_filetype(filetype) - local filetype_mapping = require "mason-lspconfig.mappings.filetype" + local filetype_mapping = require("mason-lspconfig.mappings").get_filetype_map() local function get_servers_by_filetype(ft) return filetype_mapping[ft] or {} @@ -140,7 +81,7 @@ end ---@return string[] function M.get_available_servers(filter) local registry = require "mason-registry" - local server_mapping = require "mason-lspconfig.mappings.server" + local server_mapping = require("mason-lspconfig.mappings").get_mason_map() local Optional = require "mason-core.optional" filter = filter or {} local predicates = {} @@ -159,13 +100,10 @@ function M.get_available_servers(filter) end ---Returns the "lspconfig <-> mason" mapping tables. ----@return { lspconfig_to_mason: table<string, string>, mason_to_lspconfig: table<string, string> } +---@return { lspconfig_to_package: table<string, string>, package_to_lspconfig: table<string, string> } function M.get_mappings() - local mappings = require "mason-lspconfig.mappings.server" - return { - lspconfig_to_mason = mappings.lspconfig_to_package, - mason_to_lspconfig = mappings.package_to_lspconfig, - } + local mappings = require "mason-lspconfig.mappings" + return mappings.get_all() end return M diff --git a/lua/mason-lspconfig/install.lua b/lua/mason-lspconfig/install.lua index 7d5320a..8e99aa2 100644 --- a/lua/mason-lspconfig/install.lua +++ b/lua/mason-lspconfig/install.lua @@ -1,5 +1,5 @@ +local mappings = require "mason-lspconfig.mappings" local notify = require "mason-lspconfig.notify" -local server_mapping = require "mason-lspconfig.mappings.server" local M = {} @@ -7,12 +7,12 @@ local M = {} ---@param version string? ---@return InstallHandle function M.install(pkg, version) - local lspconfig_name = server_mapping.package_to_lspconfig[pkg.name] + local lspconfig_name = mappings.get_mason_map().package_to_lspconfig[pkg.name] notify(("[mason-lspconfig.nvim] installing %s"):format(lspconfig_name)) - return pkg:install({ version = version }):once( - "closed", - vim.schedule_wrap(function() - if pkg:is_installed() then + return pkg:install( + { version = version }, + vim.schedule_wrap(function(success, err) + if success then notify(("[mason-lspconfig.nvim] %s was successfully installed"):format(lspconfig_name)) else notify( diff --git a/lua/mason-lspconfig/lsp/bicep.lua b/lua/mason-lspconfig/lsp/bicep.lua new file mode 100644 index 0000000..02bdd3f --- /dev/null +++ b/lua/mason-lspconfig/lsp/bicep.lua @@ -0,0 +1,3 @@ +return { + cmd = { "bicep-lsp" }, +} diff --git a/lua/mason-lspconfig/lsp/bsl_ls.lua b/lua/mason-lspconfig/lsp/bsl_ls.lua new file mode 100644 index 0000000..4491768 --- /dev/null +++ b/lua/mason-lspconfig/lsp/bsl_ls.lua @@ -0,0 +1,3 @@ +return { + cmd = { "bsl-language-server" }, +} diff --git a/lua/mason-lspconfig/lsp/cobol_ls.lua b/lua/mason-lspconfig/lsp/cobol_ls.lua new file mode 100644 index 0000000..fc62914 --- /dev/null +++ b/lua/mason-lspconfig/lsp/cobol_ls.lua @@ -0,0 +1,10 @@ +-- https://github.com/eclipse-che4z/che-che4z-lsp-for-cobol/blob/59132a8d04349720a0ba0f87f5fb757d9d5e79a3/clients/cobol-lsp-vscode-extension/src/services/nativeLanguageClient/linuxlanguageClient.ts#L30-L35 +return { + cmd = { + "cobol-language-support", + "pipeEnabled", + "-Dline.separator=\r\n", + "-Dlogback.statusListenerClass=ch.qos.logback.core.status.NopStatusListener", + "-DserverType=NATIVE", + }, +} diff --git a/lua/mason-lspconfig/lsp/elixirls.lua b/lua/mason-lspconfig/lsp/elixirls.lua new file mode 100644 index 0000000..24eae2e --- /dev/null +++ b/lua/mason-lspconfig/lsp/elixirls.lua @@ -0,0 +1,3 @@ +return { + cmd = { "elixir-ls" }, +} diff --git a/lua/mason-lspconfig/lsp/esbonio.lua b/lua/mason-lspconfig/lsp/esbonio.lua new file mode 100644 index 0000000..419b355 --- /dev/null +++ b/lua/mason-lspconfig/lsp/esbonio.lua @@ -0,0 +1,3 @@ +return { + cmd = { "esbonio" }, +} diff --git a/lua/mason-lspconfig/lsp/gradle_ls.lua b/lua/mason-lspconfig/lsp/gradle_ls.lua new file mode 100644 index 0000000..c48282a --- /dev/null +++ b/lua/mason-lspconfig/lsp/gradle_ls.lua @@ -0,0 +1,3 @@ +return { + cmd = { "gradle-language-server" }, +} diff --git a/lua/mason-lspconfig/lsp/groovyls.lua b/lua/mason-lspconfig/lsp/groovyls.lua new file mode 100644 index 0000000..5e2f697 --- /dev/null +++ b/lua/mason-lspconfig/lsp/groovyls.lua @@ -0,0 +1,3 @@ +return { + cmd = { "groovy-language-server" }, +} diff --git a/lua/mason-lspconfig/lsp/java_language_server.lua b/lua/mason-lspconfig/lsp/java_language_server.lua new file mode 100644 index 0000000..b525a34 --- /dev/null +++ b/lua/mason-lspconfig/lsp/java_language_server.lua @@ -0,0 +1,3 @@ +return { + cmd = { "java-language-server" }, +} diff --git a/lua/mason-lspconfig/lsp/lexical.lua b/lua/mason-lspconfig/lsp/lexical.lua new file mode 100644 index 0000000..3f5a84a --- /dev/null +++ b/lua/mason-lspconfig/lsp/lexical.lua @@ -0,0 +1,3 @@ +return { + cmd = { "lexical" }, +} diff --git a/lua/mason-lspconfig/lsp/nextls.lua b/lua/mason-lspconfig/lsp/nextls.lua new file mode 100644 index 0000000..8a941cb --- /dev/null +++ b/lua/mason-lspconfig/lsp/nextls.lua @@ -0,0 +1,3 @@ +return { + cmd = { "nextls", "--stdio" }, +} diff --git a/lua/mason-lspconfig/lsp/omnisharp.lua b/lua/mason-lspconfig/lsp/omnisharp.lua new file mode 100644 index 0000000..2c70c6b --- /dev/null +++ b/lua/mason-lspconfig/lsp/omnisharp.lua @@ -0,0 +1,12 @@ +return { + cmd = { + "omnisharp", + "-z", -- https://github.com/OmniSharp/omnisharp-vscode/pull/4300 + "--hostPID", + tostring(vim.fn.getpid()), + "DotNet:enablePackageRestore=false", + "--encoding", + "utf-8", + "--languageserver", + }, +} diff --git a/lua/mason-lspconfig/lsp/r_language_server.lua b/lua/mason-lspconfig/lsp/r_language_server.lua new file mode 100644 index 0000000..ba33caf --- /dev/null +++ b/lua/mason-lspconfig/lsp/r_language_server.lua @@ -0,0 +1,3 @@ +return { + cmd = { "r-languageserver" }, +} diff --git a/lua/mason-lspconfig/lsp/raku_navigator.lua b/lua/mason-lspconfig/lsp/raku_navigator.lua new file mode 100644 index 0000000..a86cbc6 --- /dev/null +++ b/lua/mason-lspconfig/lsp/raku_navigator.lua @@ -0,0 +1,3 @@ +return { + cmd = { "raku-navigator", "--stdio" }, +} diff --git a/lua/mason-lspconfig/lsp/visualforce_ls.lua b/lua/mason-lspconfig/lsp/visualforce_ls.lua new file mode 100644 index 0000000..62ae054 --- /dev/null +++ b/lua/mason-lspconfig/lsp/visualforce_ls.lua @@ -0,0 +1,3 @@ +return { + cmd = { "visualforce-language-server", "--stdio" }, +} diff --git a/lua/mason-lspconfig/lspconfig_hook.lua b/lua/mason-lspconfig/lspconfig_hook.lua deleted file mode 100644 index 04010f1..0000000 --- a/lua/mason-lspconfig/lspconfig_hook.lua +++ /dev/null @@ -1,73 +0,0 @@ -local _ = require "mason-core.functional" -local log = require "mason-core.log" -local notify = require "mason-lspconfig.notify" -local platform = require "mason-core.platform" - -local memoized_set = _.memoize(_.set_of) - ----@param lspconfig_server_name string -local function resolve_server_config_factory(lspconfig_server_name) - local Optional = require "mason-core.optional" - - local ok, server_config = pcall(require, ("mason-lspconfig.server_configurations.%s"):format(lspconfig_server_name)) - if ok then - return Optional.of(server_config) - end - return Optional.empty() -end - -local merge_in_place ----@param t1 table ----@param t2 table -merge_in_place = _.curryN(function(t1, t2) - local islist = vim.islist or vim.tbl_islist - for k, v in pairs(t2) do - if type(v) == "table" then - if type(t1[k]) == "table" and not islist(t1[k]) then - merge_in_place(t1[k], v) - else - t1[k] = v - end - else - t1[k] = v - end - end - return t1 -end, 2) - -return function() - local util = require "lspconfig.util" - local server_mapping = require "mason-lspconfig.mappings.server" - local registry = require "mason-registry" - - util.on_setup = util.add_hook_before(util.on_setup, function(config, user_config) - local pkg_name = server_mapping.lspconfig_to_package[config.name] - if not pkg_name then - return - end - - if require("mason").has_setup == false then - notify( - ("Server %q is being set up before mason.nvim is set up. :h mason-lspconfig-quickstart"):format( - config.name - ), - vim.log.levels.WARN - ) - end - - if registry.is_installed(pkg_name) then - resolve_server_config_factory(config.name):if_present(function(config_factory) - local mason_config = config_factory(vim.fn.expand("$MASON/packages/" .. pkg_name), config) - _.reduce(merge_in_place, config, { mason_config, user_config or {} }) - end) - if platform.is.win and (config.cmd and config.cmd[1] ~= "cmd.exe") then - local exepath = vim.fn.exepath(config.cmd[1]) - if exepath ~= "" then - config.cmd[1] = exepath - else - log.error("Failed to expand cmd path", config.name, config.cmd) - end - end - end - end) -end diff --git a/lua/mason-lspconfig/mappings.lua b/lua/mason-lspconfig/mappings.lua new file mode 100644 index 0000000..e437b8b --- /dev/null +++ b/lua/mason-lspconfig/mappings.lua @@ -0,0 +1,78 @@ +local _ = require "mason-core.functional" +local registry = require "mason-registry" + +local M = {} + +---Returns a map of language (lowercased) to one or more corresponding Mason package names. +---@return table<string, string[]> +function M.get_language_map() + if not registry.get_all_package_specs then + return {} + end + ---@type table<string, string[]> + local languages = {} + for _, pkg_spec in ipairs(registry.get_all_package_specs()) do + for _, language in ipairs(pkg_spec.languages) do + language = language:lower() + if not languages[language] then + languages[language] = {} + end + table.insert(languages[language], pkg_spec.name) + end + end + return languages +end + +function M.get_mason_map() + if not registry.get_all_package_specs then + return { + lspconfig_to_package = {}, + package_to_lspconfig = {}, + } + end + + ---@type table<string, string> + local package_to_lspconfig = {} + for _, pkg_spec in ipairs(registry.get_all_package_specs()) do + local lspconfig = vim.tbl_get(pkg_spec, "neovim", "lspconfig") + if lspconfig then + package_to_lspconfig[pkg_spec.name] = lspconfig + end + end + + return { + package_to_lspconfig = package_to_lspconfig, + lspconfig_to_package = _.invert(package_to_lspconfig), + } +end + +function M.get_filetype_map() + local server_names = vim.tbl_keys(M.get_mason_map().lspconfig_to_package) + + ---@type table<string, string[]> + local filetype_map = {} + for _, server_name in ipairs(server_names) do + local filetypes = vim.tbl_get(vim.lsp.config, server_name, "filetypes") + if filetypes then + for _, filetype in ipairs(filetypes) do + if not filetype_map[filetype] then + filetype_map[filetype] = {} + end + table.insert(filetype_map[filetype], server_name) + end + end + end + return filetype_map +end + +function M.get_all() + local mason_map = M.get_mason_map() + return { + filetypes = M.get_filetype_map(), + languages = M.get_language_map(), + lspconfig_to_package = mason_map.lspconfig_to_package, + package_to_lspconfig = mason_map.package_to_lspconfig, + } +end + +return M diff --git a/lua/mason-lspconfig/mappings/filetype.lua b/lua/mason-lspconfig/mappings/filetype.lua deleted file mode 100644 index c053e4f..0000000 --- a/lua/mason-lspconfig/mappings/filetype.lua +++ /dev/null @@ -1,250 +0,0 @@ --- THIS FILE IS GENERATED. DO NOT EDIT MANUALLY. --- stylua: ignore start -return { - ["BUILD.bazel"] = { "starlark_rust" }, - OpenFOAM = { "foam_ls" }, - PKGBUILD = { "pkgbuild_language_server" }, - antlers = { "antlersls" }, - apexcode = { "apex_ls" }, - arduino = { "arduino_language_server" }, - asm = { "asm_lsp" }, - aspnetcorerazor = { "htmx", "tailwindcss" }, - astro = { "astro", "biome", "emmet_ls", "eslint", "htmx", "tailwindcss", "unocss" }, - ["astro-markdown"] = { "htmx", "tailwindcss" }, - automake = { "autotools_ls" }, - awk = { "awk_ls" }, - bash = { "bashls" }, - bean = { "beancount" }, - beancount = { "beancount" }, - bib = { "ltex", "texlab" }, - bicep = { "bicep" }, - blade = { "htmx", "stimulus_ls", "tailwindcss" }, - brs = { "bright_script" }, - bsl = { "bsl_ls" }, - bzl = { "bzl", "starlark_rust", "starpls" }, - c = { "ast_grep", "clangd", "harper_ls" }, - cairo = { "cairo_ls" }, - clar = { "clarity_lsp" }, - clarity = { "clarity_lsp" }, - clojure = { "clojure_lsp", "htmx", "tailwindcss" }, - cmake = { "cmake", "harper_ls", "neocmake" }, - cobol = { "cobol_ls" }, - comp = { "glsl_analyzer", "glslls" }, - config = { "autotools_ls" }, - context = { "ltex" }, - coq = { "coq_lsp" }, - cpp = { "ast_grep", "clangd", "harper_ls" }, - crystal = { "crystalline" }, - cs = { "csharp_ls", "harper_ls", "omnisharp", "omnisharp_mono" }, - css = { "ast_grep", "biome", "css_variables", "cssls", "emmet_language_server", "emmet_ls", "stylelint_lsp", "tailwindcss", "unocss" }, - cucumber = { "cucumber_language_server" }, - cuda = { "clangd" }, - cue = { "dagger" }, - cypher = { "cypher_ls" }, - d = { "serve_d" }, - dart = { "ast_grep", "harper_ls" }, - dhall = { "dhall_lsp_server" }, - ["django-html"] = { "htmx", "tailwindcss" }, - dockerfile = { "dockerls" }, - dot = { "dotls" }, - drools = { "drools_lsp" }, - dts = { "ginko_ls" }, - dune = { "ocamllsp" }, - earthfile = { "earthlyls" }, - edge = { "htmx", "tailwindcss" }, - edn = { "clojure_lsp" }, - eelixir = { "elixirls", "htmx", "lexical", "nextls", "tailwindcss" }, - ejs = { "htmx", "tailwindcss", "unocss" }, - elixir = { "elixirls", "htmx", "lexical", "nextls", "tailwindcss" }, - elm = { "elmls" }, - erb = { "htmx", "tailwindcss", "unocss" }, - erg = { "erg_language_server" }, - erlang = { "elp", "erlangls" }, - eruby = { "emmet_language_server", "emmet_ls", "htmx", "ruby_lsp", "steep", "stimulus_ls", "tailwindcss" }, - fennel = { "fennel_language_server", "fennel_ls" }, - flux = { "flux_lsp" }, - foam = { "foam_ls" }, - fortran = { "fortls" }, - frag = { "glsl_analyzer", "glslls" }, - fsd = { "facility_language_server" }, - fsharp = { "fsautocomplete" }, - genie = { "vala_ls" }, - geom = { "glsl_analyzer", "glslls" }, - gitcommit = { "harper_ls", "ltex" }, - glsl = { "glsl_analyzer", "glslls" }, - go = { "ast_grep", "golangci_lint_ls", "gopls", "harper_ls", "snyk_ls" }, - gohtml = { "htmx", "tailwindcss" }, - gohtmltmpl = { "htmx", "tailwindcss" }, - gomod = { "golangci_lint_ls", "gopls", "snyk_ls" }, - gotmpl = { "gopls" }, - gowork = { "gopls" }, - graphql = { "biome", "dprint", "graphql" }, - groovy = { "gradle_ls", "groovyls" }, - haml = { "htmx", "tailwindcss", "unocss" }, - handlebars = { "ember", "glint", "htmx", "tailwindcss" }, - haskell = { "harper_ls", "hls" }, - haxe = { "haxe_language_server" }, - hbs = { "htmx", "tailwindcss", "unocss" }, - heex = { "elixirls", "htmx", "lexical", "nextls", "tailwindcss" }, - helm = { "helm_ls", "snyk_ls" }, - hoon = { "hoon_ls" }, - html = { "angularls", "antlersls", "ast_grep", "emmet_language_server", "emmet_ls", "harper_ls", "html", "htmx", "ltex", "lwc_ls", "stimulus_ls", "superhtml", "tailwindcss", "unocss" }, - ["html-eex"] = { "htmx", "tailwindcss" }, - ["html.handlebars"] = { "glint" }, - htmlangular = { "angularls", "emmet_language_server", "emmet_ls", "htmx", "tailwindcss" }, - htmldjango = { "emmet_language_server", "emmet_ls", "htmx", "tailwindcss" }, - hyprlang = { "hyprls" }, - jade = { "htmx", "tailwindcss" }, - java = { "ast_grep", "harper_ls", "java_language_server", "jdtls" }, - javascript = { "ast_grep", "biome", "cssmodules_ls", "denols", "dprint", "ember", "eslint", "glint", "harper_ls", "htmx", "lwc_ls", "quick_lint_js", "rome", "snyk_ls", "sourcery", "tailwindcss", "ts_ls", "unocss", "vtsls" }, - ["javascript.glimmer"] = { "ember", "glint" }, - ["javascript.jsx"] = { "denols", "eslint", "ts_ls", "vtsls" }, - javascriptreact = { "biome", "cssmodules_ls", "denols", "dprint", "emmet_language_server", "emmet_ls", "eslint", "graphql", "htmx", "rome", "sourcery", "tailwindcss", "ts_ls", "unocss", "vtsls" }, - jinja = { "jinja_lsp" }, - jq = { "jqls" }, - json = { "biome", "dprint", "jsonls", "rome", "snyk_ls", "spectral" }, - ["json.openapi"] = { "vacuum" }, - jsonc = { "biome", "dprint", "jsonls" }, - jsonnet = { "jsonnet_ls" }, - julia = { "julials" }, - kcl = { "kcl" }, - kotlin = { "ast_grep", "kotlin_language_server" }, - leaf = { "htmx", "tailwindcss" }, - less = { "css_variables", "cssls", "emmet_language_server", "emmet_ls", "stylelint_lsp", "tailwindcss", "unocss" }, - lhaskell = { "hls" }, - libsonnet = { "jsonnet_ls" }, - liquid = { "htmx", "shopify_theme_ls", "tailwindcss", "theme_check" }, - llw = { "lelwel_ls" }, - lua = { "ast_grep", "harper_ls", "lua_ls" }, - luau = { "luau_lsp" }, - mail = { "ltex" }, - make = { "autotools_ls" }, - markdown = { "dprint", "grammarly", "harper_ls", "htmx", "ltex", "markdown_oxide", "marksman", "prosemd_lsp", "remark_ls", "tailwindcss", "unocss", "vale_ls", "zk" }, - ["markdown.mdx"] = { "marksman" }, - matlab = { "matlab_ls" }, - mdx = { "htmx", "mdx_analyzer", "tailwindcss" }, - menhir = { "ocamllsp" }, - meson = { "mesonlsp", "swift_mesonls" }, - ["metamath-zero"] = { "mm0_ls" }, - motoko = { "motoko_lsp" }, - move = { "move_analyzer" }, - mustache = { "htmx", "tailwindcss" }, - muttrc = { "mutt_ls" }, - mysql = { "sqlls", "sqls" }, - ncl = { "nickel_ls" }, - neomuttrc = { "mutt_ls" }, - nginx = { "nginx_language_server" }, - nickel = { "nickel_ls" }, - nim = { "nim_langserver", "nimls" }, - nix = { "harper_ls", "nil_ls", "rnix" }, - njk = { "htmx", "tailwindcss" }, - nunjucks = { "htmx", "tailwindcss" }, - objc = { "clangd" }, - objcpp = { "clangd" }, - ocaml = { "ocamllsp" }, - ocamlinterface = { "ocamllsp" }, - ocamllex = { "ocamllsp" }, - odin = { "ols" }, - opencl = { "opencl_ls" }, - openscad = { "openscad_lsp" }, - org = { "ltex", "textlsp" }, - os = { "bsl_ls" }, - p8 = { "pico8_ls" }, - pandoc = { "ltex" }, - perl = { "perlnavigator" }, - pest = { "pest_ls" }, - php = { "harper_ls", "htmx", "intelephense", "phpactor", "psalm", "stimulus_ls", "tailwindcss", "unocss" }, - plaintex = { "ltex", "texlab" }, - postcss = { "tailwindcss", "unocss" }, - prisma = { "prismals" }, - proto = { "buf_ls", "clangd", "pbls" }, - ps1 = { "powershell_es" }, - pug = { "emmet_language_server", "emmet_ls" }, - puppet = { "puppet" }, - purescript = { "purescriptls" }, - python = { "ast_grep", "basedpyright", "dprint", "harper_ls", "jedi_language_server", "pylsp", "pylyzer", "pyre", "pyright", "ruff", "snyk_ls", "sourcery" }, - ql = { "codeqlls" }, - quarto = { "ltex", "r_language_server" }, - r = { "r_language_server" }, - raku = { "raku_navigator" }, - razor = { "htmx", "tailwindcss" }, - reason = { "htmx", "ocamllsp", "reason_ls", "tailwindcss" }, - rego = { "regal", "regols" }, - requirements = { "snyk_ls" }, - rescript = { "htmx", "rescriptls", "tailwindcss", "unocss" }, - rmd = { "ltex", "r_language_server" }, - rnoweb = { "ltex" }, - robot = { "robotframework_ls" }, - roslyn = { "dprint" }, - rst = { "esbonio", "ltex", "vale_ls" }, - ruby = { "harper_ls", "rubocop", "ruby_lsp", "solargraph", "sorbet", "standardrb", "steep", "stimulus_ls" }, - rust = { "ast_grep", "dprint", "harper_ls", "rust_analyzer", "unocss" }, - sass = { "emmet_language_server", "emmet_ls", "somesass_ls", "tailwindcss", "unocss" }, - scss = { "css_variables", "cssls", "emmet_language_server", "emmet_ls", "somesass_ls", "stylelint_lsp", "tailwindcss", "unocss" }, - sh = { "bashls" }, - slim = { "htmx", "tailwindcss" }, - slint = { "slint_lsp" }, - sls = { "salt_ls" }, - smithy = { "smithy_ls" }, - sml = { "millet" }, - solidity = { "solang", "solc", "solidity", "solidity_ls", "solidity_ls_nomicfoundation" }, - sql = { "sqlls", "sqls" }, - ss = { "snakeskin_ls" }, - star = { "starlark_rust" }, - stylus = { "tailwindcss", "unocss" }, - sugarss = { "stylelint_lsp", "tailwindcss" }, - superhtml = { "superhtml" }, - surface = { "elixirls", "lexical", "nextls" }, - svelte = { "biome", "emmet_ls", "eslint", "htmx", "svelte", "tailwindcss", "unocss" }, - svg = { "lemminx" }, - swift = { "harper_ls" }, - systemverilog = { "hdl_checker", "svlangserver", "svls", "verible" }, - teal = { "teal_ls" }, - templ = { "html", "htmx", "tailwindcss", "templ" }, - terraform = { "snyk_ls", "terraformls", "tflint" }, - ["terraform-vars"] = { "snyk_ls", "terraformls" }, - tesc = { "glsl_analyzer", "glslls" }, - tese = { "glsl_analyzer", "glslls" }, - tex = { "ltex", "texlab", "textlsp", "vale_ls" }, - text = { "ltex", "textlsp", "vale_ls" }, - thrift = { "thriftls" }, - toml = { "dprint", "harper_ls", "taplo" }, - twig = { "htmx", "tailwindcss", "twiggy_language_server" }, - typescript = { "angularls", "ast_grep", "biome", "cssmodules_ls", "denols", "dprint", "ember", "eslint", "glint", "harper_ls", "htmx", "quick_lint_js", "rome", "snyk_ls", "sourcery", "tailwindcss", "ts_ls", "unocss", "vtsls" }, - ["typescript.glimmer"] = { "ember", "glint" }, - ["typescript.tsx"] = { "angularls", "biome", "denols", "eslint", "rome", "ts_ls", "vtsls" }, - typescriptreact = { "angularls", "biome", "cssmodules_ls", "denols", "dprint", "emmet_language_server", "emmet_ls", "eslint", "graphql", "harper_ls", "htmx", "rome", "sourcery", "tailwindcss", "ts_ls", "unocss", "vtsls" }, - typespec = { "tsp_server" }, - typst = { "harper_ls", "tinymist" }, - v = { "v_analyzer", "vls" }, - vala = { "vala_ls" }, - vb = { "omnisharp", "omnisharp_mono" }, - verilog = { "hdl_checker", "svlangserver", "svls", "verible" }, - vert = { "glsl_analyzer", "glslls" }, - veryl = { "veryl_ls" }, - vhd = { "vhdl_ls" }, - vhdl = { "hdl_checker", "vhdl_ls" }, - vim = { "vimls" }, - visualforce = { "visualforce_ls" }, - vlang = { "vls" }, - vmasm = { "asm_lsp" }, - vsh = { "v_analyzer" }, - vue = { "biome", "emmet_ls", "eslint", "htmx", "stylelint_lsp", "tailwindcss", "unocss", "volar", "vuels" }, - ["vue-html"] = { "unocss" }, - vv = { "v_analyzer" }, - wgsl = { "wgsl_analyzer" }, - wxss = { "stylelint_lsp" }, - xhtml = { "ltex" }, - xml = { "lemminx" }, - xsd = { "lemminx" }, - xsl = { "lemminx" }, - xslt = { "lemminx" }, - yaml = { "azure_pipelines_ls", "hydra_lsp", "snyk_ls", "spectral", "yamlls" }, - ["yaml.ansible"] = { "ansiblels" }, - ["yaml.docker-compose"] = { "docker_compose_language_service", "yamlls" }, - ["yaml.gitlab"] = { "gitlab_ci_ls", "yamlls" }, - ["yaml.openapi"] = { "vacuum" }, - yml = { "spectral" }, - zig = { "zls" }, - zir = { "zls" } -}
\ No newline at end of file diff --git a/lua/mason-lspconfig/mappings/language.lua b/lua/mason-lspconfig/mappings/language.lua deleted file mode 100644 index 380f25d..0000000 --- a/lua/mason-lspconfig/mappings/language.lua +++ /dev/null @@ -1,26 +0,0 @@ -local _ = require "mason-core.functional" -local registry = require "mason-registry" - -local M = {} - ----Returns a map of language (lowercased) to one or more corresponding Mason package names. ----@return table<string, string[]> -function M.get_language_map() - if not registry.get_all_package_specs then - return {} - end - ---@type table<string, string[]> - local languages = {} - for _, pkg_spec in ipairs(registry.get_all_package_specs()) do - for _, language in ipairs(pkg_spec.languages) do - language = language:lower() - if not languages[language] then - languages[language] = {} - end - table.insert(languages[language], pkg_spec.name) - end - end - return languages -end - -return M diff --git a/lua/mason-lspconfig/mappings/server.lua b/lua/mason-lspconfig/mappings/server.lua deleted file mode 100644 index 71f7235..0000000 --- a/lua/mason-lspconfig/mappings/server.lua +++ /dev/null @@ -1,231 +0,0 @@ -local _ = require "mason-core.functional" - -local M = {} - ----Maps lspconfig server config name to its corresponding package name. -M.lspconfig_to_package = { - ["angularls"] = "angular-language-server", - ["ansiblels"] = "ansible-language-server", - ["antlersls"] = "antlers-language-server", - ["apex_ls"] = "apex-language-server", - ["arduino_language_server"] = "arduino-language-server", - ["asm_lsp"] = "asm-lsp", - ["ast_grep"] = "ast-grep", - ["astro"] = "astro-language-server", - ["autotools_ls"] = "autotools-language-server", - ["awk_ls"] = "awk-language-server", - ["azure_pipelines_ls"] = "azure-pipelines-language-server", - ["basedpyright"] = "basedpyright", - ["bashls"] = "bash-language-server", - ["beancount"] = "beancount-language-server", - ["bicep"] = "bicep-lsp", - ["biome"] = "biome", - ["bright_script"] = "brighterscript", - ["bsl_ls"] = "bsl-language-server", - ["buf_ls"] = "buf", - ["bzl"] = "bzl", - ["cairo_ls"] = "cairo-language-server", - ["clangd"] = "clangd", - ["clarity_lsp"] = "clarity-lsp", - ["clojure_lsp"] = "clojure-lsp", - ["cmake"] = "cmake-language-server", - ["cobol_ls"] = "cobol-language-support", - ["codeqlls"] = "codeql", - ["coq_lsp"] = "coq-lsp", - ["crystalline"] = "crystalline", - ["csharp_ls"] = "csharp-language-server", - ["cssls"] = "css-lsp", - ["cssmodules_ls"] = "cssmodules-language-server", - ["css_variables"] = "css-variables-language-server", - ["cucumber_language_server"] = "cucumber-language-server", - ["custom_elements_ls"] = "custom-elements-languageserver", - ["cypher_ls"] = "cypher-language-server", - ["dagger"] = "cuelsp", - ["denols"] = "deno", - ["dhall_lsp_server"] = "dhall-lsp", - ["diagnosticls"] = "diagnostic-languageserver", - ["docker_compose_language_service"] = "docker-compose-language-service", - ["dockerls"] = "dockerfile-language-server", - ["dotls"] = "dot-language-server", - ["dprint"] = "dprint", - ["drools_lsp"] = "drools-lsp", - ["earthlyls"] = "earthlyls", - ["efm"] = "efm", - ["elixirls"] = "elixir-ls", - ["elmls"] = "elm-language-server", - ["elp"] = "elp", - ["ember"] = "ember-language-server", - ["emmet_language_server"] = "emmet-language-server", - ["emmet_ls"] = "emmet-ls", - ["erg_language_server"] = "erg-language-server", - ["erlangls"] = "erlang-ls", - ["esbonio"] = "esbonio", - ["eslint"] = "eslint-lsp", - ["facility_language_server"] = "facility-language-server", - ["fennel_language_server"] = "fennel-language-server", - ["fennel_ls"] = "fennel-ls", - ["flux_lsp"] = "flux-lsp", - ["foam_ls"] = "foam-language-server", - ["fortls"] = "fortls", - ["fsautocomplete"] = "fsautocomplete", - ["gitlab_ci_ls"] = "gitlab-ci-ls", - ["ginko_ls"] = "ginko_ls", - ["glint"] = "glint", - ["glsl_analyzer"] = "glsl_analyzer", - ["glslls"] = "glslls", - ["golangci_lint_ls"] = "golangci-lint-langserver", - ["gopls"] = "gopls", - ["gradle_ls"] = "gradle-language-server", - ["grammarly"] = "grammarly-languageserver", - ["graphql"] = "graphql-language-service-cli", - ["groovyls"] = "groovy-language-server", - ["harper_ls"] = "harper-ls", - ["haxe_language_server"] = "haxe-language-server", - ["hdl_checker"] = "hdl-checker", - ["helm_ls"] = "helm-ls", - ["hls"] = "haskell-language-server", - ["hoon_ls"] = "hoon-language-server", - ["html"] = "html-lsp", - ["htmx"] = "htmx-lsp", - ["hydra_lsp"] = "hydra-lsp", - ["hyprls"] = "hyprls", - ["intelephense"] = "intelephense", - ["java_language_server"] = "java-language-server", - ["jdtls"] = "jdtls", - ["jedi_language_server"] = "jedi-language-server", - ["jinja_lsp"] = "jinja-lsp", - ["jqls"] = "jq-lsp", - ["jsonls"] = "json-lsp", - ["jsonnet_ls"] = "jsonnet-language-server", - ["julials"] = "julia-lsp", - ["kcl"] = "kcl", - ["kotlin_language_server"] = "kotlin-language-server", - ["lelwel_ls"] = "lelwel", - ["lemminx"] = "lemminx", - ["lexical"] = "lexical", - ["ltex"] = "ltex-ls", - ["lua_ls"] = "lua-language-server", - ["luau_lsp"] = "luau-lsp", - ["lwc_ls"] = "lwc-language-server", - ["markdown_oxide"] = "markdown-oxide", - ["marksman"] = "marksman", - ["matlab_ls"] = "matlab-language-server", - ["mdx_analyzer"] = "mdx-analyzer", - ["millet"] = "millet", - ["mm0_ls"] = "metamath-zero-lsp", - ["motoko_lsp"] = "motoko-lsp", - ["move_analyzer"] = "move-analyzer", - ["mutt_ls"] = "mutt-language-server", - ["neocmake"] = "neocmakelsp", - ["nextls"] = "nextls", - ["nickel_ls"] = "nickel-lang-lsp", - ["nginx_language_server"] = "nginx-language-server", - ["nil_ls"] = "nil", - ["nim_langserver"] = "nimlangserver", - ["nimls"] = "nimlsp", - ["ocamllsp"] = "ocaml-lsp", - ["ols"] = "ols", - ["omnisharp"] = "omnisharp", - ["omnisharp_mono"] = "omnisharp-mono", - ["opencl_ls"] = "opencl-language-server", - ["openscad_lsp"] = "openscad-lsp", - ["pbls"] = "pbls", - ["perlnavigator"] = "perlnavigator", - ["pest_ls"] = "pest-language-server", - ["phpactor"] = "phpactor", - ["pico8_ls"] = "pico8-ls", - ["pkgbuild_language_server"] = "pkgbuild-language-server", - ["powershell_es"] = "powershell-editor-services", - ["prismals"] = "prisma-language-server", - ["prosemd_lsp"] = "prosemd-lsp", - ["psalm"] = "psalm", - ["puppet"] = "puppet-editor-services", - ["purescriptls"] = "purescript-language-server", - ["pylsp"] = "python-lsp-server", - ["pylyzer"] = "pylyzer", - ["pyre"] = "pyre", - ["pyright"] = "pyright", - ["quick_lint_js"] = "quick-lint-js", - ["r_language_server"] = "r-languageserver", - ["raku_navigator"] = "raku-navigator", - ["reason_ls"] = "reason-language-server", - ["regols"] = "regols", - ["regal"] = "regal", - ["remark_ls"] = "remark-language-server", - ["rescriptls"] = "rescript-language-server", - ["rnix"] = "rnix-lsp", - ["robotframework_ls"] = "robotframework-lsp", - ["rome"] = "rome", - ["rubocop"] = "rubocop", - ["ruby_lsp"] = "ruby-lsp", - ["ruff"] = "ruff", - ["rust_analyzer"] = "rust-analyzer", - ["salt_ls"] = "salt-lsp", - ["serve_d"] = "serve-d", - ["shopify_theme_ls"] = "shopify-cli", - ["slint_lsp"] = "slint-lsp", - ["smithy_ls"] = "smithy-language-server", - ["snakeskin_ls"] = "snakeskin-cli", - ["snyk_ls"] = "snyk-ls", - ["solang"] = "solang", - ["solargraph"] = "solargraph", - ["solc"] = "solidity", - ["solidity"] = "solidity-ls", - ["solidity_ls"] = "vscode-solidity-server", - ["solidity_ls_nomicfoundation"] = "nomicfoundation-solidity-language-server", - ["somesass_ls"] = "some-sass-language-server", - ["sorbet"] = "sorbet", - ["sourcery"] = "sourcery", - ["spectral"] = "spectral-language-server", - ["sqlls"] = "sqlls", - ["sqls"] = "sqls", - ["standardrb"] = "standardrb", - ["starlark_rust"] = "starlark-rust", - ["starpls"] = "starpls", - ["steep"] = "steep", - ["stimulus_ls"] = "stimulus-language-server", - ["stylelint_lsp"] = "stylelint-lsp", - ["svelte"] = "svelte-language-server", - ["svlangserver"] = "svlangserver", - ["svls"] = "svls", - ["swift_mesonls"] = "swift-mesonlsp", - ["mesonlsp"] = "mesonlsp", - ["tailwindcss"] = "tailwindcss-language-server", - ["taplo"] = "taplo", - ["teal_ls"] = "teal-language-server", - ["templ"] = "templ", - ["terraformls"] = "terraform-ls", - ["texlab"] = "texlab", - ["textlsp"] = "textlsp", - ["tflint"] = "tflint", - ["theme_check"] = "shopify-theme-check", - ["thriftls"] = "thriftls", - ["ts_ls"] = "typescript-language-server", - ["tsp_server"] = "tsp-server", - ["twiggy_language_server"] = "twiggy-language-server", - ["typos_lsp"] = "typos-lsp", - ["tinymist"] = "tinymist", - ["superhtml"] = "superhtml", - ["unocss"] = "unocss-language-server", - ["v_analyzer"] = "v-analyzer", - ["vacuum"] = "vacuum", - ["vala_ls"] = "vala-language-server", - ["vale_ls"] = "vale-ls", - ["verible"] = "verible", - ["veryl_ls"] = "veryl-ls", - ["vhdl_ls"] = "rust_hdl", - ["vimls"] = "vim-language-server", - ["visualforce_ls"] = "visualforce-language-server", - ["vls"] = "vls", - ["volar"] = "vue-language-server", - ["vtsls"] = "vtsls", - ["vuels"] = "vetur-vls", - ["wgsl_analyzer"] = "wgsl-analyzer", - ["yamlls"] = "yaml-language-server", - ["zk"] = "zk", - ["zls"] = "zls", -} - -M.package_to_lspconfig = _.invert(M.lspconfig_to_package) - -return M diff --git a/lua/mason-lspconfig/server_config_extensions.lua b/lua/mason-lspconfig/server_config_extensions.lua deleted file mode 100644 index 48b45fb..0000000 --- a/lua/mason-lspconfig/server_config_extensions.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - local configs = require "lspconfig.configs" - - configs.omnisharp_mono = require "lspconfig.configs.omnisharp" -end diff --git a/lua/mason-lspconfig/server_configurations/bicep/init.lua b/lua/mason-lspconfig/server_configurations/bicep/init.lua deleted file mode 100644 index ddc0a2a..0000000 --- a/lua/mason-lspconfig/server_configurations/bicep/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "bicep-lsp" }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/bsl_ls/init.lua b/lua/mason-lspconfig/server_configurations/bsl_ls/init.lua deleted file mode 100644 index 62dfa5c..0000000 --- a/lua/mason-lspconfig/server_configurations/bsl_ls/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "bsl-language-server" }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/cobol_ls/init.lua b/lua/mason-lspconfig/server_configurations/cobol_ls/init.lua deleted file mode 100644 index 2d0d0c2..0000000 --- a/lua/mason-lspconfig/server_configurations/cobol_ls/init.lua +++ /dev/null @@ -1,12 +0,0 @@ -return function() - -- https://github.com/eclipse-che4z/che-che4z-lsp-for-cobol/blob/59132a8d04349720a0ba0f87f5fb757d9d5e79a3/clients/cobol-lsp-vscode-extension/src/services/nativeLanguageClient/linuxlanguageClient.ts#L30-L35 - return { - cmd = { - "cobol-language-support", - "pipeEnabled", - "-Dline.separator=\r\n", - "-Dlogback.statusListenerClass=ch.qos.logback.core.status.NopStatusListener", - "-DserverType=NATIVE", - }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/elixirls/init.lua b/lua/mason-lspconfig/server_configurations/elixirls/init.lua deleted file mode 100644 index 0c424b1..0000000 --- a/lua/mason-lspconfig/server_configurations/elixirls/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "elixir-ls" }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/esbonio/init.lua b/lua/mason-lspconfig/server_configurations/esbonio/init.lua deleted file mode 100644 index e9d8d98..0000000 --- a/lua/mason-lspconfig/server_configurations/esbonio/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "esbonio" }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/gradle_ls/init.lua b/lua/mason-lspconfig/server_configurations/gradle_ls/init.lua deleted file mode 100644 index 09a8735..0000000 --- a/lua/mason-lspconfig/server_configurations/gradle_ls/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "gradle-language-server" }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/groovyls/init.lua b/lua/mason-lspconfig/server_configurations/groovyls/init.lua deleted file mode 100644 index f75a3b2..0000000 --- a/lua/mason-lspconfig/server_configurations/groovyls/init.lua +++ /dev/null @@ -1,3 +0,0 @@ -return function() - return { cmd = { "groovy-language-server" } } -end diff --git a/lua/mason-lspconfig/server_configurations/java_language_server/init.lua b/lua/mason-lspconfig/server_configurations/java_language_server/init.lua deleted file mode 100644 index 9f39df7..0000000 --- a/lua/mason-lspconfig/server_configurations/java_language_server/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "java-language-server" }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/julials/README.md b/lua/mason-lspconfig/server_configurations/julials/README.md deleted file mode 100644 index cb54b56..0000000 --- a/lua/mason-lspconfig/server_configurations/julials/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# julials - -## Configuring the Julia Environment - -The Julia Environment will be identified in the following order: - -1) user configuration (`lspconfig.julials.setup { julia_env_path = "/my/env" }`) -2) if the `Project.toml` & `Manifest.toml` (or `JuliaProject.toml` & `JuliaManifest.toml`) files exists in the current project working directory, the current project working directory is used as the environment -3) the result of `Pkg.Types.Context().env.project_file` - -## Configuring symbol cache - -By default, the language server is configured to download symbol caches from Julia's symbol server. To disable this, set -`symbol_cache_download` to `false`: - -```lua -lspconfig.julials.setup { - symbol_cache_download = false, -} -``` - -To change the symbol server URL, set the `symbol_server` configuration: - -```lua -lspconfig.julials.setup { - symbol_server = "https://symbol-server", -} -``` diff --git a/lua/mason-lspconfig/server_configurations/kotlin_language_server/init.lua b/lua/mason-lspconfig/server_configurations/kotlin_language_server/init.lua deleted file mode 100644 index 585797f..0000000 --- a/lua/mason-lspconfig/server_configurations/kotlin_language_server/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "kotlin-language-server" }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/lexical/init.lua b/lua/mason-lspconfig/server_configurations/lexical/init.lua deleted file mode 100644 index e7e9639..0000000 --- a/lua/mason-lspconfig/server_configurations/lexical/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "lexical" }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/ltex/init.lua b/lua/mason-lspconfig/server_configurations/ltex/init.lua deleted file mode 100644 index f24d86f..0000000 --- a/lua/mason-lspconfig/server_configurations/ltex/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "ltex-ls" }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/nextls/init.lua b/lua/mason-lspconfig/server_configurations/nextls/init.lua deleted file mode 100644 index 386c1eb..0000000 --- a/lua/mason-lspconfig/server_configurations/nextls/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "nextls", "--stdio" }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/omnisharp/README.md b/lua/mason-lspconfig/server_configurations/omnisharp/README.md deleted file mode 100644 index f74344e..0000000 --- a/lua/mason-lspconfig/server_configurations/omnisharp/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# omnisharp - -## How to use Omnisharp Mono - -The `omnisharp` server will use the `dotnet` (NET6) runtime to run the server. To run the server using the Mono runtime, -use the `omnisharp_mono` server instead (**this requires the `omnisharp-mono` package to be installed**). - -**Note:** The `omnisharp_mono` server configuration doesn't exist in `lspconfig` but is provided by `mason-lspconfig`. -This is done in order to separate the .NET and Mono variants, making both easily accessible. - -```lua -local lspconfig = require "lspconfig" - -lspconfig.omnisharp_mono.setup {} -``` diff --git a/lua/mason-lspconfig/server_configurations/omnisharp/init.lua b/lua/mason-lspconfig/server_configurations/omnisharp/init.lua deleted file mode 100644 index 466bdfc..0000000 --- a/lua/mason-lspconfig/server_configurations/omnisharp/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "omnisharp" }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/omnisharp_mono/init.lua b/lua/mason-lspconfig/server_configurations/omnisharp_mono/init.lua deleted file mode 100644 index 9512146..0000000 --- a/lua/mason-lspconfig/server_configurations/omnisharp_mono/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "omnisharp-mono" }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/perlnavigator/init.lua b/lua/mason-lspconfig/server_configurations/perlnavigator/init.lua deleted file mode 100644 index c376dc7..0000000 --- a/lua/mason-lspconfig/server_configurations/perlnavigator/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "perlnavigator", "--stdio" }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/pylsp/README.md b/lua/mason-lspconfig/server_configurations/pylsp/README.md deleted file mode 100644 index 2434bb4..0000000 --- a/lua/mason-lspconfig/server_configurations/pylsp/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Pylsp - -## Installing pylsp plugins - -Pylsp has [third party plugins](https://github.com/python-lsp/python-lsp-server#3rd-party-plugins) which are not installed by default. - -In order for these plugins to work with the `pylsp` server managed by this plugin, they need to be installed in the same [virtual environment](https://docs.python.org/3/library/venv.html) as `pylsp`. For these reasons, there's a convenient `:PylspInstall <packages>` command that does this for you, for example: - -```vim -:PylspInstall pyls-flake8 pylsp-mypy pyls-isort -``` - -The `:PylspInstall` command will only be available once the `pylsp` server has been set up. - -**Note that these extra pylsp plugins will not be reinstalled if you update/reinstall the `pylsp` server, you will have to manage -them manually.** diff --git a/lua/mason-lspconfig/server_configurations/r_language_server/init.lua b/lua/mason-lspconfig/server_configurations/r_language_server/init.lua deleted file mode 100644 index 84b004c..0000000 --- a/lua/mason-lspconfig/server_configurations/r_language_server/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "r-languageserver" }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/raku_navigator/init.lua b/lua/mason-lspconfig/server_configurations/raku_navigator/init.lua deleted file mode 100644 index 6f3bc2c..0000000 --- a/lua/mason-lspconfig/server_configurations/raku_navigator/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "raku-navigator", "--stdio" }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/snakeskin_ls/init.lua b/lua/mason-lspconfig/server_configurations/snakeskin_ls/init.lua deleted file mode 100644 index dd48b5b..0000000 --- a/lua/mason-lspconfig/server_configurations/snakeskin_ls/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "snakeskin-cli", "lsp", "--stdio" }, - } -end diff --git a/lua/mason-lspconfig/server_configurations/visualforce_ls/init.lua b/lua/mason-lspconfig/server_configurations/visualforce_ls/init.lua deleted file mode 100644 index 7d4c0ec..0000000 --- a/lua/mason-lspconfig/server_configurations/visualforce_ls/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - return { - cmd = { "visualforce-language-server", "--stdio" }, - } -end diff --git a/lua/mason-lspconfig/settings.lua b/lua/mason-lspconfig/settings.lua index e852a3d..cadc31e 100644 --- a/lua/mason-lspconfig/settings.lua +++ b/lua/mason-lspconfig/settings.lua @@ -6,9 +6,8 @@ local DEFAULT_SETTINGS = { ---@type string[] ensure_installed = {}, - -- See `:h mason-lspconfig.setup_handlers()` - ---@type table<string, fun(server_name: string)>? - handlers = nil, + -- Whether installed servers should automatically be enabled via `:h vim.lsp.enable()`. + automatic_enable = true, } M._DEFAULT_SETTINGS = DEFAULT_SETTINGS |
