diff options
| author | William Boman <william@redwill.se> | 2025-05-19 07:56:31 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-19 07:56:31 +0200 |
| commit | 1d6730459c42f591602500da994f01ae43a97dbc (patch) | |
| tree | c78417dd383456d2ef8a00600375534d17a9cd45 /lua | |
| parent | chore: fix references to williamboman/mason.nvim (#542) (diff) | |
| download | mason-lspconfig-1d6730459c42f591602500da994f01ae43a97dbc.tar mason-lspconfig-1d6730459c42f591602500da994f01ae43a97dbc.tar.gz mason-lspconfig-1d6730459c42f591602500da994f01ae43a97dbc.tar.bz2 mason-lspconfig-1d6730459c42f591602500da994f01ae43a97dbc.tar.lz mason-lspconfig-1d6730459c42f591602500da994f01ae43a97dbc.tar.xz mason-lspconfig-1d6730459c42f591602500da994f01ae43a97dbc.tar.zst mason-lspconfig-1d6730459c42f591602500da994f01ae43a97dbc.zip | |
perf: host pre-compiled filetype mappings (#555)
Generating the filetype mappings by accessing `vim.lsp.config` turns out to be a bad idea because:
1) performance
2) some `lsp/` configurations in nvim-lspconfig execute code immediately (see angularls)
3) accessing `vim.lsp.config[server_name]` seems to populate `:checkhealth vim.lsp`
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/mason-lspconfig/filetype_mappings.lua | 249 | ||||
| -rw-r--r-- | lua/mason-lspconfig/mappings.lua | 17 |
2 files changed, 250 insertions, 16 deletions
diff --git a/lua/mason-lspconfig/filetype_mappings.lua b/lua/mason-lspconfig/filetype_mappings.lua new file mode 100644 index 0000000..1db0de6 --- /dev/null +++ b/lua/mason-lspconfig/filetype_mappings.lua @@ -0,0 +1,249 @@ +-- 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" }, + arduino = { "arduino_language_server" }, + asm = { "asm_lsp" }, + aspnetcorerazor = { "tailwindcss", "htmx" }, + astro = { "astro", "stylelint_lsp", "tailwindcss", "unocss", "biome", "emmet_ls", "eslint", "htmx" }, + ["astro-markdown"] = { "tailwindcss", "htmx" }, + automake = { "autotools_ls" }, + awk = { "awk_ls" }, + bash = { "bashls" }, + bazelrc = { "bazelrc_lsp" }, + bean = { "beancount" }, + beancount = { "beancount" }, + bib = { "ltex_plus", "ltex", "texlab" }, + bicep = { "bicep" }, + blade = { "stimulus_ls", "tailwindcss", "htmx" }, + 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 = { "tailwindcss", "clojure_lsp", "htmx" }, + cmake = { "cmake", "neocmake", "harper_ls" }, + cobol = { "cobol_ls" }, + comp = { "glsl_analyzer", "glslls" }, + config = { "autotools_ls" }, + context = { "ltex_plus", "ltex" }, + coq = { "coq_lsp" }, + cpp = { "ast_grep", "clangd", "harper_ls" }, + crystal = { "crystalline" }, + cs = { "harper_ls", "csharp_ls", "omnisharp_mono", "omnisharp" }, + css = { "ast_grep", "stylelint_lsp", "tailwindcss", "unocss", "biome", "emmet_language_server", "emmet_ls", "cssls", "css_variables" }, + 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"] = { "tailwindcss", "htmx" }, + dockerfile = { "dockerls" }, + dot = { "dotls" }, + dts = { "ginko_ls" }, + dune = { "ocamllsp" }, + earthfile = { "earthlyls" }, + edge = { "tailwindcss", "htmx" }, + edn = { "clojure_lsp" }, + eelixir = { "tailwindcss", "elixirls", "nextls", "lexical", "htmx" }, + ejs = { "tailwindcss", "unocss", "htmx" }, + elixir = { "tailwindcss", "elixirls", "nextls", "lexical", "htmx" }, + elm = { "elmls" }, + erb = { "tailwindcss", "unocss", "htmx" }, + erg = { "erg_language_server" }, + erlang = { "elp", "erlangls" }, + eruby = { "stimulus_ls", "tailwindcss", "emmet_language_server", "emmet_ls", "ruby_lsp", "steep", "htmx" }, + 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 = { "ltex_plus", "ltex", "harper_ls" }, + glsl = { "glsl_analyzer", "glslls" }, + go = { "ast_grep", "snyk_ls", "harper_ls", "gopls", "golangci_lint_ls" }, + gohtml = { "tailwindcss", "htmx" }, + gohtmltmpl = { "tailwindcss", "htmx" }, + gomod = { "snyk_ls", "gopls", "golangci_lint_ls" }, + gotmpl = { "gopls" }, + gowork = { "gopls" }, + graphql = { "biome", "dprint", "graphql" }, + groovy = { "groovyls", "gradle_ls" }, + haml = { "tailwindcss", "unocss", "htmx" }, + handlebars = { "tailwindcss", "ember", "htmx" }, + haskell = { "harper_ls", "hls" }, + hbs = { "tailwindcss", "unocss", "htmx" }, + heex = { "tailwindcss", "elixirls", "nextls", "lexical", "htmx" }, + helm = { "snyk_ls", "helm_ls" }, + hlsl = { "slangd" }, + hoon = { "hoon_ls" }, + html = { "ast_grep", "stimulus_ls", "stylelint_lsp", "tailwindcss", "unocss", "emmet_language_server", "emmet_ls", "ltex_plus", "ltex", "lwc_ls", "html", "harper_ls", "angularls", "antlersls", "superhtml", "htmx" }, + ["html-eex"] = { "tailwindcss", "htmx" }, + htmlangular = { "tailwindcss", "emmet_language_server", "emmet_ls", "angularls", "htmx" }, + htmldjango = { "tailwindcss", "emmet_language_server", "emmet_ls", "htmx" }, + hyprlang = { "hyprls" }, + jade = { "tailwindcss", "htmx" }, + java = { "java_language_server", "ast_grep", "jdtls", "harper_ls" }, + javascript = { "oxlint", "ast_grep", "vtsls", "denols", "tailwindcss", "ts_ls", "unocss", "quick_lint_js", "biome", "ember", "rome", "snyk_ls", "lwc_ls", "harper_ls", "eslint", "dprint", "cssmodules_ls", "htmx" }, + ["javascript.glimmer"] = { "ember" }, + ["javascript.jsx"] = { "oxlint", "ast_grep", "vtsls", "denols", "ts_ls", "eslint" }, + javascriptreact = { "oxlint", "ast_grep", "vtsls", "denols", "tailwindcss", "ts_ls", "unocss", "biome", "emmet_language_server", "emmet_ls", "rome", "eslint", "dprint", "cssmodules_ls", "graphql", "htmx" }, + jinja = { "jinja_lsp" }, + jq = { "jqls" }, + json = { "biome", "rome", "snyk_ls", "jsonls", "spectral", "dprint" }, + ["json.openapi"] = { "vacuum" }, + jsonc = { "biome", "jsonls", "dprint" }, + julia = { "julials" }, + just = { "just" }, + kcl = { "kcl" }, + kotlin = { "ast_grep", "kotlin_language_server" }, + leaf = { "tailwindcss", "htmx" }, + less = { "stylelint_lsp", "tailwindcss", "unocss", "emmet_language_server", "emmet_ls", "cssls", "css_variables" }, + lhaskell = { "hls" }, + liquid = { "tailwindcss", "shopify_theme_ls", "theme_check", "htmx" }, + llw = { "lelwel_ls" }, + lua = { "ast_grep", "emmylua_ls", "lua_ls", "harper_ls" }, + luau = { "luau_lsp" }, + mail = { "ltex_plus", "ltex" }, + make = { "autotools_ls" }, + markdown = { "tailwindcss", "unocss", "vale_ls", "remark_ls", "zk", "ltex_plus", "ltex", "markdown_oxide", "marksman", "harper_ls", "prosemd_lsp", "dprint", "grammarly", "htmx" }, + ["markdown.mdx"] = { "marksman" }, + mdx = { "tailwindcss", "ltex_plus", "mdx_analyzer", "htmx" }, + menhir = { "ocamllsp" }, + meson = { "swift_mesonls", "mesonlsp" }, + ["metamath-zero"] = { "mm0_ls" }, + motoko = { "motoko_lsp" }, + move = { "move_analyzer" }, + mustache = { "tailwindcss", "htmx" }, + muttrc = { "mutt_ls" }, + mysql = { "sqlls", "sqls" }, + ncl = { "nickel_ls" }, + neomuttrc = { "mutt_ls" }, + nextflow = { "nextflow_ls" }, + nginx = { "nginx_language_server" }, + nickel = { "nickel_ls" }, + nim = { "nim_langserver", "nimls" }, + nix = { "nil_ls", "rnix", "harper_ls" }, + njk = { "tailwindcss", "htmx" }, + nunjucks = { "tailwindcss", "htmx" }, + objc = { "clangd" }, + objcpp = { "clangd" }, + ocaml = { "ocamllsp" }, + ocamlinterface = { "ocamllsp" }, + ocamllex = { "ocamllsp" }, + odin = { "ols" }, + opencl = { "opencl_ls" }, + openscad = { "openscad_lsp" }, + org = { "ltex_plus", "ltex", "textlsp" }, + os = { "bsl_ls" }, + p8 = { "pico8_ls" }, + pandoc = { "ltex_plus", "ltex" }, + perl = { "perlnavigator" }, + pest = { "pest_ls" }, + php = { "intelephense", "phpactor", "stimulus_ls", "tailwindcss", "unocss", "harper_ls", "psalm", "htmx" }, + plaintex = { "ltex_plus", "ltex", "texlab" }, + postcss = { "tailwindcss", "unocss" }, + prisma = { "prismals" }, + proto = { "buf_ls", "clangd", "pbls", "protols" }, + ps1 = { "powershell_es" }, + pug = { "emmet_language_server", "emmet_ls" }, + puppet = { "puppet" }, + purescript = { "purescriptls" }, + python = { "ast_grep", "basedpyright", "pyre", "pyright", "pylsp", "snyk_ls", "jedi_language_server", "ruff", "harper_ls", "pylyzer", "dprint" }, + quarto = { "r_language_server", "ltex_plus", "ltex" }, + query = { "ts_query_ls" }, + r = { "r_language_server", "air" }, + raku = { "raku_navigator" }, + razor = { "tailwindcss", "htmx" }, + reason = { "tailwindcss", "reason_ls", "ocamllsp", "htmx" }, + rego = { "regal", "regols" }, + requirements = { "snyk_ls" }, + rescript = { "tailwindcss", "unocss", "rescriptls", "htmx" }, + rmd = { "r_language_server", "ltex_plus", "ltex" }, + rnoweb = { "ltex_plus", "ltex" }, + robot = { "robotframework_ls" }, + roslyn = { "dprint" }, + rst = { "vale_ls", "ltex_plus", "ltex", "esbonio" }, + ruby = { "standardrb", "stimulus_ls", "rubocop", "ruby_lsp", "solargraph", "steep", "harper_ls", "sorbet" }, + rust = { "ast_grep", "unocss", "rust_analyzer", "harper_ls", "dprint" }, + sass = { "tailwindcss", "unocss", "emmet_language_server", "emmet_ls", "somesass_ls" }, + scss = { "stylelint_lsp", "tailwindcss", "unocss", "emmet_language_server", "emmet_ls", "somesass_ls", "cssls", "css_variables" }, + sh = { "bashls" }, + shaderslang = { "slangd" }, + slim = { "tailwindcss", "htmx" }, + slint = { "slint_lsp" }, + sls = { "salt_ls" }, + smithy = { "smithy_ls" }, + sml = { "millet" }, + solidity = { "solidity_ls", "solang", "solidity", "solidity_ls_nomicfoundation", "solc" }, + sql = { "sqlls", "sqls", "postgres_lsp" }, + ss = { "snakeskin_ls" }, + star = { "starlark_rust" }, + stylus = { "tailwindcss", "unocss" }, + sugarss = { "stylelint_lsp", "tailwindcss" }, + superhtml = { "superhtml" }, + surface = { "elixirls", "nextls", "lexical" }, + svelte = { "svelte", "tailwindcss", "unocss", "biome", "emmet_ls", "eslint", "htmx" }, + svg = { "lemminx" }, + swift = { "harper_ls" }, + systemd = { "systemd_ls" }, + systemverilog = { "svlangserver", "svls", "verible", "hdl_checker" }, + teal = { "teal_ls" }, + templ = { "tailwindcss", "html", "htmx", "templ" }, + terraform = { "terraformls", "snyk_ls", "tflint" }, + ["terraform-vars"] = { "terraformls", "snyk_ls" }, + tesc = { "glsl_analyzer", "glslls" }, + tese = { "glsl_analyzer", "glslls" }, + tex = { "vale_ls", "ltex_plus", "ltex", "texlab", "textlsp" }, + text = { "vale_ls", "ltex_plus", "ltex", "textlsp" }, + thrift = { "thriftls" }, + toml = { "taplo", "harper_ls", "dprint" }, + twig = { "tailwindcss", "twiggy_language_server", "htmx" }, + typescript = { "oxlint", "ast_grep", "vtsls", "denols", "tailwindcss", "ts_ls", "unocss", "quick_lint_js", "biome", "ember", "rome", "snyk_ls", "harper_ls", "eslint", "dprint", "cssmodules_ls", "angularls", "htmx" }, + ["typescript.glimmer"] = { "ember" }, + ["typescript.tsx"] = { "oxlint", "ast_grep", "vtsls", "denols", "ts_ls", "biome", "rome", "eslint", "angularls" }, + typescriptreact = { "oxlint", "ast_grep", "vtsls", "denols", "tailwindcss", "ts_ls", "unocss", "biome", "emmet_language_server", "emmet_ls", "rome", "harper_ls", "eslint", "dprint", "cssmodules_ls", "graphql", "angularls", "htmx" }, + typespec = { "tsp_server" }, + typst = { "ltex_plus", "tinymist", "harper_ls" }, + v = { "v_analyzer", "vls" }, + vala = { "vala_ls" }, + vb = { "omnisharp_mono", "omnisharp" }, + verilog = { "svlangserver", "svls", "verible", "hdl_checker" }, + vert = { "glsl_analyzer", "glslls" }, + veryl = { "veryl_ls" }, + vhd = { "vhdl_ls" }, + vhdl = { "vhdl_ls", "hdl_checker" }, + vim = { "vimls" }, + visualforce = { "visualforce_ls" }, + vlang = { "vls" }, + vmasm = { "asm_lsp" }, + vsh = { "v_analyzer" }, + vue = { "vuels", "volar", "stylelint_lsp", "tailwindcss", "unocss", "biome", "emmet_ls", "eslint", "htmx" }, + ["vue-html"] = { "unocss" }, + vv = { "v_analyzer" }, + wgsl = { "wgsl_analyzer" }, + wxss = { "stylelint_lsp" }, + xhtml = { "ltex_plus", "ltex" }, + xml = { "lemminx" }, + xsd = { "lemminx" }, + xsl = { "lemminx" }, + xslt = { "lemminx" }, + yaml = { "azure_pipelines_ls", "gh_actions_ls", "yamlls", "snyk_ls", "spectral", "hydra_lsp" }, + ["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.lua b/lua/mason-lspconfig/mappings.lua index 2523aed..c40853f 100644 --- a/lua/mason-lspconfig/mappings.lua +++ b/lua/mason-lspconfig/mappings.lua @@ -20,22 +20,7 @@ function M.get_mason_map() 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 + return require "mason-lspconfig.filetype_mappings" end function M.get_all() |
