@@ -1,6 +1,143 @@
1# Language support configuration.
1# Language support configuration.
2# See the languages documentation: https://docs.helix-editor.com/master/languages.html
2# See the languages documentation: https://docs.helix-editor.com/master/languages.html
6+awk-language-server = { command = "awk-language-server" }
7+bash-language-server = { command = "bash-language-server", args = ["start"] }
8+bass = { command = "bass", args = ["--lsp"] }
9+bicep-langserver = { command = "bicep-langserver" }
10+cl-lsp = { command = "cl-lsp", args = [ "stdio" ] }
11+clangd = { command = "clangd" }
12+clojure-lsp = { command = "clojure-lsp" }
13+cmake-language-server = { command = "cmake-language-server" }
14+crystalline = { command = "crystalline", args = ["--stdio"] }
15+cs = { command = "cs", args = ["launch", "--contrib", "smithy-language-server", "--", "0"] }
16+cuelsp = { command = "cuelsp" }
17+dart = { command = "dart", args = ["language-server", "--client-id=helix"] }
18+dhall-lsp-server = { command = "dhall-lsp-server" }
19+docker-langserver = { command = "docker-langserver", args = ["--stdio"] }
20+dot-language-server = { command = "dot-language-server", args = ["--stdio"] }
21+elixir-ls = { command = "elixir-ls", config = { elixirLS.dialyzerEnabled = false } }
22+elm-language-server = { command = "elm-language-server" }
23+elvish = { command = "elvish", args = ["-lsp"] }
24+erlang-ls = { command = "erlang_ls" }
25+forc = { command = "forc", args = ["lsp"] }
26+fortls = { command = "fortls", args = ["--lowercase_intrinsics"] }
27+gleam = { command = "gleam", args = ["lsp"] }
28+haskell-language-server = { command = "haskell-language-server-wrapper", args = ["--lsp"] }
29+idris2-lsp = { command = "idris2-lsp" }
30+intelephense = { command = "intelephense", args = ["--stdio"] }
31+jdtls = { command = "jdtls" }
32+jsonnet-language-server = { command = "jsonnet-language-server", args= ["-t", "--lint"] }
33+julia = { command = "julia", timeout = 60, args = [ "--startup-file=no", "--history-file=no", "--quiet", "-e", "using LanguageServer; runserver()", ] }
34+kotlin-language-server = { command = "kotlin-language-server" }
35+lean = { command = "lean", args = [ "--server" ] }
36+markdoc-ls = { command = "markdoc-ls", args = ["--stdio"] }
37+marksman = { command = "marksman", args = ["server"] }
38+metals = { command = "metals", config = { "isHttpEnabled" = true } }
39+mint = { command = "mint", args = ["ls"] }
40+nil = { command = "nil" }
41+nimlangserver = { command = "nimlangserver" }
42+nls = { command = "nls" }
43+ocamllsp = { command = "ocamllsp" }
44+ols = { command = "ols", args = [] }
45+omnisharp = { command = "OmniSharp", args = [ "--languageserver" ] }
46+openscad-lsp = { command = "openscad-lsp", args = ["--stdio"] }
47+pasls = { command = "pasls", args = [] }
48+perlnavigator = { command = "perlnavigator", args= ["--stdio"] }
49+prisma-language-server = { command = "prisma-language-server", args = ["--stdio"] }
50+purescript-language-server = { command = "purescript-language-server", args = ["--stdio"] }
51+pylsp = { command = "pylsp" }
52+qmlls = { command = "qmlls" }
53+r = { command = "R", args = ["--no-echo", "-e", "languageserver::run()"] }
54+racket = { command = "racket", args = ["-l", "racket-langserver"] }
55+regols = { command = "regols" }
56+rescript-language-server = { command = "rescript-language-server", args = ["--stdio"] }
57+robotframework_ls = { command = "robotframework_ls" }
58+serve-d = { command = "serve-d" }
59+slint-lsp = { command = "slint-lsp", args = [] }
60+solargraph = { command = "solargraph", args = ["stdio"] }
61+solc = { command = "solc", args = ["--lsp"] }
62+sourcekit-lsp = { command = "sourcekit-lsp" }
63+svelteserver = { command = "svelteserver", args = ["--stdio"] }
64+svlangserver = { command = "svlangserver", args = [] }
65+swipl = { command = "swipl", args = [ "-g", "use_module(library(lsp_server))", "-g", "lsp_server:main", "-t", "halt", "--", "stdio" ] }
66+taplo = { command = "taplo", args = ["lsp", "stdio"] }
67+terraform-ls = { command = "terraform-ls", args = ["serve"] }
68+texlab = { command = "texlab" }
69+vala-language-server = { command = "vala-language-server" }
70+vhdl_ls = { command = "vhdl_ls", args = [] }
71+vlang-language-server = { command = "v", args = ["ls"] }
72+vscode-css-language-server = { command = "vscode-css-language-server", args = ["--stdio"], config = { "provideFormatter" = true }}
73+vscode-html-language-server = { command = "vscode-html-language-server", args = ["--stdio"], config = { provideFormatter = true } }
74+vscode-json-language-server = { command = "vscode-json-language-server", args = ["--stdio"], config = { provideFormatter = true } }
75+vuels = { command = "vls" }
76+wgsl_analyzer = { command = "wgsl_analyzer" }
77+yaml-language-server = { command = "yaml-language-server", args = ["--stdio"] }
78+zls = { command = "zls" }
81+[language-server.lua-language-server]
82+command = "lua-language-server"
84+[language-server.lua-language-server.config.Lua.hint]
93+[language-server.gopls]
96+[language-server.gopls.config.hints]
97+assignVariableTypes = true
98+compositeLiteralFields = true
100+functionTypeParameters = true
101+parameterNames = true
102+rangeVariableTypes = true
105+[language-server.rust-analyzer]
106+command = "rust-analyzer"
108+[language-server.rust-analyzer.config]
109+inlayHints.bindingModeHints.enable = false
110+inlayHints.closingBraceHints.minLines = 10
111+inlayHints.closureReturnTypeHints.enable = "with_block"
112+inlayHints.discriminantHints.enable = "fieldless"
113+inlayHints.lifetimeElisionHints.enable = "skip_trivial"
114+inlayHints.typeHints.hideClosureInitialization = false
117+[language-server.typescript-language-server]
118+command = "typescript-language-server"
120+config.hostInfo = "helix"
122+[language-server.typescript-language-server.config.typescript.inlayHints]
123+includeInlayEnumMemberValueHints = true
124+includeInlayFunctionLikeReturnTypeHints = true
125+includeInlayFunctionParameterTypeHints = true
126+includeInlayParameterNameHints = "all"
127+includeInlayParameterNameHintsWhenArgumentMatchesName = true
128+includeInlayPropertyDeclarationTypeHints = true
129+includeInlayVariableTypeHints = true
131+[language-server.typescript-language-server.config.javascript.inlayHints]
132+includeInlayEnumMemberValueHints = true
133+includeInlayFunctionLikeReturnTypeHints = true
134+includeInlayFunctionParameterTypeHints = true
135+includeInlayParameterNameHints = "all"
136+includeInlayParameterNameHintsWhenArgumentMatchesName = true
137+includeInlayPropertyDeclarationTypeHints = true
138+includeInlayVariableTypeHints = true
4[[language]]
141[[language]]
5name = "rust"
142name = "rust"
6scope = "source.rust"
143scope = "source.rust"
@@ -9,7 +146,7 @@ file-types = ["rs"]
9roots = ["Cargo.toml", "Cargo.lock"]
146roots = ["Cargo.toml", "Cargo.lock"]
10auto-format = true
147auto-format = true
11comment-token = "//"
148comment-token = "//"
12−language-server = { command = "rust-analyzer" }
149+language-servers = [ "rust-analyzer" ]
13indent = { tab-width = 4, unit = " " }
150indent = { tab-width = 4, unit = " " }
15[language.auto-pairs]
152[language.auto-pairs]
@@ -19,14 +156,6 @@ indent = { tab-width = 4, unit = " " }
23−inlayHints.bindingModeHints.enable = false
24−inlayHints.closingBraceHints.minLines = 10
25−inlayHints.closureReturnTypeHints.enable = "with_block"
26−inlayHints.discriminantHints.enable = "fieldless"
27−inlayHints.lifetimeElisionHints.enable = "skip_trivial"
28−inlayHints.typeHints.hideClosureInitialization = false
30[language.debugger]
159[language.debugger]
31name = "lldb-vscode"
160name = "lldb-vscode"
32transport = "stdio"
161transport = "stdio"
@@ -65,7 +194,7 @@ name = "sway"
65scope = "source.sway"
194scope = "source.sway"
66injection-regex = "sway"
195injection-regex = "sway"
67file-types = ["sw"]
196file-types = ["sw"]
68−language-server = { command = "forc", args = ["lsp"] }
197+language-servers = [ "forc" ]
69roots = ["Forc.toml", "Forc.lock"]
198roots = ["Forc.toml", "Forc.lock"]
70indent = { tab-width = 4, unit = " " }
199indent = { tab-width = 4, unit = " " }
71comment-token = "//"
200comment-token = "//"
@@ -81,7 +210,7 @@ injection-regex = "toml"
81file-types = ["toml", "poetry.lock"]
210file-types = ["toml", "poetry.lock"]
82roots = []
211roots = []
83comment-token = "#"
212comment-token = "#"
84−language-server = { command = "taplo", args = ["lsp", "stdio"] }
213+language-servers = [ "taplo" ]
85indent = { tab-width = 2, unit = " " }
214indent = { tab-width = 2, unit = " " }
87[[grammar]]
216[[grammar]]
@@ -95,7 +224,7 @@ injection-regex = "awk"
95file-types = ["awk", "gawk", "nawk", "mawk"]
224file-types = ["awk", "gawk", "nawk", "mawk"]
96roots = []
225roots = []
97comment-token = "#"
226comment-token = "#"
98−language-server = { command = "awk-language-server" }
227+language-servers = [ "awk-language-server" ]
99indent = { tab-width = 2, unit = " " }
228indent = { tab-width = 2, unit = " " }
101[[grammar]]
230[[grammar]]
@@ -123,8 +252,7 @@ file-types = ["ex", "exs", "mix.lock"]
123shebangs = ["elixir"]
252shebangs = ["elixir"]
124roots = ["mix.exs", "mix.lock"]
253roots = ["mix.exs", "mix.lock"]
125comment-token = "#"
254comment-token = "#"
126−language-server = { command = "elixir-ls" }
255+language-servers = [ "elixir-ls" ]
127−config = { elixirLS.dialyzerEnabled = false }
128indent = { tab-width = 2, unit = " " }
256indent = { tab-width = 2, unit = " " }
130[[grammar]]
258[[grammar]]
@@ -153,7 +281,7 @@ file-types = ["mint"]
153shebangs = []
281shebangs = []
154roots = []
282roots = []
155comment-token = "//"
283comment-token = "//"
156−language-server = { command = "mint", args = ["ls"] }
284+language-servers = [ "mint" ]
157indent = { tab-width = 2, unit = " " }
285indent = { tab-width = 2, unit = " " }
159[[language]]
287[[language]]
@@ -162,9 +290,8 @@ scope = "source.json"
162injection-regex = "json"
290injection-regex = "json"
163file-types = ["json", "jsonc", "arb", "ipynb", "geojson"]
291file-types = ["json", "jsonc", "arb", "ipynb", "geojson"]
164roots = []
292roots = []
165−language-server = { command = "vscode-json-language-server", args = ["--stdio"] }
293+language-servers = [ "vscode-json-language-server" ]
166auto-format = true
294auto-format = true
167−config = { "provideFormatter" = true }
168indent = { tab-width = 2, unit = " " }
295indent = { tab-width = 2, unit = " " }
170[[grammar]]
297[[grammar]]
@@ -178,7 +305,7 @@ injection-regex = "c"
178file-types = ["c"] # TODO: ["h"]
305file-types = ["c"] # TODO: ["h"]
179roots = []
306roots = []
180comment-token = "//"
307comment-token = "//"
181−language-server = { command = "clangd" }
308+language-servers = [ "clangd" ]
182indent = { tab-width = 2, unit = " " }
309indent = { tab-width = 2, unit = " " }
184[language.debugger]
311[language.debugger]
@@ -215,7 +342,7 @@ injection-regex = "cpp"
215file-types = ["cc", "hh", "c++", "cpp", "hpp", "h", "ipp", "tpp", "cxx", "hxx", "ixx", "txx", "ino", "C", "H", "cu", "cuh"]
342file-types = ["cc", "hh", "c++", "cpp", "hpp", "h", "ipp", "tpp", "cxx", "hxx", "ixx", "txx", "ino", "C", "H", "cu", "cuh"]
216roots = []
343roots = []
217comment-token = "//"
344comment-token = "//"
218−language-server = { command = "clangd" }
345+language-servers = [ "clangd" ]
219indent = { tab-width = 2, unit = " " }
346indent = { tab-width = 2, unit = " " }
221[language.debugger]
348[language.debugger]
@@ -253,7 +380,7 @@ roots = ["shard.yml", "shard.lock"]
253comment-token = "#"
380comment-token = "#"
254indent = { tab-width = 2, unit = " " }
381indent = { tab-width = 2, unit = " " }
255grammar = "ruby"
382grammar = "ruby"
256−language-server = { command = "crystalline", args = ["--stdio"] }
383+language-servers = [ "crystalline" ]
258[[language]]
385[[language]]
259name = "c-sharp"
386name = "c-sharp"
@@ -263,7 +390,7 @@ file-types = ["cs"]
263roots = ["sln", "csproj"]
390roots = ["sln", "csproj"]
264comment-token = "//"
391comment-token = "//"
265indent = { tab-width = 4, unit = "\t" }
392indent = { tab-width = 4, unit = "\t" }
266−language-server = { command = "OmniSharp", args = [ "--languageserver" ] }
393+language-servers = [ "omnisharp" ]
268[language.debugger]
395[language.debugger]
269name = "netcoredbg"
396name = "netcoredbg"
@@ -296,18 +423,10 @@ file-types = ["go"]
296roots = ["go.work", "go.mod"]
423roots = ["go.work", "go.mod"]
297auto-format = true
424auto-format = true
298comment-token = "//"
425comment-token = "//"
299−language-server = { command = "gopls" }
426+language-servers = [ "gopls" ]
300# TODO: gopls needs utf-8 offsets?
427# TODO: gopls needs utf-8 offsets?
301indent = { tab-width = 4, unit = "\t" }
428indent = { tab-width = 4, unit = "\t" }
303−[language.config.hints]
304−assignVariableTypes = true
305−compositeLiteralFields = true
306−constantValues = true
307−functionTypeParameters = true
308−parameterNames = true
309−rangeVariableTypes = true
311[language.debugger]
430[language.debugger]
312name = "go"
431name = "go"
313transport = "tcp"
432transport = "tcp"
@@ -351,7 +470,7 @@ file-types = ["go.mod"]
351roots = []
470roots = []
352auto-format = true
471auto-format = true
353comment-token = "//"
472comment-token = "//"
354−language-server = { command = "gopls" }
473+language-servers = [ "gopls" ]
355indent = { tab-width = 4, unit = "\t" }
474indent = { tab-width = 4, unit = "\t" }
357[[grammar]]
476[[grammar]]
@@ -365,7 +484,7 @@ injection-regex = "gotmpl"
365file-types = ["gotmpl"]
484file-types = ["gotmpl"]
366roots = []
485roots = []
367comment-token = "//"
486comment-token = "//"
368−language-server = { command = "gopls" }
487+language-servers = [ "gopls" ]
369indent = { tab-width = 2, unit = " " }
488indent = { tab-width = 2, unit = " " }
371[[grammar]]
490[[grammar]]
@@ -380,7 +499,7 @@ file-types = ["go.work"]
380roots = []
499roots = []
381auto-format = true
500auto-format = true
382comment-token = "//"
501comment-token = "//"
383−language-server = { command = "gopls" }
502+language-servers = [ "gopls" ]
384indent = { tab-width = 4, unit = "\t" }
503indent = { tab-width = 4, unit = "\t" }
386[[grammar]]
505[[grammar]]
@@ -391,26 +510,15 @@ source = { git = "https://github.com/omertuc/tree-sitter-go-work", rev = "6dd9dd
391name = "javascript"
510name = "javascript"
392scope = "source.js"
511scope = "source.js"
393injection-regex = "(js|javascript)"
512injection-regex = "(js|javascript)"
513+language-id = "javascript"
394file-types = ["js", "mjs", "cjs"]
514file-types = ["js", "mjs", "cjs"]
395shebangs = ["node"]
515shebangs = ["node"]
396roots = []
516roots = []
397comment-token = "//"
517comment-token = "//"
398# TODO: highlights-params
518# TODO: highlights-params
399−language-server = { command = "typescript-language-server", args = ["--stdio"], language-id = "javascript" }
519+language-servers = [ "typescript-language-server" ]
400indent = { tab-width = 2, unit = " " }
520indent = { tab-width = 2, unit = " " }
405−[language.config.javascript.inlayHints]
406−includeInlayEnumMemberValueHints = true
407−includeInlayFunctionLikeReturnTypeHints = true
408−includeInlayFunctionParameterTypeHints = true
409−includeInlayParameterNameHints = "all"
410−includeInlayParameterNameHintsWhenArgumentMatchesName = true
411−includeInlayPropertyDeclarationTypeHints = true
412−includeInlayVariableTypeHints = true
414[language.debugger]
522[language.debugger]
415name = "node-debug2"
523name = "node-debug2"
416transport = "stdio"
524transport = "stdio"
@@ -431,48 +539,26 @@ source = { git = "https://github.com/tree-sitter/tree-sitter-javascript", rev =
431name = "jsx"
539name = "jsx"
432scope = "source.jsx"
540scope = "source.jsx"
433injection-regex = "jsx"
541injection-regex = "jsx"
542+language-id = "javascriptreact"
434file-types = ["jsx"]
543file-types = ["jsx"]
435roots = []
544roots = []
436comment-token = "//"
545comment-token = "//"
437−language-server = { command = "typescript-language-server", args = ["--stdio"], language-id = "javascriptreact" }
546+language-servers = [ "typescript-language-server" ]
438indent = { tab-width = 2, unit = " " }
547indent = { tab-width = 2, unit = " " }
439grammar = "javascript"
548grammar = "javascript"
444−[language.config.javascript.inlayHints]
445−includeInlayEnumMemberValueHints = true
446−includeInlayFunctionLikeReturnTypeHints = true
447−includeInlayFunctionParameterTypeHints = true
448−includeInlayParameterNameHints = "all"
449−includeInlayParameterNameHintsWhenArgumentMatchesName = true
450−includeInlayPropertyDeclarationTypeHints = true
451−includeInlayVariableTypeHints = true
453[[language]]
550[[language]]
454name = "typescript"
551name = "typescript"
455scope = "source.ts"
552scope = "source.ts"
456injection-regex = "(ts|typescript)"
553injection-regex = "(ts|typescript)"
457file-types = ["ts", "mts", "cts"]
554file-types = ["ts", "mts", "cts"]
555+language-id = "typescript"
458shebangs = []
556shebangs = []
459roots = []
557roots = []
460# TODO: highlights-params
558# TODO: highlights-params
461−language-server = { command = "typescript-language-server", args = ["--stdio"], language-id = "typescript"}
559+language-servers = [ "typescript-language-server" ]
462indent = { tab-width = 2, unit = " " }
560indent = { tab-width = 2, unit = " " }
467−[language.config.typescript.inlayHints]
468−includeInlayEnumMemberValueHints = true
469−includeInlayFunctionLikeReturnTypeHints = true
470−includeInlayFunctionParameterTypeHints = true
471−includeInlayParameterNameHints = "all"
472−includeInlayParameterNameHintsWhenArgumentMatchesName = true
473−includeInlayPropertyDeclarationTypeHints = true
474−includeInlayVariableTypeHints = true
476[[grammar]]
562[[grammar]]
477name = "typescript"
563name = "typescript"
478source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "6aac031ad88dd6317f02ac0bb27d099a553a7d8c", subpath = "typescript" }
564source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "6aac031ad88dd6317f02ac0bb27d099a553a7d8c", subpath = "typescript" }
@@ -481,24 +567,13 @@ source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev =
481name = "tsx"
567name = "tsx"
482scope = "source.tsx"
568scope = "source.tsx"
483injection-regex = "(tsx)" # |typescript
569injection-regex = "(tsx)" # |typescript
570+language-id = "typescriptreact"
484file-types = ["tsx"]
571file-types = ["tsx"]
485roots = []
572roots = []
486# TODO: highlights-params
573# TODO: highlights-params
487−language-server = { command = "typescript-language-server", args = ["--stdio"], language-id = "typescriptreact" }
574+language-servers = [ "typescript-language-server" ]
488indent = { tab-width = 2, unit = " " }
575indent = { tab-width = 2, unit = " " }
493−[language.config.typescript.inlayHints]
494−includeInlayEnumMemberValueHints = true
495−includeInlayFunctionLikeReturnTypeHints = true
496−includeInlayFunctionParameterTypeHints = true
497−includeInlayParameterNameHints = "all"
498−includeInlayParameterNameHintsWhenArgumentMatchesName = true
499−includeInlayPropertyDeclarationTypeHints = true
500−includeInlayVariableTypeHints = true
502[[grammar]]
577[[grammar]]
503name = "tsx"
578name = "tsx"
504source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "6aac031ad88dd6317f02ac0bb27d099a553a7d8c", subpath = "tsx" }
579source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "6aac031ad88dd6317f02ac0bb27d099a553a7d8c", subpath = "tsx" }
@@ -509,9 +584,8 @@ scope = "source.css"
509injection-regex = "css"
584injection-regex = "css"
510file-types = ["css", "scss"]
585file-types = ["css", "scss"]
511roots = []
586roots = []
512−language-server = { command = "vscode-css-language-server", args = ["--stdio"] }
587+language-servers = [ "vscode-css-language-server" ]
513auto-format = true
588auto-format = true
514−config = { "provideFormatter" = true }
515indent = { tab-width = 2, unit = " " }
589indent = { tab-width = 2, unit = " " }
517[[grammar]]
591[[grammar]]
@@ -524,9 +598,8 @@ scope = "source.scss"
524injection-regex = "scss"
598injection-regex = "scss"
525file-types = ["scss"]
599file-types = ["scss"]
526roots = []
600roots = []
527−language-server = { command = "vscode-css-language-server", args = ["--stdio"] }
601+language-servers = [ "vscode-css-language-server" ]
528auto-format = true
602auto-format = true
529−config = { "provideFormatter" = true }
530indent = { tab-width = 2, unit = " " }
603indent = { tab-width = 2, unit = " " }
532[[grammar]]
605[[grammar]]
@@ -539,9 +612,8 @@ scope = "text.html.basic"
539injection-regex = "html"
612injection-regex = "html"
540file-types = ["html"]
613file-types = ["html"]
541roots = []
614roots = []
542−language-server = { command = "vscode-html-language-server", args = ["--stdio"] }
615+language-servers = [ "vscode-html-language-server" ]
543auto-format = true
616auto-format = true
544−config = { "provideFormatter" = true }
545indent = { tab-width = 2, unit = " " }
617indent = { tab-width = 2, unit = " " }
547[[grammar]]
619[[grammar]]
@@ -556,7 +628,7 @@ file-types = ["py","pyi","py3","pyw","ptl",".pythonstartup",".pythonrc","SConstr
556shebangs = ["python"]
628shebangs = ["python"]
557roots = []
629roots = []
558comment-token = "#"
630comment-token = "#"
559−language-server = { command = "pylsp" }
631+language-servers = [ "pylsp" ]
560# TODO: pyls needs utf-8 offsets
632# TODO: pyls needs utf-8 offsets
561indent = { tab-width = 4, unit = " " }
633indent = { tab-width = 4, unit = " " }
@@ -572,7 +644,7 @@ file-types = ["ncl"]
572shebangs = []
644shebangs = []
573roots = []
645roots = []
574comment-token = "#"
646comment-token = "#"
575−language-server = { command = "nls" }
647+language-servers = [ "nls" ]
576indent = { tab-width = 2, unit = " " }
648indent = { tab-width = 2, unit = " " }
578[[grammar]]
650[[grammar]]
@@ -587,7 +659,7 @@ file-types = ["nix"]
587shebangs = []
659shebangs = []
588roots = []
660roots = []
589comment-token = "#"
661comment-token = "#"
590−language-server = { command = "nil" }
662+language-servers = [ "nil" ]
591indent = { tab-width = 2, unit = " " }
663indent = { tab-width = 2, unit = " " }
593[[grammar]]
665[[grammar]]
@@ -602,7 +674,7 @@ file-types = ["rb", "rake", "rakefile", "irb", "gemfile", "gemspec", "Rakefile",
602shebangs = ["ruby"]
674shebangs = ["ruby"]
603roots = []
675roots = []
604comment-token = "#"
676comment-token = "#"
605−language-server = { command = "solargraph", args = ["stdio"] }
677+language-servers = [ "solargraph" ]
606indent = { tab-width = 2, unit = " " }
678indent = { tab-width = 2, unit = " " }
608[[grammar]]
680[[grammar]]
@@ -617,7 +689,7 @@ file-types = ["sh", "bash", "zsh", ".bash_login", ".bash_logout", ".bash_profile
617shebangs = ["sh", "bash", "dash", "zsh"]
689shebangs = ["sh", "bash", "dash", "zsh"]
618roots = []
690roots = []
619comment-token = "#"
691comment-token = "#"
620−language-server = { command = "bash-language-server", args = ["start"] }
692+language-servers = [ "bash-language-server" ]
621indent = { tab-width = 2, unit = " " }
693indent = { tab-width = 2, unit = " " }
623[[grammar]]
695[[grammar]]
@@ -631,7 +703,7 @@ injection-regex = "php"
631file-types = ["php", "inc"]
703file-types = ["php", "inc"]
632shebangs = ["php"]
704shebangs = ["php"]
633roots = ["composer.json", "index.php"]
705roots = ["composer.json", "index.php"]
634−language-server = { command = "intelephense", args = ["--stdio"] }
706+language-servers = [ "intelephense" ]
635indent = { tab-width = 4, unit = " " }
707indent = { tab-width = 4, unit = " " }
637[[grammar]]
709[[grammar]]
@@ -657,7 +729,7 @@ injection-regex = "tex"
657file-types = ["tex", "sty", "cls"]
729file-types = ["tex", "sty", "cls"]
658roots = []
730roots = []
659comment-token = "%"
731comment-token = "%"
660−language-server = { command = "texlab" }
732+language-servers = [ "texlab" ]
661indent = { tab-width = 4, unit = "\t" }
733indent = { tab-width = 4, unit = "\t" }
663[[grammar]]
735[[grammar]]
@@ -671,7 +743,7 @@ injection-regex = "bib"
671file-types = ["bib"]
743file-types = ["bib"]
672roots = []
744roots = []
673comment-token = "%"
745comment-token = "%"
674−language-server = { command = "texlab" }
746+language-servers = [ "texlab" ]
675indent = { tab-width = 4, unit = "\t" }
747indent = { tab-width = 4, unit = "\t" }
676auto-format = true
748auto-format = true
@@ -699,7 +771,7 @@ injection-regex = "lean"
699file-types = ["lean"]
771file-types = ["lean"]
700roots = [ "lakefile.lean" ]
772roots = [ "lakefile.lean" ]
701comment-token = "--"
773comment-token = "--"
702−language-server = { command = "lean", args = [ "--server" ] }
774+language-servers = [ "lean" ]
703indent = { tab-width = 2, unit = " " }
775indent = { tab-width = 2, unit = " " }
705[[grammar]]
777[[grammar]]
@@ -713,13 +785,7 @@ injection-regex = "julia"
713file-types = ["jl"]
785file-types = ["jl"]
714roots = ["Manifest.toml", "Project.toml"]
786roots = ["Manifest.toml", "Project.toml"]
715comment-token = "#"
787comment-token = "#"
716−language-server = { command = "julia", timeout = 60, args = [
788+language-servers = [ "julia" ]
717− "--startup-file=no",
718− "--history-file=no",
721− "using LanguageServer; runserver()",
723indent = { tab-width = 4, unit = " " }
789indent = { tab-width = 4, unit = " " }
725[[grammar]]
791[[grammar]]
@@ -732,7 +798,7 @@ scope = "source.java"
732injection-regex = "java"
798injection-regex = "java"
733file-types = ["java"]
799file-types = ["java"]
734roots = ["pom.xml", "build.gradle", "build.gradle.kts"]
800roots = ["pom.xml", "build.gradle", "build.gradle.kts"]
735−language-server = { command = "jdtls" }
801+language-servers = [ "jdtls" ]
736indent = { tab-width = 4, unit = " " }
802indent = { tab-width = 4, unit = " " }
738[[grammar]]
804[[grammar]]
@@ -773,7 +839,7 @@ file-types = ["ml"]
773shebangs = []
839shebangs = []
774roots = []
840roots = []
775comment-token = "(**)"
841comment-token = "(**)"
776−language-server = { command = "ocamllsp" }
842+language-servers = [ "ocamllsp" ]
777indent = { tab-width = 2, unit = " " }
843indent = { tab-width = 2, unit = " " }
779[language.auto-pairs]
845[language.auto-pairs]
@@ -794,7 +860,7 @@ file-types = ["mli"]
794shebangs = []
860shebangs = []
795roots = []
861roots = []
796comment-token = "(**)"
862comment-token = "(**)"
797−language-server = { command = "ocamllsp" }
863+language-servers = [ "ocamllsp" ]
798indent = { tab-width = 2, unit = " " }
864indent = { tab-width = 2, unit = " " }
800[language.auto-pairs]
866[language.auto-pairs]
@@ -817,15 +883,7 @@ shebangs = ["lua"]
817roots = [".luarc.json", ".luacheckrc", ".stylua.toml", "selene.toml", ".git"]
883roots = [".luarc.json", ".luacheckrc", ".stylua.toml", "selene.toml", ".git"]
818comment-token = "--"
884comment-token = "--"
819indent = { tab-width = 2, unit = " " }
885indent = { tab-width = 2, unit = " " }
820−language-server = { command = "lua-language-server", args = [] }
886+language-servers = [ "lua-language-server" ]
822−[language.config.Lua.hint]
824−arrayIndex = "Enable"
830[[grammar]]
888[[grammar]]
831name = "lua"
889name = "lua"
@@ -838,7 +896,7 @@ injection-regex = "svelte"
838file-types = ["svelte"]
896file-types = ["svelte"]
839roots = []
897roots = []
840indent = { tab-width = 2, unit = " " }
898indent = { tab-width = 2, unit = " " }
841−language-server = { command = "svelteserver", args = ["--stdio"] }
899+language-servers = [ "svelteserver" ]
843[[grammar]]
901[[grammar]]
844name = "svelte"
902name = "svelte"
@@ -851,7 +909,7 @@ injection-regex = "vue"
851file-types = ["vue"]
909file-types = ["vue"]
852roots = ["package.json", "vue.config.js"]
910roots = ["package.json", "vue.config.js"]
853indent = { tab-width = 2, unit = " " }
911indent = { tab-width = 2, unit = " " }
854−language-server = { command = "vls" }
912+language-servers = [ "vuels" ]
856[[grammar]]
914[[grammar]]
857name = "vue"
915name = "vue"
@@ -864,7 +922,7 @@ file-types = ["yml", "yaml"]
864roots = []
922roots = []
865comment-token = "#"
923comment-token = "#"
866indent = { tab-width = 2, unit = " " }
924indent = { tab-width = 2, unit = " " }
867−language-server = { command = "yaml-language-server", args = ["--stdio"] }
925+language-servers = [ "yaml-language-server" ]
868injection-regex = "yml|yaml"
926injection-regex = "yml|yaml"
870[[grammar]]
928[[grammar]]
@@ -878,7 +936,7 @@ injection-regex = "haskell"
878file-types = ["hs", "hs-boot"]
936file-types = ["hs", "hs-boot"]
879roots = ["Setup.hs", "stack.yaml", "cabal.project"]
937roots = ["Setup.hs", "stack.yaml", "cabal.project"]
880comment-token = "--"
938comment-token = "--"
881−language-server = { command = "haskell-language-server-wrapper", args = ["--lsp"] }
939+language-servers = [ "haskell-language-server" ]
882indent = { tab-width = 2, unit = " " }
940indent = { tab-width = 2, unit = " " }
884[[grammar]]
942[[grammar]]
@@ -892,7 +950,7 @@ injection-regex = "purescript"
892file-types = ["purs"]
950file-types = ["purs"]
893roots = ["spago.dhall", "bower.json"]
951roots = ["spago.dhall", "bower.json"]
894comment-token = "--"
952comment-token = "--"
895−language-server = { command = "purescript-language-server", args = ["--stdio"] }
953+language-servers = [ "purescript-language-server" ]
896indent = { tab-width = 2, unit = " " }
954indent = { tab-width = 2, unit = " " }
897auto-format = true
955auto-format = true
898formatter = { command = "purs-tidy", args = ["format"] }
956formatter = { command = "purs-tidy", args = ["format"] }
@@ -906,7 +964,7 @@ file-types = ["zig"]
906roots = ["build.zig"]
964roots = ["build.zig"]
907auto-format = true
965auto-format = true
908comment-token = "//"
966comment-token = "//"
909−language-server = { command = "zls" }
967+language-servers = [ "zls" ]
910indent = { tab-width = 4, unit = " " }
968indent = { tab-width = 4, unit = " " }
911formatter = { command = "zig" , args = ["fmt", "--stdin"] }
969formatter = { command = "zig" , args = ["fmt", "--stdin"] }
@@ -944,10 +1002,7 @@ roots = []
944file-types = ["pl", "prolog"]
1002file-types = ["pl", "prolog"]
945shebangs = ["swipl"]
1003shebangs = ["swipl"]
946comment-token = "%"
1004comment-token = "%"
947−language-server = { command = "swipl", args = [
1005+language-servers = [ "swipl" ]
948− "-g", "use_module(library(lsp_server))",
949− "-g", "lsp_server:main",
950− "-t", "halt", "--", "stdio"] }
952[[language]]
1007[[language]]
953name = "tsq"
1008name = "tsq"
@@ -969,7 +1024,7 @@ file-types = ["cmake", "CMakeLists.txt"]
969roots = []
1024roots = []
970comment-token = "#"
1025comment-token = "#"
971indent = { tab-width = 2, unit = " " }
1026indent = { tab-width = 2, unit = " " }
972−language-server = { command = "cmake-language-server" }
1027+language-servers = [ "cmake-language-server" ]
973injection-regex = "cmake"
1028injection-regex = "cmake"
975[[grammar]]
1030[[grammar]]
@@ -1009,7 +1064,7 @@ file-types = ["pl", "pm", "t"]
1009shebangs = ["perl"]
1064shebangs = ["perl"]
1010roots = []
1065roots = []
1011comment-token = "#"
1066comment-token = "#"
1012−language-server = { command = "perlnavigator", args= ["--stdio"] }
1067+language-servers = [ "perlnavigator" ]
1013indent = { tab-width = 2, unit = " " }
1068indent = { tab-width = 2, unit = " " }
1015[[grammar]]
1070[[grammar]]
@@ -1023,7 +1078,7 @@ roots = []
1023file-types = ["rkt", "rktd", "rktl", "scrbl"]
1078file-types = ["rkt", "rktd", "rktl", "scrbl"]
1024shebangs = ["racket"]
1079shebangs = ["racket"]
1025comment-token = ";"
1080comment-token = ";"
1026−language-server = { command = "racket", args = ["-l", "racket-langserver"] }
1081+language-servers = [ "racket" ]
1027grammar = "scheme"
1082grammar = "scheme"
1029[[language]]
1084[[language]]
@@ -1034,7 +1089,7 @@ file-types = ["lisp", "asd", "cl", "l", "lsp", "ny", "podsl", "sexp"]
1034shebangs = ["lisp", "sbcl", "ccl", "clisp", "ecl"]
1089shebangs = ["lisp", "sbcl", "ccl", "clisp", "ecl"]
1035comment-token = ";"
1090comment-token = ";"
1036indent = { tab-width = 2, unit = " " }
1091indent = { tab-width = 2, unit = " " }
1037−language-server = { command = "cl-lsp", args = [ "stdio" ] }
1092+language-servers = [ "cl-lsp" ]
1038grammar = "scheme"
1093grammar = "scheme"
1040[language.auto-pairs]
1095[language.auto-pairs]
@@ -1060,7 +1115,7 @@ scope = "source.wgsl"
1060file-types = ["wgsl"]
1115file-types = ["wgsl"]
1061roots = []
1116roots = []
1062comment-token = "//"
1117comment-token = "//"
1063−language-server = { command = "wgsl_analyzer" }
1118+language-servers = [ "wgsl_analyzer" ]
1064indent = { tab-width = 4, unit = " " }
1119indent = { tab-width = 4, unit = " " }
1066[[grammar]]
1121[[grammar]]
@@ -1123,7 +1178,7 @@ scope = "source.md"
1123injection-regex = "md|markdown"
1178injection-regex = "md|markdown"
1124file-types = ["md", "markdown", "PULLREQ_EDITMSG"]
1179file-types = ["md", "markdown", "PULLREQ_EDITMSG"]
1125roots = [".marksman.toml"]
1180roots = [".marksman.toml"]
1126−language-server = { command = "marksman", args=["server"] }
1181+language-servers = [ "marksman" ]
1127indent = { tab-width = 2, unit = " " }
1182indent = { tab-width = 2, unit = " " }
1129[[grammar]]
1184[[grammar]]
@@ -1149,7 +1204,7 @@ file-types = ["dart"]
1149roots = ["pubspec.yaml"]
1204roots = ["pubspec.yaml"]
1150auto-format = true
1205auto-format = true
1151comment-token = "//"
1206comment-token = "//"
1152−language-server = { command = "dart", args = ["language-server", "--client-id=helix"] }
1207+language-servers = [ "dart" ]
1153indent = { tab-width = 2, unit = " " }
1208indent = { tab-width = 2, unit = " " }
1155[[grammar]]
1210[[grammar]]
@@ -1163,8 +1218,7 @@ roots = ["build.sbt", "build.sc", "build.gradle", "build.gradle.kts", "pom.xml",
1163file-types = ["scala", "sbt", "sc"]
1218file-types = ["scala", "sbt", "sc"]
1164comment-token = "//"
1219comment-token = "//"
1165indent = { tab-width = 2, unit = " " }
1220indent = { tab-width = 2, unit = " " }
1166−language-server = { command = "metals" }
1221+language-servers = [ "metals" ]
1167−config = { "isHttpEnabled" = true }
1169[[grammar]]
1223[[grammar]]
1170name = "scala"
1224name = "scala"
@@ -1178,7 +1232,7 @@ roots = ["Dockerfile", "Containerfile"]
1178file-types = ["Dockerfile", "dockerfile", "Containerfile", "containerfile"]
1232file-types = ["Dockerfile", "dockerfile", "Containerfile", "containerfile"]
1179comment-token = "#"
1233comment-token = "#"
1180indent = { tab-width = 2, unit = " " }
1234indent = { tab-width = 2, unit = " " }
1181−language-server = { command = "docker-langserver", args = ["--stdio"] }
1235+language-servers = [ "docker-langserver" ]
1183[[grammar]]
1237[[grammar]]
1184name = "dockerfile"
1238name = "dockerfile"
@@ -1218,7 +1272,7 @@ roots = []
1218file-types = ["git-rebase-todo"]
1272file-types = ["git-rebase-todo"]
1219injection-regex = "git-rebase"
1273injection-regex = "git-rebase"
1220comment-token = "#"
1274comment-token = "#"
1221−indent = { tab-width = 2, unit = " " }
1275+indent = { tab-width = 2, unit = "y" }
1223[[grammar]]
1277[[grammar]]
1224name = "git-rebase"
1278name = "git-rebase"
@@ -1294,7 +1348,7 @@ file-types = ["elm"]
1294roots = ["elm.json"]
1348roots = ["elm.json"]
1295auto-format = true
1349auto-format = true
1296comment-token = "--"
1350comment-token = "--"
1297−language-server = { command = "elm-language-server" }
1351+language-servers = [ "elm-language-server" ]
1298indent = { tab-width = 4, unit = " " }
1352indent = { tab-width = 4, unit = " " }
1300[[grammar]]
1354[[grammar]]
@@ -1320,7 +1374,7 @@ file-types = ["res"]
1320roots = ["bsconfig.json"]
1374roots = ["bsconfig.json"]
1321auto-format = true
1375auto-format = true
1322comment-token = "//"
1376comment-token = "//"
1323−language-server = { command = "rescript-language-server", args = ["--stdio"] }
1377+language-servers = [ "rescript-language-server" ]
1324indent = { tab-width = 2, unit = " " }
1378indent = { tab-width = 2, unit = " " }
1326[[grammar]]
1380[[grammar]]
@@ -1336,7 +1390,7 @@ roots = ["rebar.config"]
1336shebangs = ["escript"]
1390shebangs = ["escript"]
1337comment-token = "%%"
1391comment-token = "%%"
1338indent = { tab-width = 4, unit = " " }
1392indent = { tab-width = 4, unit = " " }
1339−language-server = { command = "erlang_ls" }
1393+language-servers = [ "erlang-ls" ]
1341[language.auto-pairs]
1395[language.auto-pairs]
1342'(' = ')'
1396'(' = ')'
@@ -1357,7 +1411,7 @@ file-types = ["kt", "kts"]
1357roots = ["settings.gradle", "settings.gradle.kts"]
1411roots = ["settings.gradle", "settings.gradle.kts"]
1358comment-token = "//"
1412comment-token = "//"
1359indent = { tab-width = 4, unit = " " }
1413indent = { tab-width = 4, unit = " " }
1360−language-server = { command = "kotlin-language-server" }
1414+language-servers = [ "kotlin-language-server" ]
1362[[grammar]]
1416[[grammar]]
1363name = "kotlin"
1417name = "kotlin"
@@ -1367,11 +1421,12 @@ source = { git = "https://github.com/fwcd/tree-sitter-kotlin", rev = "a4f71eb9b8
1367name = "hcl"
1421name = "hcl"
1368scope = "source.hcl"
1422scope = "source.hcl"
1369injection-regex = "(hcl|tf|nomad)"
1423injection-regex = "(hcl|tf|nomad)"
1424+language-id = "terraform"
1370file-types = ["hcl", "tf", "nomad"]
1425file-types = ["hcl", "tf", "nomad"]
1371roots = []
1426roots = []
1372comment-token = "#"
1427comment-token = "#"
1373indent = { tab-width = 2, unit = " " }
1428indent = { tab-width = 2, unit = " " }
1374−language-server = { command = "terraform-ls", args = ["serve"], language-id = "terraform" }
1429+language-servers = [ "terraform-ls" ]
1375auto-format = true
1430auto-format = true
1377[[grammar]]
1432[[grammar]]
@@ -1381,11 +1436,12 @@ source = { git = "https://github.com/MichaHoffmann/tree-sitter-hcl", rev = "3cb7
1381[[language]]
1436[[language]]
1382name = "tfvars"
1437name = "tfvars"
1383scope = "source.tfvars"
1438scope = "source.tfvars"
1439+language-id = "terraform-vars"
1384file-types = ["tfvars"]
1440file-types = ["tfvars"]
1385roots = []
1441roots = []
1386comment-token = "#"
1442comment-token = "#"
1387indent = { tab-width = 2, unit = " " }
1443indent = { tab-width = 2, unit = " " }
1388−language-server = { command = "terraform-ls", args = ["serve"], language-id = "terraform-vars" }
1444+language-servers = [ "terraform-ls" ]
1389auto-format = true
1445auto-format = true
1390grammar = "hcl"
1446grammar = "hcl"
@@ -1409,7 +1465,7 @@ file-types = ["sol"]
1409roots = []
1465roots = []
1410comment-token = "//"
1466comment-token = "//"
1411indent = { tab-width = 4, unit = " " }
1467indent = { tab-width = 4, unit = " " }
1412−language-server = { command = "solc", args = ["--lsp"] }
1468+language-servers = [ "solc" ]
1414[[grammar]]
1470[[grammar]]
1415name = "solidity"
1471name = "solidity"
@@ -1423,7 +1479,7 @@ file-types = ["gleam"]
1423roots = ["gleam.toml"]
1479roots = ["gleam.toml"]
1424comment-token = "//"
1480comment-token = "//"
1425indent = { tab-width = 2, unit = " " }
1481indent = { tab-width = 2, unit = " " }
1426−language-server = { command = "gleam", args = ["lsp"] }
1482+language-servers = [ "gleam" ]
1428[[grammar]]
1484[[grammar]]
1429name = "gleam"
1485name = "gleam"
@@ -1447,7 +1503,7 @@ file-types = ["robot", "resource"]
1447comment-token = "#"
1503comment-token = "#"
1448roots = []
1504roots = []
1449indent = { tab-width = 4, unit = " " }
1505indent = { tab-width = 4, unit = " " }
1450−language-server = { command = "robotframework_ls" }
1506+language-servers = [ "robotframework_ls" ]
1452[[grammar]]
1508[[grammar]]
1453name = "robot"
1509name = "robot"
@@ -1462,7 +1518,7 @@ shebangs = ["r", "R"]
1462roots = []
1518roots = []
1463comment-token = "#"
1519comment-token = "#"
1464indent = { tab-width = 2, unit = " " }
1520indent = { tab-width = 2, unit = " " }
1465−language-server = { command = "R", args = ["--no-echo", "-e", "languageserver::run()"] }
1521+language-servers = [ "r" ]
1467[[grammar]]
1523[[grammar]]
1468name = "r"
1524name = "r"
@@ -1476,7 +1532,7 @@ file-types = ["rmd", "Rmd"]
1476roots = []
1532roots = []
1477indent = { tab-width = 2, unit = " " }
1533indent = { tab-width = 2, unit = " " }
1478grammar = "markdown"
1534grammar = "markdown"
1479−language-server = { command = "R", args = ["--slave", "-e", "languageserver::run()"] }
1535+language-servers = [ "r" ]
1481[[language]]
1537[[language]]
1482name = "swift"
1538name = "swift"
@@ -1486,7 +1542,7 @@ file-types = ["swift"]
1486roots = [ "Package.swift" ]
1542roots = [ "Package.swift" ]
1487comment-token = "//"
1543comment-token = "//"
1488auto-format = true
1544auto-format = true
1489−language-server = { command = "sourcekit-lsp" }
1545+language-servers = [ "sourcekit-lsp" ]
1491[[grammar]]
1547[[grammar]]
1492name = "swift"
1548name = "swift"
@@ -1533,8 +1589,7 @@ injection-regex = "heex"
1533file-types = ["heex"]
1589file-types = ["heex"]
1534roots = ["mix.exs", "mix.lock"]
1590roots = ["mix.exs", "mix.lock"]
1535indent = { tab-width = 2, unit = " " }
1591indent = { tab-width = 2, unit = " " }
1536−language-server = { command = "elixir-ls" }
1592+language-servers = [ "elixir-ls" ]
1537−config = { elixirLS.dialyzerEnabled = false }
1539[[grammar]]
1594[[grammar]]
1540name = "heex"
1595name = "heex"
@@ -1605,7 +1660,7 @@ file-types = ["vala", "vapi"]
1605roots = []
1660roots = []
1606comment-token = "//"
1661comment-token = "//"
1607indent = { tab-width = 2, unit = " " }
1662indent = { tab-width = 2, unit = " " }
1608−language-server = { command = "vala-language-server" }
1663+language-servers = [ "vala-language-server" ]
1610[[grammar]]
1665[[grammar]]
1611name = "vala"
1666name = "vala"
@@ -1670,7 +1725,7 @@ auto-format = false
1670scope = "source.odin"
1725scope = "source.odin"
1671file-types = ["odin"]
1726file-types = ["odin"]
1672roots = ["ols.json"]
1727roots = ["ols.json"]
1673−language-server = { command = "ols", args = [] }
1728+language-servers = [ "ols" ]
1674comment-token = "//"
1729comment-token = "//"
1675indent = { tab-width = 4, unit = "\t" }
1730indent = { tab-width = 4, unit = "\t" }
@@ -1721,7 +1776,7 @@ scope = "source.v"
1721file-types = ["v", "vv", "vsh"]
1776file-types = ["v", "vv", "vsh"]
1722shebangs = ["v run"]
1777shebangs = ["v run"]
1723roots = ["v.mod"]
1778roots = ["v.mod"]
1724−language-server = { command = "v", args = ["ls"] }
1779+language-servers = [ "vlang-language-server" ]
1725auto-format = true
1780auto-format = true
1726comment-token = "//"
1781comment-token = "//"
1727indent = { tab-width = 4, unit = "\t" }
1782indent = { tab-width = 4, unit = "\t" }
@@ -1736,7 +1791,7 @@ scope = "source.verilog"
1736file-types = ["v", "vh", "sv", "svh"]
1791file-types = ["v", "vh", "sv", "svh"]
1737roots = []
1792roots = []
1738comment-token = "//"
1793comment-token = "//"
1739−language-server = { command = "svlangserver", args = [] }
1794+language-servers = [ "svlangserver" ]
1740indent = { tab-width = 2, unit = " " }
1795indent = { tab-width = 2, unit = " " }
1741injection-regex = "verilog"
1796injection-regex = "verilog"
@@ -1775,7 +1830,7 @@ injection-regex = "openscad"
1775file-types = ["scad"]
1830file-types = ["scad"]
1776roots = []
1831roots = []
1777comment-token = "//"
1832comment-token = "//"
1778−language-server = { command = "openscad-lsp", args = ["--stdio"] }
1833+language-servers = [ "openscad-lsp" ]
1779indent = { tab-width = 2, unit = "\t" }
1834indent = { tab-width = 2, unit = "\t" }
1781[[grammar]]
1836[[grammar]]
@@ -1789,7 +1844,7 @@ injection-regex = "prisma"
1789file-types = ["prisma"]
1844file-types = ["prisma"]
1790roots = ["package.json"]
1845roots = ["package.json"]
1791comment-token = "//"
1846comment-token = "//"
1792−language-server = { command = "prisma-language-server", args = ["--stdio"] }
1847+language-servers = [ "prisma-language-server" ]
1793indent = { tab-width = 2, unit = " " }
1848indent = { tab-width = 2, unit = " " }
1795[[grammar]]
1850[[grammar]]
@@ -1803,7 +1858,7 @@ injection-regex = "(clojure|clj|edn|boot)"
1803file-types = ["clj", "cljs", "cljc", "clje", "cljr", "cljx", "edn", "boot"]
1858file-types = ["clj", "cljs", "cljc", "clje", "cljr", "cljx", "edn", "boot"]
1804roots = ["project.clj", "build.boot", "deps.edn", "shadow-cljs.edn"]
1859roots = ["project.clj", "build.boot", "deps.edn", "shadow-cljs.edn"]
1805comment-token = ";"
1860comment-token = ";"
1806−language-server = { command = "clojure-lsp" }
1861+language-servers = [ "clojure-lsp" ]
1807indent = { tab-width = 2, unit = " " }
1862indent = { tab-width = 2, unit = " " }
1809[[grammar]]
1864[[grammar]]
@@ -1827,7 +1882,7 @@ file-types = ["elv"]
1827roots = []
1882roots = []
1828comment-token = "#"
1883comment-token = "#"
1829indent = { tab-width = 2, unit = " " }
1884indent = { tab-width = 2, unit = " " }
1830−language-server = { command = "elvish", args = ["-lsp"] }
1885+language-servers = [ "elvish" ]
1831grammar = "elvish"
1886grammar = "elvish"
1833[[grammar]]
1888[[grammar]]
@@ -1843,7 +1898,7 @@ shebangs = []
1843roots = []
1898roots = []
1844comment-token = "--"
1899comment-token = "--"
1845indent = { tab-width = 2, unit = " " }
1900indent = { tab-width = 2, unit = " " }
1846−language-server = { command = "idris2-lsp" }
1901+language-servers = [ "idris2-lsp" ]
1848[[language]]
1903[[language]]
1849name = "fortran"
1904name = "fortran"
@@ -1853,7 +1908,7 @@ file-types = ["f", "for", "f90", "f95", "f03"]
1853roots = ["fpm.toml"]
1908roots = ["fpm.toml"]
1854comment-token = "!"
1909comment-token = "!"
1855indent = { tab-width = 4, unit = " "}
1910indent = { tab-width = 4, unit = " "}
1856−language-server = { command = "fortls", args = ["--lowercase_intrinsics"] }
1911+language-servers = [ "fortls" ]
1858[[grammar]]
1913[[grammar]]
1859name = "fortran"
1914name = "fortran"
@@ -1880,7 +1935,7 @@ file-types = ["dot"]
1880roots = []
1935roots = []
1881comment-token = "//"
1936comment-token = "//"
1882indent = { tab-width = 4, unit = " " }
1937indent = { tab-width = 4, unit = " " }
1883−language-server = { command = "dot-language-server", args = ["--stdio"] }
1938+language-servers = [ "dot-language-server" ]
1885[[grammar]]
1940[[grammar]]
1886name = "dot"
1941name = "dot"
@@ -1894,7 +1949,7 @@ file-types = ["cue"]
1894roots = ["cue.mod"]
1949roots = ["cue.mod"]
1895auto-format = true
1950auto-format = true
1896comment-token = "//"
1951comment-token = "//"
1897−language-server = { command = "cuelsp" }
1952+language-servers = [ "cuelsp" ]
1898indent = { tab-width = 4, unit = "\t" }
1953indent = { tab-width = 4, unit = "\t" }
1899formatter = { command = "cue", args = ["fmt", "-"] }
1954formatter = { command = "cue", args = ["fmt", "-"] }
@@ -1910,7 +1965,7 @@ file-types = ["slint"]
1910roots = []
1965roots = []
1911comment-token = "//"
1966comment-token = "//"
1912indent = { tab-width = 4, unit = " " }
1967indent = { tab-width = 4, unit = " " }
1913−language-server = { command = "slint-lsp", args = [] }
1968+language-servers = [ "slint-lsp" ]
1915[[grammar]]
1970[[grammar]]
1916name = "slint"
1971name = "slint"
@@ -1962,7 +2017,7 @@ file-types = ["pas", "pp", "inc", "lpr", "lfm"]
1962roots = []
2017roots = []
1963comment-token = "//"
2018comment-token = "//"
1964indent = { tab-width = 2, unit = " " }
2019indent = { tab-width = 2, unit = " " }
1965−language-server = { command = "pasls", args = [] }
2020+language-servers = [ "pasls" ]
1967[[grammar]]
2022[[grammar]]
1968name = "pascal"
2023name = "pascal"
@@ -1987,7 +2042,7 @@ file-types = ["libsonnet", "jsonnet"]
1987roots = ["jsonnetfile.json"]
2042roots = ["jsonnetfile.json"]
1988comment-token = "//"
2043comment-token = "//"
1989indent = { tab-width = 2, unit = " " }
2044indent = { tab-width = 2, unit = " " }
1990−language-server = { command = "jsonnet-language-server", args= ["-t", "--lint"] }
2045+language-servers = [ "jsonnet-language-server" ]
1992[[grammar]]
2047[[grammar]]
1993name = "jsonnet"
2048name = "jsonnet"
@@ -2013,7 +2068,7 @@ file-types = ["bass"]
2013roots = []
2068roots = []
2014comment-token = ";"
2069comment-token = ";"
2015indent = { tab-width = 2, unit = " " }
2070indent = { tab-width = 2, unit = " " }
2016−language-server = { command = "bass", args = ["--lsp"] }
2071+language-servers = [ "bass" ]
2018[[grammar]]
2073[[grammar]]
2019name = "bass"
2074name = "bass"
@@ -2049,7 +2104,7 @@ roots = []
2049comment-token = "//"
2104comment-token = "//"
2050injection-regex = "d"
2105injection-regex = "d"
2051indent = { tab-width = 4, unit = " "}
2106indent = { tab-width = 4, unit = " "}
2052−language-server = { command = "serve-d" }
2107+language-servers = [ "serve-d" ]
2053formatter = { command = "dfmt" }
2108formatter = { command = "dfmt" }
2055[[grammar]]
2110[[grammar]]
@@ -2173,7 +2228,7 @@ roots = []
2173auto-format = true
2228auto-format = true
2174comment-token = "//"
2229comment-token = "//"
2175indent = { tab-width = 2, unit = " "}
2230indent = { tab-width = 2, unit = " "}
2176−language-server = { command = "bicep-langserver" }
2231+language-servers = [ "bicep-langserver" ]
2178[[grammar]]
2233[[grammar]]
2179name = "bicep"
2234name = "bicep"
@@ -2184,7 +2239,7 @@ name = "qml"
2184scope = "source.qml"
2239scope = "source.qml"
2185file-types = ["qml"]
2240file-types = ["qml"]
2186roots = []
2241roots = []
2187−language-server = { command = "qmlls" }
2242+language-servers = [ "qmlls" ]
2188indent = { tab-width = 4, unit = " " }
2243indent = { tab-width = 4, unit = " " }
2189grammar = "qmljs"
2244grammar = "qmljs"
@@ -2239,7 +2294,7 @@ file-types = ["dhall"]
2239roots = []
2294roots = []
2240comment-token = "--"
2295comment-token = "--"
2241indent = { tab-width = 2, unit = " " }
2296indent = { tab-width = 2, unit = " " }
2242−language-server = { command = "dhall-lsp-server" }
2297+language-servers = [ "dhall-lsp-server" ]
2243formatter = { command = "dhall" , args = ["format"] }
2298formatter = { command = "dhall" , args = ["format"] }
2245[[grammar]]
2300[[grammar]]
@@ -2401,7 +2456,7 @@ file-types = ["smithy"]
2401roots = ["smithy-build.json"]
2456roots = ["smithy-build.json"]
2402comment-token = "//"
2457comment-token = "//"
2403indent = { tab-width = 4, unit = " " }
2458indent = { tab-width = 4, unit = " " }
2404−language-server = { command = "cs", args = ["launch", "--contrib", "smithy-language-server", "--", "0"] }
2459+language-servers = [ "cs" ]
2406[[grammar]]
2461[[grammar]]
2407name = "smithy"
2462name = "smithy"
@@ -2413,7 +2468,7 @@ scope = "source.vhdl"
2413file-types = ["vhd", "vhdl"]
2468file-types = ["vhd", "vhdl"]
2414roots = []
2469roots = []
2415comment-token = "--"
2470comment-token = "--"
2416−language-server = { command = "vhdl_ls", args = [] }
2471+language-servers = [ "vhdl_ls" ]
2417indent = { tab-width = 2, unit = " " }
2472indent = { tab-width = 2, unit = " " }
2418injection-regex = "vhdl"
2473injection-regex = "vhdl"
@@ -2429,7 +2484,7 @@ injection-regex = "rego"
2429file-types = ["rego"]
2484file-types = ["rego"]
2430auto-format = true
2485auto-format = true
2431comment-token = "#"
2486comment-token = "#"
2432−language-server = { command = "regols" }
2487+language-servers = [ "regols" ]
2433grammar = "rego"
2488grammar = "rego"
2435[[grammar]]
2490[[grammar]]
@@ -2445,7 +2500,7 @@ shebangs = []
2445roots = []
2500roots = []
2446comment-token = "#"
2501comment-token = "#"
2447indent = { tab-width = 2, unit = " " }
2502indent = { tab-width = 2, unit = " " }
2448−language-server = { command = "nimlangserver" }
2503+language-servers = [ "nimlangserver" ]
2450[language.auto-pairs]
2505[language.auto-pairs]
2451'(' = ')'
2506'(' = ')'
@@ -2485,7 +2540,7 @@ name = "markdoc"
2485scope = "text.markdoc"
2540scope = "text.markdoc"
2486roots = []
2541roots = []
2487file-types = ["mdoc"]
2542file-types = ["mdoc"]
2488−language-server = { command = "markdoc-ls", args = ["--stdio"] }
2543+language-servers = [ "markdoc-ls" ]
2490[[grammar]]
2545[[grammar]]
2491name = "markdoc"
2546name = "markdoc"
@@ -2498,7 +2553,7 @@ injection-regex = "(cl|opencl)"
2498file-types = ["cl"]
2553file-types = ["cl"]
2499roots = []
2554roots = []
2500comment-token = "//"
2555comment-token = "//"
2501−language-server = { command = "clangd" }
2556+language-servers = [ "clangd" ]
2503[[grammar]]
2558[[grammar]]
2504name = "opencl"
2559name = "opencl"