irongit

filetype configs with named files. has telescope

added lsp configs with hints for the names

huncholanehuncholaneauthored
parent 447a5dfcommit 3df85392a78dd40bac570784eac5444192bb422bBrowse files

2 files changed, +429 -395

+67-33lua/ftconfig/init.lua
@@ -8,21 +8,76 @@ end
88
99 local augroup = vim.api.nvim_create_augroup("ftconfig", { clear = true })
1010
11----@class FTConformSpec
12----@field use string[]
13----@field formatters? table<string, conform.FileFormatterConfig>
14-
15----@class FTKeymapOptions
11+---@class ft.KeymapOptions
1612 ---@field [1] string # mode
1713 ---@field [2] string # lhs
1814 ---@field [3] string|fun(args:vim.api.keyset.create_autocmd.callback_args) # rhs
1915 ---@field [4]? vim.keymap.set.Opts
2016
17+---sets the keymaps
18+---@param ft string
19+---@param spec FTSpec
20+function M.set_keymaps(ft, spec)
21+ for _, k in ipairs(spec.keymaps or {}) do
22+ vim.api.nvim_create_autocmd("FileType", {
23+ pattern = ft,
24+ callback = function(args)
25+ local opts = k[4] or {}
26+ opts.buffer = args.buf
27+ vim.keymap.set(k[1], k[2], k[3], opts)
28+ end,
29+ })
30+ end
31+end
32+
33+---sets the indent
34+---@param ft string
35+---@param spec FTSpec
36+function M.set_indent(ft, spec)
37+ local indent = spec.indent or 4
38+ vim.api.nvim_create_autocmd("FileType", {
39+ group = augroup,
40+ pattern = ft,
41+ callback = function()
42+ vim.opt_local.shiftwidth = indent
43+ vim.opt_local.tabstop = indent
44+ vim.opt_local.softtabstop = indent
45+ end,
46+ })
47+end
48+
49+---@class ft.ConformSpec
50+---@field use string[]
51+---@field formatters? table<string, conform.FileFormatterConfig>
52+
53+---sets conform
54+---@param ft string
55+---@param spec FTSpec
56+function M.set_conform(ft, spec)
57+ if spec.conform then
58+ local conform_opts = { formatters_by_ft = { [ft] = spec.conform.use }, formatters = spec.conform.formatters }
59+ require("conform").setup(conform_opts)
60+ end
61+end
62+
63+---sets up lsps
64+---@param spec FTSpec
65+function M.set_lsp(spec)
66+ if spec.lsp then
67+ for key, value in pairs(spec.lsp) do
68+ if value.enabled == nil or value.enabled then
69+ vim.lsp.config(key, value)
70+ vim.lsp.enable(key)
71+ end
72+ end
73+ end
74+end
75+
2176 ---@class FTSpec
2277 ---@field indent? integer
23----@field conform? FTConformSpec
24----@field keymaps? FTKeymapOptions[]
25----@field lsp? table<LSPName, any>
78+---@field conform? ft.ConformSpec
79+---@field keymaps? ft.KeymapOptions[]
80+---@field lsp? ft.LSPConf
2681
2782 ---Loads the config for the given filename
2883 ---@param filename string
@@ -36,31 +91,10 @@ function M.load_file(filename)
3691 return
3792 end
3893 local ok, err = pcall(function()
39- local indent = spec.indent or 4
40- vim.api.nvim_create_autocmd("FileType", {
41- group = augroup,
42- pattern = ft,
43- callback = function()
44- vim.opt_local.shiftwidth = indent
45- vim.opt_local.tabstop = indent
46- vim.opt_local.softtabstop = indent
47- end,
48- })
49- for _, k in ipairs(spec.keymaps or {}) do
50- vim.api.nvim_create_autocmd("FileType", {
51- pattern = ft,
52- callback = function(args)
53- local opts = k[4] or {}
54- opts.buffer = args.buf
55- vim.keymap.set(k[1], k[2], k[3], opts)
56- end,
57- })
58- end
59- if spec.conform then
60- local conform_opts =
61- { formatters_by_ft = { [ft] = spec.conform.use }, formatters = spec.conform.formatters }
62- require("conform").setup(conform_opts)
63- end
94+ M.set_indent(ft, spec)
95+ M.set_keymaps(ft, spec)
96+ M.set_conform(ft, spec)
97+ M.set_lsp(spec)
6498 end)
6599 if not ok then
66100 local msg = string.format("%s ftconfig error: %s", ft, err)
+362-362lua/ftconfig/lsp-list.lua
@@ -1,362 +1,362 @@
1----@alias LSPName
2----| "ada_ls"
3----| "agda_ls"
4----| "aiken"
5----| "air"
6----| "alloy_ls"
7----| "anakin_language_server"
8----| "angularls"
9----| "ansiblels"
10----| "antlersls"
11----| "apex_ls"
12----| "arduino_language_server"
13----| "asm_lsp"
14----| "ast_grep"
15----| "astro"
16----| "atlas"
17----| "autohotkey_lsp"
18----| "autotools_ls"
19----| "awk_ls"
20----| "azure_pipelines_ls"
21----| "bacon_ls"
22----| "ballerina"
23----| "basedpyright"
24----| "bashls"
25----| "basics_ls"
26----| "bazelrc_lsp"
27----| "beancount"
28----| "bicep"
29----| "biome"
30----| "bitbake_language_server"
31----| "bitbake_ls"
32----| "blueprint_ls"
33----| "bqls"
34----| "bqnlsp"
35----| "bright_script"
36----| "bsl_ls"
37----| "buck2"
38----| "buddy_ls"
39----| "buf_ls"
40----| "bufls"
41----| "bzl"
42----| "c3_lsp"
43----| "cadence"
44----| "cairo_ls"
45----| "ccls"
46----| "cds_lsp"
47----| "circom"
48----| "clangd"
49----| "clarity_lsp"
50----| "clojure_lsp"
51----| "cmake"
52----| "cobol_ls"
53----| "codeqlls"
54----| "coffeesense"
55----| "contextive"
56----| "coq_lsp"
57----| "crystalline"
58----| "csharp_ls"
59----| "css_variables"
60----| "cssls"
61----| "cssmodules_ls"
62----| "cucumber_language_server"
63----| "cue"
64----| "custom_elements_ls"
65----| "cypher_ls"
66----| "daedalus_ls"
67----| "dafny"
68----| "dagger"
69----| "dartls"
70----| "dcmls"
71----| "debputy"
72----| "delphi_ls"
73----| "denols"
74----| "dhall_lsp_server"
75----| "diagnosticls"
76----| "digestif"
77----| "djlsp"
78----| "docker_compose_language_service"
79----| "dockerls"
80----| "dolmenls"
81----| "dotls"
82----| "dprint"
83----| "drools_lsp"
84----| "ds_pinyin_lsp"
85----| "dts_lsp"
86----| "earthlyls"
87----| "ecsact"
88----| "efm"
89----| "elixirls"
90----| "elmls"
91----| "elp"
92----| "ember"
93----| "emmet_language_server"
94----| "emmet_ls"
95----| "erg_language_server"
96----| "erlangls"
97----| "esbonio"
98----| "eslint"
99----| "facility_language_server"
100----| "fennel_language_server"
101----| "fennel_ls"
102----| "fish_lsp"
103----| "flow"
104----| "flux_lsp"
105----| "foam_ls"
106----| "fortls"
107----| "fsautocomplete"
108----| "fsharp_language_server"
109----| "fstar"
110----| "futhark_lsp"
111----| "gdscript"
112----| "gdshader_lsp"
113----| "gh_actions_ls"
114----| "ghcide"
115----| "ghdl_ls"
116----| "ginko_ls"
117----| "gitlab_ci_ls"
118----| "glasgow"
119----| "gleam"
120----| "glint"
121----| "glsl_analyzer"
122----| "glslls"
123----| "golangci_lint_ls"
124----| "gopls"
125----| "gradle_ls"
126----| "grammarly"
127----| "graphql"
128----| "groovyls"
129----| "guile_ls"
130----| "harper_ls"
131----| "haxe_language_server"
132----| "hdl_checker"
133----| "helm_ls"
134----| "hhvm"
135----| "hie"
136----| "hlasm"
137----| "hls"
138----| "hoon_ls"
139----| "html"
140----| "htmx"
141----| "hydra_lsp"
142----| "hyprls"
143----| "idris2_lsp"
144----| "intelephense"
145----| "janet_lsp"
146----| "java_language_server"
147----| "jdtls"
148----| "jedi_language_server"
149----| "jinja_lsp"
150----| "jqls"
151----| "jsonls"
152----| "jsonnet_ls"
153----| "julials"
154----| "just"
155----| "kcl"
156----| "koka"
157----| "kotlin_language_server"
158----| "kulala_ls"
159----| "laravel_ls"
160----| "lean3ls"
161----| "leanls"
162----| "lelwel_ls"
163----| "lemminx"
164----| "lexical"
165----| "lsp_ai"
166----| "ltex"
167----| "ltex_plus"
168----| "lua_ls"
169----| "luau_lsp"
170----| "lwc_ls"
171----| "m68k"
172----| "markdown_oxide"
173----| "marko"
174----| "marksman"
175----| "matlab_ls"
176----| "mdx_analyzer"
177----| "mesonlsp"
178----| "metals"
179----| "millet"
180----| "mint"
181----| "mlir_lsp_server"
182----| "mlir_pdll_lsp_server"
183----| "mm0_ls"
184----| "mojo"
185----| "motoko_lsp"
186----| "move_analyzer"
187----| "msbuild_project_tools_server"
188----| "muon"
189----| "mutt_ls"
190----| "nelua_lsp"
191----| "neocmake"
192----| "nextflow_ls"
193----| "nextls"
194----| "nginx_language_server"
195----| "nickel_ls"
196----| "nil_ls"
197----| "nim_langserver"
198----| "nimls"
199----| "nixd"
200----| "nomad_lsp"
201----| "ntt"
202----| "nushell"
203----| "nxls"
204----| "ocamlls"
205----| "ocamllsp"
206----| "ols"
207----| "omnisharp"
208----| "opencl_ls"
209----| "openedge_ls"
210----| "openscad_ls"
211----| "openscad_lsp"
212----| "oxlint"
213----| "pact_ls"
214----| "pasls"
215----| "pbls"
216----| "perlls"
217----| "perlnavigator"
218----| "perlpls"
219----| "pest_ls"
220----| "phan"
221----| "phpactor"
222----| "pico8_ls"
223----| "pkgbuild_language_server"
224----| "please"
225----| "poryscript_pls"
226----| "postgres_lsp"
227----| "powershell_es"
228----| "prismals"
229----| "prolog_ls"
230----| "prosemd_lsp"
231----| "protols"
232----| "psalm"
233----| "pug"
234----| "puppet"
235----| "purescriptls"
236----| "pylsp"
237----| "pylyzer"
238----| "pyre"
239----| "pyright"
240----| "qmlls"
241----| "quick_lint_js"
242----| "r_language_server"
243----| "racket_langserver"
244----| "raku_navigator"
245----| "reason_ls"
246----| "regal"
247----| "regols"
248----| "relay_lsp"
249----| "remark_ls"
250----| "rescriptls"
251----| "rls"
252----| "rnix"
253----| "robotcode"
254----| "robotframework_ls"
255----| "roc_ls"
256----| "rome"
257----| "rpmspec"
258----| "rubocop"
259----| "ruby_lsp"
260----| "ruff"
261----| "ruff_lsp"
262----| "rune_languageserver"
263----| "rust_analyzer"
264----| "salt_ls"
265----| "scheme_langserver"
266----| "scry"
267----| "selene3p_ls"
268----| "serve_d"
269----| "shopify_theme_ls"
270----| "sixtyfps"
271----| "slangd"
272----| "slint_lsp"
273----| "smarty_ls"
274----| "smithy_ls"
275----| "snakeskin_ls"
276----| "snyk_ls"
277----| "solang"
278----| "solargraph"
279----| "solc"
280----| "solidity"
281----| "solidity_ls"
282----| "solidity_ls_nomicfoundation"
283----| "somesass_ls"
284----| "sorbet"
285----| "sourcekit"
286----| "sourcery"
287----| "spectral"
288----| "spyglassmc_language_server"
289----| "sqlls"
290----| "sqls"
291----| "standardrb"
292----| "starlark_rust"
293----| "starpls"
294----| "statix"
295----| "steep"
296----| "stimulus_ls"
297----| "stylelint_lsp"
298----| "stylua3p_ls"
299----| "superhtml"
300----| "svelte"
301----| "svlangserver"
302----| "svls"
303----| "swift_mesonls"
304----| "syntax_tree"
305----| "systemd_ls"
306----| "tabby_ml"
307----| "tailwindcss"
308----| "taplo"
309----| "tblgen_lsp_server"
310----| "teal_ls"
311----| "templ"
312----| "terraform_lsp"
313----| "terraformls"
314----| "texlab"
315----| "textlsp"
316----| "tflint"
317----| "theme_check"
318----| "thriftls"
319----| "tilt_ls"
320----| "tinymist"
321----| "ts_ls"
322----| "ts_query_ls"
323----| "tsp_server"
324----| "ttags"
325----| "turbo_ls"
326----| "turtle_ls"
327----| "tvm_ffi_navigator"
328----| "twiggy_language_server"
329----| "typeprof"
330----| "typos_lsp"
331----| "typst_lsp"
332----| "uiua"
333----| "ungrammar_languageserver"
334----| "unison"
335----| "unocss"
336----| "uvls"
337----| "v_analyzer"
338----| "vacuum"
339----| "vala_ls"
340----| "vale_ls"
341----| "vdmj"
342----| "vectorcode_server"
343----| "verible"
344----| "veridian"
345----| "veryl_ls"
346----| "vhdl_ls"
347----| "vimls"
348----| "visualforce_ls"
349----| "vls"
350----| "volar"
351----| "vscoqtop"
352----| "vtsls"
353----| "vuels"
354----| "wasm_language_tools"
355----| "wgsl_analyzer"
356----| "yamlls"
357----| "yang_lsp"
358----| "yls"
359----| "ziggy"
360----| "ziggy_schema"
361----| "zk"
362----| "zls"
1+---@class ft.LSPConf
2+---@field ada_ls? vim.lsp.Config
3+---@field agda_ls? vim.lsp.Config
4+---@field aiken? vim.lsp.Config
5+---@field air? vim.lsp.Config
6+---@field alloy_ls? vim.lsp.Config
7+---@field anakin_language_server? vim.lsp.Config
8+---@field angularls? vim.lsp.Config
9+---@field ansiblels? vim.lsp.Config
10+---@field antlersls? vim.lsp.Config
11+---@field apex_ls? vim.lsp.Config
12+---@field arduino_language_server? vim.lsp.Config
13+---@field asm_lsp? vim.lsp.Config
14+---@field ast_grep? vim.lsp.Config
15+---@field astro? vim.lsp.Config
16+---@field atlas? vim.lsp.Config
17+---@field autohotkey_lsp? vim.lsp.Config
18+---@field autotools_ls? vim.lsp.Config
19+---@field awk_ls? vim.lsp.Config
20+---@field azure_pipelines_ls? vim.lsp.Config
21+---@field bacon_ls? vim.lsp.Config
22+---@field ballerina? vim.lsp.Config
23+---@field basedpyright? vim.lsp.Config
24+---@field bashls? vim.lsp.Config
25+---@field basics_ls? vim.lsp.Config
26+---@field bazelrc_lsp? vim.lsp.Config
27+---@field beancount? vim.lsp.Config
28+---@field bicep? vim.lsp.Config
29+---@field biome? vim.lsp.Config
30+---@field bitbake_language_server? vim.lsp.Config
31+---@field bitbake_ls? vim.lsp.Config
32+---@field blueprint_ls? vim.lsp.Config
33+---@field bqls? vim.lsp.Config
34+---@field bqnlsp? vim.lsp.Config
35+---@field bright_script? vim.lsp.Config
36+---@field bsl_ls? vim.lsp.Config
37+---@field buck2? vim.lsp.Config
38+---@field buddy_ls? vim.lsp.Config
39+---@field buf_ls? vim.lsp.Config
40+---@field bufls? vim.lsp.Config
41+---@field bzl? vim.lsp.Config
42+---@field c3_lsp? vim.lsp.Config
43+---@field cadence? vim.lsp.Config
44+---@field cairo_ls? vim.lsp.Config
45+---@field ccls? vim.lsp.Config
46+---@field cds_lsp? vim.lsp.Config
47+---@field circom? vim.lsp.Config
48+---@field clangd? vim.lsp.Config
49+---@field clarity_lsp? vim.lsp.Config
50+---@field clojure_lsp? vim.lsp.Config
51+---@field cmake? vim.lsp.Config
52+---@field cobol_ls? vim.lsp.Config
53+---@field codeqlls? vim.lsp.Config
54+---@field coffeesense? vim.lsp.Config
55+---@field contextive? vim.lsp.Config
56+---@field coq_lsp? vim.lsp.Config
57+---@field crystalline? vim.lsp.Config
58+---@field csharp_ls? vim.lsp.Config
59+---@field css_variables? vim.lsp.Config
60+---@field cssls? vim.lsp.Config
61+---@field cssmodules_ls? vim.lsp.Config
62+---@field cucumber_language_server? vim.lsp.Config
63+---@field cue? vim.lsp.Config
64+---@field custom_elements_ls? vim.lsp.Config
65+---@field cypher_ls? vim.lsp.Config
66+---@field daedalus_ls? vim.lsp.Config
67+---@field dafny? vim.lsp.Config
68+---@field dagger? vim.lsp.Config
69+---@field dartls? vim.lsp.Config
70+---@field dcmls? vim.lsp.Config
71+---@field debputy? vim.lsp.Config
72+---@field delphi_ls? vim.lsp.Config
73+---@field denols? vim.lsp.Config
74+---@field dhall_lsp_server? vim.lsp.Config
75+---@field diagnosticls? vim.lsp.Config
76+---@field digestif? vim.lsp.Config
77+---@field djlsp? vim.lsp.Config
78+---@field docker_compose_language_service? vim.lsp.Config
79+---@field dockerls? vim.lsp.Config
80+---@field dolmenls? vim.lsp.Config
81+---@field dotls? vim.lsp.Config
82+---@field dprint? vim.lsp.Config
83+---@field drools_lsp? vim.lsp.Config
84+---@field ds_pinyin_lsp? vim.lsp.Config
85+---@field dts_lsp? vim.lsp.Config
86+---@field earthlyls? vim.lsp.Config
87+---@field ecsact? vim.lsp.Config
88+---@field efm? vim.lsp.Config
89+---@field elixirls? vim.lsp.Config
90+---@field elmls? vim.lsp.Config
91+---@field elp? vim.lsp.Config
92+---@field ember? vim.lsp.Config
93+---@field emmet_language_server? vim.lsp.Config
94+---@field emmet_ls? vim.lsp.Config
95+---@field erg_language_server? vim.lsp.Config
96+---@field erlangls? vim.lsp.Config
97+---@field esbonio? vim.lsp.Config
98+---@field eslint? vim.lsp.Config
99+---@field facility_language_server? vim.lsp.Config
100+---@field fennel_language_server? vim.lsp.Config
101+---@field fennel_ls? vim.lsp.Config
102+---@field fish_lsp? vim.lsp.Config
103+---@field flow? vim.lsp.Config
104+---@field flux_lsp? vim.lsp.Config
105+---@field foam_ls? vim.lsp.Config
106+---@field fortls? vim.lsp.Config
107+---@field fsautocomplete? vim.lsp.Config
108+---@field fsharp_language_server? vim.lsp.Config
109+---@field fstar? vim.lsp.Config
110+---@field futhark_lsp? vim.lsp.Config
111+---@field gdscript? vim.lsp.Config
112+---@field gdshader_lsp? vim.lsp.Config
113+---@field gh_actions_ls? vim.lsp.Config
114+---@field ghcide? vim.lsp.Config
115+---@field ghdl_ls? vim.lsp.Config
116+---@field ginko_ls? vim.lsp.Config
117+---@field gitlab_ci_ls? vim.lsp.Config
118+---@field glasgow? vim.lsp.Config
119+---@field gleam? vim.lsp.Config
120+---@field glint? vim.lsp.Config
121+---@field glsl_analyzer? vim.lsp.Config
122+---@field glslls? vim.lsp.Config
123+---@field golangci_lint_ls? vim.lsp.Config
124+---@field gopls? vim.lsp.Config
125+---@field gradle_ls? vim.lsp.Config
126+---@field grammarly? vim.lsp.Config
127+---@field graphql? vim.lsp.Config
128+---@field groovyls? vim.lsp.Config
129+---@field guile_ls? vim.lsp.Config
130+---@field harper_ls? vim.lsp.Config
131+---@field haxe_language_server? vim.lsp.Config
132+---@field hdl_checker? vim.lsp.Config
133+---@field helm_ls? vim.lsp.Config
134+---@field hhvm? vim.lsp.Config
135+---@field hie? vim.lsp.Config
136+---@field hlasm? vim.lsp.Config
137+---@field hls? vim.lsp.Config
138+---@field hoon_ls? vim.lsp.Config
139+---@field html? vim.lsp.Config
140+---@field htmx? vim.lsp.Config
141+---@field hydra_lsp? vim.lsp.Config
142+---@field hyprls? vim.lsp.Config
143+---@field idris2_lsp? vim.lsp.Config
144+---@field intelephense? vim.lsp.Config
145+---@field janet_lsp? vim.lsp.Config
146+---@field java_language_server? vim.lsp.Config
147+---@field jdtls? vim.lsp.Config
148+---@field jedi_language_server? vim.lsp.Config
149+---@field jinja_lsp? vim.lsp.Config
150+---@field jqls? vim.lsp.Config
151+---@field jsonls? vim.lsp.Config
152+---@field jsonnet_ls? vim.lsp.Config
153+---@field julials? vim.lsp.Config
154+---@field just? vim.lsp.Config
155+---@field kcl? vim.lsp.Config
156+---@field koka? vim.lsp.Config
157+---@field kotlin_language_server? vim.lsp.Config
158+---@field kulala_ls? vim.lsp.Config
159+---@field laravel_ls? vim.lsp.Config
160+---@field lean3ls? vim.lsp.Config
161+---@field leanls? vim.lsp.Config
162+---@field lelwel_ls? vim.lsp.Config
163+---@field lemminx? vim.lsp.Config
164+---@field lexical? vim.lsp.Config
165+---@field lsp_ai? vim.lsp.Config
166+---@field ltex? vim.lsp.Config
167+---@field ltex_plus? vim.lsp.Config
168+---@field lua_ls? vim.lsp.Config
169+---@field luau_lsp? vim.lsp.Config
170+---@field lwc_ls? vim.lsp.Config
171+---@field m68k? vim.lsp.Config
172+---@field markdown_oxide? vim.lsp.Config
173+---@field marko? vim.lsp.Config
174+---@field marksman? vim.lsp.Config
175+---@field matlab_ls? vim.lsp.Config
176+---@field mdx_analyzer? vim.lsp.Config
177+---@field mesonlsp? vim.lsp.Config
178+---@field metals? vim.lsp.Config
179+---@field millet? vim.lsp.Config
180+---@field mint? vim.lsp.Config
181+---@field mlir_lsp_server? vim.lsp.Config
182+---@field mlir_pdll_lsp_server? vim.lsp.Config
183+---@field mm0_ls? vim.lsp.Config
184+---@field mojo? vim.lsp.Config
185+---@field motoko_lsp? vim.lsp.Config
186+---@field move_analyzer? vim.lsp.Config
187+---@field msbuild_project_tools_server? vim.lsp.Config
188+---@field muon? vim.lsp.Config
189+---@field mutt_ls? vim.lsp.Config
190+---@field nelua_lsp? vim.lsp.Config
191+---@field neocmake? vim.lsp.Config
192+---@field nextflow_ls? vim.lsp.Config
193+---@field nextls? vim.lsp.Config
194+---@field nginx_language_server? vim.lsp.Config
195+---@field nickel_ls? vim.lsp.Config
196+---@field nil_ls? vim.lsp.Config
197+---@field nim_langserver? vim.lsp.Config
198+---@field nimls? vim.lsp.Config
199+---@field nixd? vim.lsp.Config
200+---@field nomad_lsp? vim.lsp.Config
201+---@field ntt? vim.lsp.Config
202+---@field nushell? vim.lsp.Config
203+---@field nxls? vim.lsp.Config
204+---@field ocamlls? vim.lsp.Config
205+---@field ocamllsp? vim.lsp.Config
206+---@field ols? vim.lsp.Config
207+---@field omnisharp? vim.lsp.Config
208+---@field opencl_ls? vim.lsp.Config
209+---@field openedge_ls? vim.lsp.Config
210+---@field openscad_ls? vim.lsp.Config
211+---@field openscad_lsp? vim.lsp.Config
212+---@field oxlint? vim.lsp.Config
213+---@field pact_ls? vim.lsp.Config
214+---@field pasls? vim.lsp.Config
215+---@field pbls? vim.lsp.Config
216+---@field perlls? vim.lsp.Config
217+---@field perlnavigator? vim.lsp.Config
218+---@field perlpls? vim.lsp.Config
219+---@field pest_ls? vim.lsp.Config
220+---@field phan? vim.lsp.Config
221+---@field phpactor? vim.lsp.Config
222+---@field pico8_ls? vim.lsp.Config
223+---@field pkgbuild_language_server? vim.lsp.Config
224+---@field please? vim.lsp.Config
225+---@field poryscript_pls? vim.lsp.Config
226+---@field postgres_lsp? vim.lsp.Config
227+---@field powershell_es? vim.lsp.Config
228+---@field prismals? vim.lsp.Config
229+---@field prolog_ls? vim.lsp.Config
230+---@field prosemd_lsp? vim.lsp.Config
231+---@field protols? vim.lsp.Config
232+---@field psalm? vim.lsp.Config
233+---@field pug? vim.lsp.Config
234+---@field puppet? vim.lsp.Config
235+---@field purescriptls? vim.lsp.Config
236+---@field pylsp? vim.lsp.Config
237+---@field pylyzer? vim.lsp.Config
238+---@field pyre? vim.lsp.Config
239+---@field pyright? vim.lsp.Config
240+---@field qmlls? vim.lsp.Config
241+---@field quick_lint_js? vim.lsp.Config
242+---@field r_language_server? vim.lsp.Config
243+---@field racket_langserver? vim.lsp.Config
244+---@field raku_navigator? vim.lsp.Config
245+---@field reason_ls? vim.lsp.Config
246+---@field regal? vim.lsp.Config
247+---@field regols? vim.lsp.Config
248+---@field relay_lsp? vim.lsp.Config
249+---@field remark_ls? vim.lsp.Config
250+---@field rescriptls? vim.lsp.Config
251+---@field rls? vim.lsp.Config
252+---@field rnix? vim.lsp.Config
253+---@field robotcode? vim.lsp.Config
254+---@field robotframework_ls? vim.lsp.Config
255+---@field roc_ls? vim.lsp.Config
256+---@field rome? vim.lsp.Config
257+---@field rpmspec? vim.lsp.Config
258+---@field rubocop? vim.lsp.Config
259+---@field ruby_lsp? vim.lsp.Config
260+---@field ruff? vim.lsp.Config
261+---@field ruff_lsp? vim.lsp.Config
262+---@field rune_languageserver? vim.lsp.Config
263+---@field rust_analyzer? vim.lsp.Config
264+---@field salt_ls? vim.lsp.Config
265+---@field scheme_langserver? vim.lsp.Config
266+---@field scry? vim.lsp.Config
267+---@field selene3p_ls? vim.lsp.Config
268+---@field serve_d? vim.lsp.Config
269+---@field shopify_theme_ls? vim.lsp.Config
270+---@field sixtyfps? vim.lsp.Config
271+---@field slangd? vim.lsp.Config
272+---@field slint_lsp? vim.lsp.Config
273+---@field smarty_ls? vim.lsp.Config
274+---@field smithy_ls? vim.lsp.Config
275+---@field snakeskin_ls? vim.lsp.Config
276+---@field snyk_ls? vim.lsp.Config
277+---@field solang? vim.lsp.Config
278+---@field solargraph? vim.lsp.Config
279+---@field solc? vim.lsp.Config
280+---@field solidity? vim.lsp.Config
281+---@field solidity_ls? vim.lsp.Config
282+---@field solidity_ls_nomicfoundation? vim.lsp.Config
283+---@field somesass_ls? vim.lsp.Config
284+---@field sorbet? vim.lsp.Config
285+---@field sourcekit? vim.lsp.Config
286+---@field sourcery? vim.lsp.Config
287+---@field spectral? vim.lsp.Config
288+---@field spyglassmc_language_server? vim.lsp.Config
289+---@field sqlls? vim.lsp.Config
290+---@field sqls? vim.lsp.Config
291+---@field standardrb? vim.lsp.Config
292+---@field starlark_rust? vim.lsp.Config
293+---@field starpls? vim.lsp.Config
294+---@field statix? vim.lsp.Config
295+---@field steep? vim.lsp.Config
296+---@field stimulus_ls? vim.lsp.Config
297+---@field stylelint_lsp? vim.lsp.Config
298+---@field stylua3p_ls? vim.lsp.Config
299+---@field superhtml? vim.lsp.Config
300+---@field svelte? vim.lsp.Config
301+---@field svlangserver? vim.lsp.Config
302+---@field svls? vim.lsp.Config
303+---@field swift_mesonls? vim.lsp.Config
304+---@field syntax_tree? vim.lsp.Config
305+---@field systemd_ls? vim.lsp.Config
306+---@field tabby_ml? vim.lsp.Config
307+---@field tailwindcss? vim.lsp.Config
308+---@field taplo? vim.lsp.Config
309+---@field tblgen_lsp_server? vim.lsp.Config
310+---@field teal_ls? vim.lsp.Config
311+---@field templ? vim.lsp.Config
312+---@field terraform_lsp? vim.lsp.Config
313+---@field terraformls? vim.lsp.Config
314+---@field texlab? vim.lsp.Config
315+---@field textlsp? vim.lsp.Config
316+---@field tflint? vim.lsp.Config
317+---@field theme_check? vim.lsp.Config
318+---@field thriftls? vim.lsp.Config
319+---@field tilt_ls? vim.lsp.Config
320+---@field tinymist? vim.lsp.Config
321+---@field ts_ls? vim.lsp.Config
322+---@field ts_query_ls? vim.lsp.Config
323+---@field tsp_server? vim.lsp.Config
324+---@field ttags? vim.lsp.Config
325+---@field turbo_ls? vim.lsp.Config
326+---@field turtle_ls? vim.lsp.Config
327+---@field tvm_ffi_navigator? vim.lsp.Config
328+---@field twiggy_language_server? vim.lsp.Config
329+---@field typeprof? vim.lsp.Config
330+---@field typos_lsp? vim.lsp.Config
331+---@field typst_lsp? vim.lsp.Config
332+---@field uiua? vim.lsp.Config
333+---@field ungrammar_languageserver? vim.lsp.Config
334+---@field unison? vim.lsp.Config
335+---@field unocss? vim.lsp.Config
336+---@field uvls? vim.lsp.Config
337+---@field v_analyzer? vim.lsp.Config
338+---@field vacuum? vim.lsp.Config
339+---@field vala_ls? vim.lsp.Config
340+---@field vale_ls? vim.lsp.Config
341+---@field vdmj? vim.lsp.Config
342+---@field vectorcode_server? vim.lsp.Config
343+---@field verible? vim.lsp.Config
344+---@field veridian? vim.lsp.Config
345+---@field veryl_ls? vim.lsp.Config
346+---@field vhdl_ls? vim.lsp.Config
347+---@field vimls? vim.lsp.Config
348+---@field visualforce_ls? vim.lsp.Config
349+---@field vls? vim.lsp.Config
350+---@field volar? vim.lsp.Config
351+---@field vscoqtop? vim.lsp.Config
352+---@field vtsls? vim.lsp.Config
353+---@field vuels? vim.lsp.Config
354+---@field wasm_language_tools? vim.lsp.Config
355+---@field wgsl_analyzer? vim.lsp.Config
356+---@field yamlls? vim.lsp.Config
357+---@field yang_lsp? vim.lsp.Config
358+---@field yls? vim.lsp.Config
359+---@field ziggy? vim.lsp.Config
360+---@field ziggy_schema? vim.lsp.Config
361+---@field zk? vim.lsp.Config
362+---@field zls? vim.lsp.Config