@@ -1,6 +1,153 @@
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+taplo = { command = "taplo", args = ["lsp", "stdio"] }
7+elixir-ls = { command = "elixir-ls", config = { elixirLS.dialyzerEnabled = false } }
8+mint = { command = "mint", args = ["ls"] }
9+vscode-json-language-server = { command = "vscode-json-language-server", args = ["--stdio"], config = { provideFormatter = true } }
10+clangd = { command = "clangd" }
11+crystalline = { command = "crystalline", args = ["--stdio"] }
12+omnisharp = { command = "OmniSharp", args = [ "--languageserver" ] }
13+vscode-css-language-server = { command = "vscode-css-language-server", args = ["--stdio"], config = { "provideFormatter" = true }}
14+vscode-html-language-server = { command = "vscode-html-language-server", args = ["--stdio"], config = { provideFormatter = true } }
15+pylsp = { command = "pylsp" }
16+nls = { command = "nls" }
17+nil = { command = "nil" }
18+solargraph = { command = "solargraph", args = ["stdio"] }
19+bash-language-server = { command = "bash-language-server", args = ["start"] }
20+intelephense = { command = "intelephense", args = ["--stdio"] }
21+texlab = { command = "texlab" }
22+lean = { command = "lean", args = [ "--server" ] }
23+julia = { command = "julia", timeout = 60, args = [
28+ "using LanguageServer; runserver()",
30+jdtls = { command = "jdtls" }
31+ocamllsp = { command = "ocamllsp" }
33+svelteserver = { command = "svelteserver", args = ["--stdio"] }
34+vuels = { command = "vls" }
35+yaml-language-server = { command = "yaml-language-server", args = ["--stdio"] }
36+haskell-language-server = { command = "haskell-language-server-wrapper", args = ["--lsp"] }
37+zls = { command = "zls" }
38+swipl = { command = "swipl", args = [
39+ "-g", "use_module(library(lsp_server))",
40+ "-g", "lsp_server:main",
41+ "-t", "halt", "--", "stdio"
43+cmake-language-server = { command = "cmake-language-server" }
44+racket = { command = "racket", args = ["-l", "racket-langserver"] }
45+dart = { command = "dart", args = ["language-server", "--client-id=helix"] }
46+metals = { command = "metals", config = { "isHttpEnabled" = true } }
47+docker-langserver = { command = "docker-langserver", args = ["--stdio"] }
48+elm-language-server = { command = "elm-language-server" }
49+rescript-language-server = { command = "rescript-language-server", args = ["--stdio"] }
50+robotframework_ls = { command = "robotframework_ls" }
51+erlang-ls = { command = "erlang_ls" }
52+kotlin-language-server = { command = "kotlin-language-server" }
53+terraform-ls = { command = "terraform-ls", args = ["serve"] }
54+solc = { command = "solc", args = ["--lsp"] }
55+R = { command = "R", args = ["--no-echo", "-e", "languageserver::run()"] }
56+sourcekit-lsp = { command = "sourcekit-lsp" }
57+vala-language-server = { command = "vala-language-server" }
58+svlangserver = { command = "svlangserver", args = [] }
59+vlang-language-server = { command = "v", args = ["ls"] }
60+openscad-lsp = { command = "openscad-lsp", args = ["--stdio"] }
61+perlnavigator = { command = "perlnavigator", args= ["--stdio"] }
62+prisma-language-server = { command = "prisma-language-server", args = ["--stdio"] }
63+clojure-lsp = { command = "clojure-lsp" }
64+wgsl_analyzer = { command = "wgsl_analyzer" }
65+elvish = { command = "elvish", args = ["-lsp"] }
66+idris2-lsp = { command = "idris2-lsp" }
67+fortls = { command = "fortls", args = ["--lowercase_intrinsics"] }
68+gleam = { command = "gleam", args = ["lsp"] }
69+ols = { command = "ols", args = [] }
70+dot-language-server = { command = "dot-language-server", args = ["--stdio"] }
71+cuelsp = { command = "cuelsp" }
72+slint-lsp = { command = "slint-lsp", args = [] }
73+awk-language-server = { command = "awk-language-server" }
74+pasls = { command = "pasls", args = [] }
75+jsonnet-language-server = { command = "jsonnet-language-server", args= ["-t", "--lint"] }
76+marksman = { command = "marksman", args = ["server"] }
77+markdoc-ls = { command = "markdoc-ls", args = ["--stdio"] }
78+bass = { command = "bass", args = ["--lsp"] }
79+purescript-language-server = { command = "purescript-language-server", args = ["--stdio"] }
80+serve-d = { command = "serve-d" }
81+bicep-langserver = { command = "bicep-langserver" }
82+qmlls = { command = "qmlls" }
83+cl-lsp = { command = "cl-lsp", args = [ "stdio" ] }
84+dhall-lsp-server = { command = "dhall-lsp-server" }
85+forc = { command = "forc", args = ["lsp"] }
86+cs = { command = "cs", args = ["launch", "--contrib", "smithy-language-server", "--", "0"] }
87+vhdl_ls = { command = "vhdl_ls", args = [] }
88+regols = { command = "regols" }
89+nimlangserver = { command = "nimlangserver" }
91+[language-server.rust-analyzer]
92+command = "rust-analyzer"
94+[language-server.rust-analyzer.config]
95+inlayHints.bindingModeHints.enable = false
96+inlayHints.closingBraceHints.minLines = 10
97+inlayHints.closureReturnTypeHints.enable = "with_block"
98+inlayHints.discriminantHints.enable = "fieldless"
99+inlayHints.lifetimeElisionHints.enable = "skip_trivial"
100+inlayHints.typeHints.hideClosureInitialization = false
103+[language-server.lua-language-server]
104+command = "lua-language-server"
106+[language-server.lua-language-server.config.Lua.hint]
108+arrayIndex = "Enable"
115+[language-server.gopls]
118+[language-server.gopls.config.hints]
119+assignVariableTypes = true
120+compositeLiteralFields = true
121+constantValues = true
122+functionTypeParameters = true
123+parameterNames = true
124+rangeVariableTypes = true
127+[language-server.typescript-language-server]
128+command = "typescript-language-server"
130+config.hostInfo = "helix"
132+[language-server.typescript-language-server.config.typescript.inlayHints]
133+includeInlayEnumMemberValueHints = true
134+includeInlayFunctionLikeReturnTypeHints = true
135+includeInlayFunctionParameterTypeHints = true
136+includeInlayParameterNameHints = "all"
137+includeInlayParameterNameHintsWhenArgumentMatchesName = true
138+includeInlayPropertyDeclarationTypeHints = true
139+includeInlayVariableTypeHints = true
141+[language-server.typescript-language-server.config.javascript.inlayHints]
142+includeInlayEnumMemberValueHints = true
143+includeInlayFunctionLikeReturnTypeHints = true
144+includeInlayFunctionParameterTypeHints = true
145+includeInlayParameterNameHints = "all"
146+includeInlayParameterNameHintsWhenArgumentMatchesName = true
147+includeInlayPropertyDeclarationTypeHints = true
148+includeInlayVariableTypeHints = true
4[[language]]
151[[language]]
5name = "rust"
152name = "rust"
6scope = "source.rust"
153scope = "source.rust"
@@ -9,7 +156,7 @@ file-types = ["rs"]
9roots = ["Cargo.toml", "Cargo.lock"]
156roots = ["Cargo.toml", "Cargo.lock"]
10auto-format = true
157auto-format = true
11comment-token = "//"
158comment-token = "//"
12−language-server = { command = "rust-analyzer" }
159+language-servers = [ "rust-analyzer" ]
13indent = { tab-width = 4, unit = " " }
160indent = { tab-width = 4, unit = " " }
15[language.auto-pairs]
162[language.auto-pairs]
@@ -19,14 +166,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]
169[language.debugger]
31name = "lldb-vscode"
170name = "lldb-vscode"
32transport = "stdio"
171transport = "stdio"
@@ -65,7 +204,7 @@ name = "sway"
65scope = "source.sway"
204scope = "source.sway"
66injection-regex = "sway"
205injection-regex = "sway"
67file-types = ["sw"]
206file-types = ["sw"]
68−language-server = { command = "forc", args = ["lsp"] }
207+language-servers = [ "forc" ]
69roots = ["Forc.toml", "Forc.lock"]
208roots = ["Forc.toml", "Forc.lock"]
70indent = { tab-width = 4, unit = " " }
209indent = { tab-width = 4, unit = " " }
71comment-token = "//"
210comment-token = "//"
@@ -81,7 +220,7 @@ injection-regex = "toml"
81file-types = ["toml", "poetry.lock"]
220file-types = ["toml", "poetry.lock"]
82roots = []
221roots = []
83comment-token = "#"
222comment-token = "#"
84−language-server = { command = "taplo", args = ["lsp", "stdio"] }
223+language-servers = [ "taplo" ]
85indent = { tab-width = 2, unit = " " }
224indent = { tab-width = 2, unit = " " }
87[[grammar]]
226[[grammar]]
@@ -95,7 +234,7 @@ injection-regex = "awk"
95file-types = ["awk", "gawk", "nawk", "mawk"]
234file-types = ["awk", "gawk", "nawk", "mawk"]
96roots = []
235roots = []
97comment-token = "#"
236comment-token = "#"
98−language-server = { command = "awk-language-server" }
237+language-servers = [ "awk-language-server" ]
99indent = { tab-width = 2, unit = " " }
238indent = { tab-width = 2, unit = " " }
101[[grammar]]
240[[grammar]]
@@ -123,8 +262,7 @@ file-types = ["ex", "exs", "mix.lock"]
123shebangs = ["elixir"]
262shebangs = ["elixir"]
124roots = ["mix.exs", "mix.lock"]
263roots = ["mix.exs", "mix.lock"]
125comment-token = "#"
264comment-token = "#"
126−language-server = { command = "elixir-ls" }
265+language-servers = [ "elixir-ls" ]
127−config = { elixirLS.dialyzerEnabled = false }
128indent = { tab-width = 2, unit = " " }
266indent = { tab-width = 2, unit = " " }
130[[grammar]]
268[[grammar]]
@@ -153,7 +291,7 @@ file-types = ["mint"]
153shebangs = []
291shebangs = []
154roots = []
292roots = []
155comment-token = "//"
293comment-token = "//"
156−language-server = { command = "mint", args = ["ls"] }
294+language-servers = [ "mint" ]
157indent = { tab-width = 2, unit = " " }
295indent = { tab-width = 2, unit = " " }
159[[language]]
297[[language]]
@@ -162,9 +300,8 @@ scope = "source.json"
162injection-regex = "json"
300injection-regex = "json"
163file-types = ["json", "jsonc", "arb", "ipynb", "geojson"]
301file-types = ["json", "jsonc", "arb", "ipynb", "geojson"]
164roots = []
302roots = []
165−language-server = { command = "vscode-json-language-server", args = ["--stdio"] }
303+language-servers = [ "vscode-json-language-server" ]
166auto-format = true
304auto-format = true
167−config = { "provideFormatter" = true }
168indent = { tab-width = 2, unit = " " }
305indent = { tab-width = 2, unit = " " }
170[[grammar]]
307[[grammar]]
@@ -178,7 +315,7 @@ injection-regex = "c"
178file-types = ["c"] # TODO: ["h"]
315file-types = ["c"] # TODO: ["h"]
179roots = []
316roots = []
180comment-token = "//"
317comment-token = "//"
181−language-server = { command = "clangd" }
318+language-servers = [ "clangd" ]
182indent = { tab-width = 2, unit = " " }
319indent = { tab-width = 2, unit = " " }
184[language.debugger]
321[language.debugger]
@@ -215,7 +352,7 @@ injection-regex = "cpp"
215file-types = ["cc", "hh", "c++", "cpp", "hpp", "h", "ipp", "tpp", "cxx", "hxx", "ixx", "txx", "ino", "C", "H", "cu", "cuh"]
352file-types = ["cc", "hh", "c++", "cpp", "hpp", "h", "ipp", "tpp", "cxx", "hxx", "ixx", "txx", "ino", "C", "H", "cu", "cuh"]
216roots = []
353roots = []
217comment-token = "//"
354comment-token = "//"
218−language-server = { command = "clangd" }
355+language-servers = [ "clangd" ]
219indent = { tab-width = 2, unit = " " }
356indent = { tab-width = 2, unit = " " }
221[language.debugger]
358[language.debugger]
@@ -253,7 +390,7 @@ roots = ["shard.yml", "shard.lock"]
253comment-token = "#"
390comment-token = "#"
254indent = { tab-width = 2, unit = " " }
391indent = { tab-width = 2, unit = " " }
255grammar = "ruby"
392grammar = "ruby"
256−language-server = { command = "crystalline", args = ["--stdio"] }
393+language-servers = [ "crystalline" ]
258[[language]]
395[[language]]
259name = "c-sharp"
396name = "c-sharp"
@@ -263,7 +400,7 @@ file-types = ["cs"]
263roots = ["sln", "csproj"]
400roots = ["sln", "csproj"]
264comment-token = "//"
401comment-token = "//"
265indent = { tab-width = 4, unit = "\t" }
402indent = { tab-width = 4, unit = "\t" }
266−language-server = { command = "OmniSharp", args = [ "--languageserver" ] }
403+language-servers = [ "omnisharp" ]
268[language.debugger]
405[language.debugger]
269name = "netcoredbg"
406name = "netcoredbg"
@@ -296,18 +433,10 @@ file-types = ["go"]
296roots = ["go.work", "go.mod"]
433roots = ["go.work", "go.mod"]
297auto-format = true
434auto-format = true
298comment-token = "//"
435comment-token = "//"
299−language-server = { command = "gopls" }
436+language-servers = [ "gopls" ]
300# TODO: gopls needs utf-8 offsets?
437# TODO: gopls needs utf-8 offsets?
301indent = { tab-width = 4, unit = "\t" }
438indent = { 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]
440[language.debugger]
312name = "go"
441name = "go"
313transport = "tcp"
442transport = "tcp"
@@ -351,7 +480,7 @@ file-types = ["go.mod"]
351roots = []
480roots = []
352auto-format = true
481auto-format = true
353comment-token = "//"
482comment-token = "//"
354−language-server = { command = "gopls" }
483+language-servers = [ "gopls" ]
355indent = { tab-width = 4, unit = "\t" }
484indent = { tab-width = 4, unit = "\t" }
357[[grammar]]
486[[grammar]]
@@ -365,7 +494,7 @@ injection-regex = "gotmpl"
365file-types = ["gotmpl"]
494file-types = ["gotmpl"]
366roots = []
495roots = []
367comment-token = "//"
496comment-token = "//"
368−language-server = { command = "gopls" }
497+language-servers = [ "gopls" ]
369indent = { tab-width = 2, unit = " " }
498indent = { tab-width = 2, unit = " " }
371[[grammar]]
500[[grammar]]
@@ -380,7 +509,7 @@ file-types = ["go.work"]
380roots = []
509roots = []
381auto-format = true
510auto-format = true
382comment-token = "//"
511comment-token = "//"
383−language-server = { command = "gopls" }
512+language-servers = [ "gopls" ]
384indent = { tab-width = 4, unit = "\t" }
513indent = { tab-width = 4, unit = "\t" }
386[[grammar]]
515[[grammar]]
@@ -391,26 +520,15 @@ source = { git = "https://github.com/omertuc/tree-sitter-go-work", rev = "6dd9dd
391name = "javascript"
520name = "javascript"
392scope = "source.js"
521scope = "source.js"
393injection-regex = "(js|javascript)"
522injection-regex = "(js|javascript)"
523+language-id = "javascript"
394file-types = ["js", "mjs", "cjs"]
524file-types = ["js", "mjs", "cjs"]
395shebangs = ["node"]
525shebangs = ["node"]
396roots = []
526roots = []
397comment-token = "//"
527comment-token = "//"
398# TODO: highlights-params
528# TODO: highlights-params
399−language-server = { command = "typescript-language-server", args = ["--stdio"], language-id = "javascript" }
529+language-servers = [ "typescript-language-server" ]
400indent = { tab-width = 2, unit = " " }
530indent = { 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]
532[language.debugger]
415name = "node-debug2"
533name = "node-debug2"
416transport = "stdio"
534transport = "stdio"
@@ -431,48 +549,26 @@ source = { git = "https://github.com/tree-sitter/tree-sitter-javascript", rev =
431name = "jsx"
549name = "jsx"
432scope = "source.jsx"
550scope = "source.jsx"
433injection-regex = "jsx"
551injection-regex = "jsx"
552+language-id = "javascriptreact"
434file-types = ["jsx"]
553file-types = ["jsx"]
435roots = []
554roots = []
436comment-token = "//"
555comment-token = "//"
437−language-server = { command = "typescript-language-server", args = ["--stdio"], language-id = "javascriptreact" }
556+language-servers = [ "typescript-language-server" ]
438indent = { tab-width = 2, unit = " " }
557indent = { tab-width = 2, unit = " " }
439grammar = "javascript"
558grammar = "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]]
560[[language]]
454name = "typescript"
561name = "typescript"
455scope = "source.ts"
562scope = "source.ts"
456injection-regex = "(ts|typescript)"
563injection-regex = "(ts|typescript)"
457file-types = ["ts", "mts", "cts"]
564file-types = ["ts", "mts", "cts"]
565+language-id = "typescript"
458shebangs = []
566shebangs = []
459roots = []
567roots = []
460# TODO: highlights-params
568# TODO: highlights-params
461−language-server = { command = "typescript-language-server", args = ["--stdio"], language-id = "typescript"}
569+language-servers = [ "typescript-language-server" ]
462indent = { tab-width = 2, unit = " " }
570indent = { 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]]
572[[grammar]]
477name = "typescript"
573name = "typescript"
478source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "6aac031ad88dd6317f02ac0bb27d099a553a7d8c", subpath = "typescript" }
574source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "6aac031ad88dd6317f02ac0bb27d099a553a7d8c", subpath = "typescript" }
@@ -481,24 +577,13 @@ source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev =
481name = "tsx"
577name = "tsx"
482scope = "source.tsx"
578scope = "source.tsx"
483injection-regex = "(tsx)" # |typescript
579injection-regex = "(tsx)" # |typescript
580+language-id = "typescriptreact"
484file-types = ["tsx"]
581file-types = ["tsx"]
485roots = []
582roots = []
486# TODO: highlights-params
583# TODO: highlights-params
487−language-server = { command = "typescript-language-server", args = ["--stdio"], language-id = "typescriptreact" }
584+language-servers = [ "typescript-language-server" ]
488indent = { tab-width = 2, unit = " " }
585indent = { 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]]
587[[grammar]]
503name = "tsx"
588name = "tsx"
504source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "6aac031ad88dd6317f02ac0bb27d099a553a7d8c", subpath = "tsx" }
589source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "6aac031ad88dd6317f02ac0bb27d099a553a7d8c", subpath = "tsx" }
@@ -509,9 +594,8 @@ scope = "source.css"
509injection-regex = "css"
594injection-regex = "css"
510file-types = ["css", "scss"]
595file-types = ["css", "scss"]
511roots = []
596roots = []
512−language-server = { command = "vscode-css-language-server", args = ["--stdio"] }
597+language-servers = [ "vscode-css-language-server" ]
513auto-format = true
598auto-format = true
514−config = { "provideFormatter" = true }
515indent = { tab-width = 2, unit = " " }
599indent = { tab-width = 2, unit = " " }
517[[grammar]]
601[[grammar]]
@@ -524,9 +608,8 @@ scope = "source.scss"
524injection-regex = "scss"
608injection-regex = "scss"
525file-types = ["scss"]
609file-types = ["scss"]
526roots = []
610roots = []
527−language-server = { command = "vscode-css-language-server", args = ["--stdio"] }
611+language-servers = [ "vscode-css-language-server" ]
528auto-format = true
612auto-format = true
529−config = { "provideFormatter" = true }
530indent = { tab-width = 2, unit = " " }
613indent = { tab-width = 2, unit = " " }
532[[grammar]]
615[[grammar]]
@@ -539,9 +622,8 @@ scope = "text.html.basic"
539injection-regex = "html"
622injection-regex = "html"
540file-types = ["html"]
623file-types = ["html"]
541roots = []
624roots = []
542−language-server = { command = "vscode-html-language-server", args = ["--stdio"] }
625+language-servers = [ "vscode-html-language-server" ]
543auto-format = true
626auto-format = true
544−config = { "provideFormatter" = true }
545indent = { tab-width = 2, unit = " " }
627indent = { tab-width = 2, unit = " " }
547[[grammar]]
629[[grammar]]
@@ -556,7 +638,7 @@ file-types = ["py","pyi","py3","pyw","ptl",".pythonstartup",".pythonrc","SConstr
556shebangs = ["python"]
638shebangs = ["python"]
557roots = []
639roots = []
558comment-token = "#"
640comment-token = "#"
559−language-server = { command = "pylsp" }
641+language-servers = [ "pylsp" ]
560# TODO: pyls needs utf-8 offsets
642# TODO: pyls needs utf-8 offsets
561indent = { tab-width = 4, unit = " " }
643indent = { tab-width = 4, unit = " " }
@@ -572,7 +654,7 @@ file-types = ["ncl"]
572shebangs = []
654shebangs = []
573roots = []
655roots = []
574comment-token = "#"
656comment-token = "#"
575−language-server = { command = "nls" }
657+language-servers = [ "nls" ]
576indent = { tab-width = 2, unit = " " }
658indent = { tab-width = 2, unit = " " }
578[[grammar]]
660[[grammar]]
@@ -587,7 +669,7 @@ file-types = ["nix"]
587shebangs = []
669shebangs = []
588roots = []
670roots = []
589comment-token = "#"
671comment-token = "#"
590−language-server = { command = "nil" }
672+language-servers = [ "nil" ]
591indent = { tab-width = 2, unit = " " }
673indent = { tab-width = 2, unit = " " }
593[[grammar]]
675[[grammar]]
@@ -602,7 +684,7 @@ file-types = ["rb", "rake", "rakefile", "irb", "gemfile", "gemspec", "Rakefile",
602shebangs = ["ruby"]
684shebangs = ["ruby"]
603roots = []
685roots = []
604comment-token = "#"
686comment-token = "#"
605−language-server = { command = "solargraph", args = ["stdio"] }
687+language-servers = [ "solargraph" ]
606indent = { tab-width = 2, unit = " " }
688indent = { tab-width = 2, unit = " " }
608[[grammar]]
690[[grammar]]
@@ -617,7 +699,7 @@ file-types = ["sh", "bash", "zsh", ".bash_login", ".bash_logout", ".bash_profile
617shebangs = ["sh", "bash", "dash", "zsh"]
699shebangs = ["sh", "bash", "dash", "zsh"]
618roots = []
700roots = []
619comment-token = "#"
701comment-token = "#"
620−language-server = { command = "bash-language-server", args = ["start"] }
702+language-servers = [ "bash-language-server" ]
621indent = { tab-width = 2, unit = " " }
703indent = { tab-width = 2, unit = " " }
623[[grammar]]
705[[grammar]]
@@ -631,7 +713,7 @@ injection-regex = "php"
631file-types = ["php", "inc"]
713file-types = ["php", "inc"]
632shebangs = ["php"]
714shebangs = ["php"]
633roots = ["composer.json", "index.php"]
715roots = ["composer.json", "index.php"]
634−language-server = { command = "intelephense", args = ["--stdio"] }
716+language-servers = [ "intelephense" ]
635indent = { tab-width = 4, unit = " " }
717indent = { tab-width = 4, unit = " " }
637[[grammar]]
719[[grammar]]
@@ -657,7 +739,7 @@ injection-regex = "tex"
657file-types = ["tex", "sty", "cls"]
739file-types = ["tex", "sty", "cls"]
658roots = []
740roots = []
659comment-token = "%"
741comment-token = "%"
660−language-server = { command = "texlab" }
742+language-servers = [ "texlab" ]
661indent = { tab-width = 4, unit = "\t" }
743indent = { tab-width = 4, unit = "\t" }
663[[grammar]]
745[[grammar]]
@@ -671,7 +753,7 @@ injection-regex = "bib"
671file-types = ["bib"]
753file-types = ["bib"]
672roots = []
754roots = []
673comment-token = "%"
755comment-token = "%"
674−language-server = { command = "texlab" }
756+language-servers = [ "texlab" ]
675indent = { tab-width = 4, unit = "\t" }
757indent = { tab-width = 4, unit = "\t" }
676auto-format = true
758auto-format = true
@@ -699,7 +781,7 @@ injection-regex = "lean"
699file-types = ["lean"]
781file-types = ["lean"]
700roots = [ "lakefile.lean" ]
782roots = [ "lakefile.lean" ]
701comment-token = "--"
783comment-token = "--"
702−language-server = { command = "lean", args = [ "--server" ] }
784+language-servers = [ "lean" ]
703indent = { tab-width = 2, unit = " " }
785indent = { tab-width = 2, unit = " " }
705[[grammar]]
787[[grammar]]
@@ -713,13 +795,7 @@ injection-regex = "julia"
713file-types = ["jl"]
795file-types = ["jl"]
714roots = ["Manifest.toml", "Project.toml"]
796roots = ["Manifest.toml", "Project.toml"]
715comment-token = "#"
797comment-token = "#"
716−language-server = { command = "julia", timeout = 60, args = [
798+language-servers = [ "julia" ]
717− "--startup-file=no",
718− "--history-file=no",
721− "using LanguageServer; runserver()",
723indent = { tab-width = 4, unit = " " }
799indent = { tab-width = 4, unit = " " }
725[[grammar]]
801[[grammar]]
@@ -732,7 +808,7 @@ scope = "source.java"
732injection-regex = "java"
808injection-regex = "java"
733file-types = ["java"]
809file-types = ["java"]
734roots = ["pom.xml", "build.gradle", "build.gradle.kts"]
810roots = ["pom.xml", "build.gradle", "build.gradle.kts"]
735−language-server = { command = "jdtls" }
811+language-servers = [ "jdtls" ]
736indent = { tab-width = 4, unit = " " }
812indent = { tab-width = 4, unit = " " }
738[[grammar]]
814[[grammar]]
@@ -773,7 +849,7 @@ file-types = ["ml"]
773shebangs = []
849shebangs = []
774roots = []
850roots = []
775comment-token = "(**)"
851comment-token = "(**)"
776−language-server = { command = "ocamllsp" }
852+language-servers = [ "ocamllsp" ]
777indent = { tab-width = 2, unit = " " }
853indent = { tab-width = 2, unit = " " }
779[language.auto-pairs]
855[language.auto-pairs]
@@ -794,7 +870,7 @@ file-types = ["mli"]
794shebangs = []
870shebangs = []
795roots = []
871roots = []
796comment-token = "(**)"
872comment-token = "(**)"
797−language-server = { command = "ocamllsp" }
873+language-servers = [ "ocamllsp" ]
798indent = { tab-width = 2, unit = " " }
874indent = { tab-width = 2, unit = " " }
800[language.auto-pairs]
876[language.auto-pairs]
@@ -817,15 +893,7 @@ shebangs = ["lua"]
817roots = [".luarc.json", ".luacheckrc", ".stylua.toml", "selene.toml", ".git"]
893roots = [".luarc.json", ".luacheckrc", ".stylua.toml", "selene.toml", ".git"]
818comment-token = "--"
894comment-token = "--"
819indent = { tab-width = 2, unit = " " }
895indent = { tab-width = 2, unit = " " }
820−language-server = { command = "lua-language-server", args = [] }
896+language-servers = [ "lua-language-server" ]
822−[language.config.Lua.hint]
824−arrayIndex = "Enable"
830[[grammar]]
898[[grammar]]
831name = "lua"
899name = "lua"
@@ -838,7 +906,7 @@ injection-regex = "svelte"
838file-types = ["svelte"]
906file-types = ["svelte"]
839roots = []
907roots = []
840indent = { tab-width = 2, unit = " " }
908indent = { tab-width = 2, unit = " " }
841−language-server = { command = "svelteserver", args = ["--stdio"] }
909+language-servers = [ "svelteserver" ]
843[[grammar]]
911[[grammar]]
844name = "svelte"
912name = "svelte"
@@ -851,7 +919,7 @@ injection-regex = "vue"
851file-types = ["vue"]
919file-types = ["vue"]
852roots = ["package.json", "vue.config.js"]
920roots = ["package.json", "vue.config.js"]
853indent = { tab-width = 2, unit = " " }
921indent = { tab-width = 2, unit = " " }
854−language-server = { command = "vls" }
922+language-servers = [ "vuels" ]
856[[grammar]]
924[[grammar]]
857name = "vue"
925name = "vue"
@@ -864,7 +932,7 @@ file-types = ["yml", "yaml"]
864roots = []
932roots = []
865comment-token = "#"
933comment-token = "#"
866indent = { tab-width = 2, unit = " " }
934indent = { tab-width = 2, unit = " " }
867−language-server = { command = "yaml-language-server", args = ["--stdio"] }
935+language-servers = [ "yaml-language-server" ]
868injection-regex = "yml|yaml"
936injection-regex = "yml|yaml"
870[[grammar]]
938[[grammar]]
@@ -878,7 +946,7 @@ injection-regex = "haskell"
878file-types = ["hs", "hs-boot"]
946file-types = ["hs", "hs-boot"]
879roots = ["Setup.hs", "stack.yaml", "cabal.project"]
947roots = ["Setup.hs", "stack.yaml", "cabal.project"]
880comment-token = "--"
948comment-token = "--"
881−language-server = { command = "haskell-language-server-wrapper", args = ["--lsp"] }
949+language-servers = [ "haskell-language-server" ]
882indent = { tab-width = 2, unit = " " }
950indent = { tab-width = 2, unit = " " }
884[[grammar]]
952[[grammar]]
@@ -892,7 +960,7 @@ injection-regex = "purescript"
892file-types = ["purs"]
960file-types = ["purs"]
893roots = ["spago.dhall", "bower.json"]
961roots = ["spago.dhall", "bower.json"]
894comment-token = "--"
962comment-token = "--"
895−language-server = { command = "purescript-language-server", args = ["--stdio"] }
963+language-servers = [ "purescript-language-server" ]
896indent = { tab-width = 2, unit = " " }
964indent = { tab-width = 2, unit = " " }
897auto-format = true
965auto-format = true
898formatter = { command = "purs-tidy", args = ["format"] }
966formatter = { command = "purs-tidy", args = ["format"] }
@@ -906,7 +974,7 @@ file-types = ["zig"]
906roots = ["build.zig"]
974roots = ["build.zig"]
907auto-format = true
975auto-format = true
908comment-token = "//"
976comment-token = "//"
909−language-server = { command = "zls" }
977+language-servers = [ "zls" ]
910indent = { tab-width = 4, unit = " " }
978indent = { tab-width = 4, unit = " " }
911formatter = { command = "zig" , args = ["fmt", "--stdin"] }
979formatter = { command = "zig" , args = ["fmt", "--stdin"] }
@@ -944,10 +1012,7 @@ roots = []
944file-types = ["pl", "prolog"]
1012file-types = ["pl", "prolog"]
945shebangs = ["swipl"]
1013shebangs = ["swipl"]
946comment-token = "%"
1014comment-token = "%"
947−language-server = { command = "swipl", args = [
1015+language-servers = [ "swipl" ]
948− "-g", "use_module(library(lsp_server))",
949− "-g", "lsp_server:main",
950− "-t", "halt", "--", "stdio"] }
952[[language]]
1017[[language]]
953name = "tsq"
1018name = "tsq"
@@ -969,7 +1034,7 @@ file-types = ["cmake", "CMakeLists.txt"]
969roots = []
1034roots = []
970comment-token = "#"
1035comment-token = "#"
971indent = { tab-width = 2, unit = " " }
1036indent = { tab-width = 2, unit = " " }
972−language-server = { command = "cmake-language-server" }
1037+language-servers = [ "cmake-language-server" ]
973injection-regex = "cmake"
1038injection-regex = "cmake"
975[[grammar]]
1040[[grammar]]
@@ -1009,7 +1074,7 @@ file-types = ["pl", "pm", "t"]
1009shebangs = ["perl"]
1074shebangs = ["perl"]
1010roots = []
1075roots = []
1011comment-token = "#"
1076comment-token = "#"
1012−language-server = { command = "perlnavigator", args= ["--stdio"] }
1077+language-servers = [ "perlnavigator" ]
1013indent = { tab-width = 2, unit = " " }
1078indent = { tab-width = 2, unit = " " }
1015[[grammar]]
1080[[grammar]]
@@ -1023,7 +1088,7 @@ roots = []
1023file-types = ["rkt", "rktd", "rktl", "scrbl"]
1088file-types = ["rkt", "rktd", "rktl", "scrbl"]
1024shebangs = ["racket"]
1089shebangs = ["racket"]
1025comment-token = ";"
1090comment-token = ";"
1026−language-server = { command = "racket", args = ["-l", "racket-langserver"] }
1091+language-servers = [ "racket" ]
1027grammar = "scheme"
1092grammar = "scheme"
1029[[language]]
1094[[language]]
@@ -1034,7 +1099,7 @@ file-types = ["lisp", "asd", "cl", "l", "lsp", "ny", "podsl", "sexp"]
1034shebangs = ["lisp", "sbcl", "ccl", "clisp", "ecl"]
1099shebangs = ["lisp", "sbcl", "ccl", "clisp", "ecl"]
1035comment-token = ";"
1100comment-token = ";"
1036indent = { tab-width = 2, unit = " " }
1101indent = { tab-width = 2, unit = " " }
1037−language-server = { command = "cl-lsp", args = [ "stdio" ] }
1102+language-servers = [ "cl-lsp" ]
1038grammar = "scheme"
1103grammar = "scheme"
1040[language.auto-pairs]
1105[language.auto-pairs]
@@ -1060,7 +1125,7 @@ scope = "source.wgsl"
1060file-types = ["wgsl"]
1125file-types = ["wgsl"]
1061roots = []
1126roots = []
1062comment-token = "//"
1127comment-token = "//"
1063−language-server = { command = "wgsl_analyzer" }
1128+language-servers = [ "wgsl_analyzer" ]
1064indent = { tab-width = 4, unit = " " }
1129indent = { tab-width = 4, unit = " " }
1066[[grammar]]
1131[[grammar]]
@@ -1123,7 +1188,7 @@ scope = "source.md"
1123injection-regex = "md|markdown"
1188injection-regex = "md|markdown"
1124file-types = ["md", "markdown", "PULLREQ_EDITMSG"]
1189file-types = ["md", "markdown", "PULLREQ_EDITMSG"]
1125roots = [".marksman.toml"]
1190roots = [".marksman.toml"]
1126−language-server = { command = "marksman", args=["server"] }
1191+language-servers = [ "marksman" ]
1127indent = { tab-width = 2, unit = " " }
1192indent = { tab-width = 2, unit = " " }
1129[[grammar]]
1194[[grammar]]
@@ -1149,7 +1214,7 @@ file-types = ["dart"]
1149roots = ["pubspec.yaml"]
1214roots = ["pubspec.yaml"]
1150auto-format = true
1215auto-format = true
1151comment-token = "//"
1216comment-token = "//"
1152−language-server = { command = "dart", args = ["language-server", "--client-id=helix"] }
1217+language-servers = [ "dart" ]
1153indent = { tab-width = 2, unit = " " }
1218indent = { tab-width = 2, unit = " " }
1155[[grammar]]
1220[[grammar]]
@@ -1163,8 +1228,7 @@ roots = ["build.sbt", "build.sc", "build.gradle", "build.gradle.kts", "pom.xml",
1163file-types = ["scala", "sbt", "sc"]
1228file-types = ["scala", "sbt", "sc"]
1164comment-token = "//"
1229comment-token = "//"
1165indent = { tab-width = 2, unit = " " }
1230indent = { tab-width = 2, unit = " " }
1166−language-server = { command = "metals" }
1231+language-servers = [ "metals" ]
1167−config = { "isHttpEnabled" = true }
1169[[grammar]]
1233[[grammar]]
1170name = "scala"
1234name = "scala"
@@ -1178,7 +1242,7 @@ roots = ["Dockerfile", "Containerfile"]
1178file-types = ["Dockerfile", "dockerfile", "Containerfile", "containerfile"]
1242file-types = ["Dockerfile", "dockerfile", "Containerfile", "containerfile"]
1179comment-token = "#"
1243comment-token = "#"
1180indent = { tab-width = 2, unit = " " }
1244indent = { tab-width = 2, unit = " " }
1181−language-server = { command = "docker-langserver", args = ["--stdio"] }
1245+language-servers = [ "docker-langserver" ]
1183[[grammar]]
1247[[grammar]]
1184name = "dockerfile"
1248name = "dockerfile"
@@ -1218,7 +1282,7 @@ roots = []
1218file-types = ["git-rebase-todo"]
1282file-types = ["git-rebase-todo"]
1219injection-regex = "git-rebase"
1283injection-regex = "git-rebase"
1220comment-token = "#"
1284comment-token = "#"
1221−indent = { tab-width = 2, unit = " " }
1285+indent = { tab-width = 2, unit = "y" }
1223[[grammar]]
1287[[grammar]]
1224name = "git-rebase"
1288name = "git-rebase"
@@ -1294,7 +1358,7 @@ file-types = ["elm"]
1294roots = ["elm.json"]
1358roots = ["elm.json"]
1295auto-format = true
1359auto-format = true
1296comment-token = "--"
1360comment-token = "--"
1297−language-server = { command = "elm-language-server" }
1361+language-servers = [ "elm-language-server" ]
1298indent = { tab-width = 4, unit = " " }
1362indent = { tab-width = 4, unit = " " }
1300[[grammar]]
1364[[grammar]]
@@ -1320,7 +1384,7 @@ file-types = ["res"]
1320roots = ["bsconfig.json"]
1384roots = ["bsconfig.json"]
1321auto-format = true
1385auto-format = true
1322comment-token = "//"
1386comment-token = "//"
1323−language-server = { command = "rescript-language-server", args = ["--stdio"] }
1387+language-servers = [ "rescript-language-server" ]
1324indent = { tab-width = 2, unit = " " }
1388indent = { tab-width = 2, unit = " " }
1326[[grammar]]
1390[[grammar]]
@@ -1336,7 +1400,7 @@ roots = ["rebar.config"]
1336shebangs = ["escript"]
1400shebangs = ["escript"]
1337comment-token = "%%"
1401comment-token = "%%"
1338indent = { tab-width = 4, unit = " " }
1402indent = { tab-width = 4, unit = " " }
1339−language-server = { command = "erlang_ls" }
1403+language-servers = [ "erlang-ls" ]
1341[language.auto-pairs]
1405[language.auto-pairs]
1342'(' = ')'
1406'(' = ')'
@@ -1357,7 +1421,7 @@ file-types = ["kt", "kts"]
1357roots = ["settings.gradle", "settings.gradle.kts"]
1421roots = ["settings.gradle", "settings.gradle.kts"]
1358comment-token = "//"
1422comment-token = "//"
1359indent = { tab-width = 4, unit = " " }
1423indent = { tab-width = 4, unit = " " }
1360−language-server = { command = "kotlin-language-server" }
1424+language-servers = [ "kotlin-language-server" ]
1362[[grammar]]
1426[[grammar]]
1363name = "kotlin"
1427name = "kotlin"
@@ -1367,11 +1431,12 @@ source = { git = "https://github.com/fwcd/tree-sitter-kotlin", rev = "a4f71eb9b8
1367name = "hcl"
1431name = "hcl"
1368scope = "source.hcl"
1432scope = "source.hcl"
1369injection-regex = "(hcl|tf|nomad)"
1433injection-regex = "(hcl|tf|nomad)"
1434+language-id = "terraform"
1370file-types = ["hcl", "tf", "nomad"]
1435file-types = ["hcl", "tf", "nomad"]
1371roots = []
1436roots = []
1372comment-token = "#"
1437comment-token = "#"
1373indent = { tab-width = 2, unit = " " }
1438indent = { tab-width = 2, unit = " " }
1374−language-server = { command = "terraform-ls", args = ["serve"], language-id = "terraform" }
1439+language-servers = [ "terraform-ls" ]
1375auto-format = true
1440auto-format = true
1377[[grammar]]
1442[[grammar]]
@@ -1381,11 +1446,12 @@ source = { git = "https://github.com/MichaHoffmann/tree-sitter-hcl", rev = "3cb7
1381[[language]]
1446[[language]]
1382name = "tfvars"
1447name = "tfvars"
1383scope = "source.tfvars"
1448scope = "source.tfvars"
1449+language-id = "terraform-vars"
1384file-types = ["tfvars"]
1450file-types = ["tfvars"]
1385roots = []
1451roots = []
1386comment-token = "#"
1452comment-token = "#"
1387indent = { tab-width = 2, unit = " " }
1453indent = { tab-width = 2, unit = " " }
1388−language-server = { command = "terraform-ls", args = ["serve"], language-id = "terraform-vars" }
1454+language-servers = [ "terraform-ls" ]
1389auto-format = true
1455auto-format = true
1390grammar = "hcl"
1456grammar = "hcl"
@@ -1409,7 +1475,7 @@ file-types = ["sol"]
1409roots = []
1475roots = []
1410comment-token = "//"
1476comment-token = "//"
1411indent = { tab-width = 4, unit = " " }
1477indent = { tab-width = 4, unit = " " }
1412−language-server = { command = "solc", args = ["--lsp"] }
1478+language-servers = [ "solc" ]
1414[[grammar]]
1480[[grammar]]
1415name = "solidity"
1481name = "solidity"
@@ -1423,7 +1489,7 @@ file-types = ["gleam"]
1423roots = ["gleam.toml"]
1489roots = ["gleam.toml"]
1424comment-token = "//"
1490comment-token = "//"
1425indent = { tab-width = 2, unit = " " }
1491indent = { tab-width = 2, unit = " " }
1426−language-server = { command = "gleam", args = ["lsp"] }
1492+language-servers = [ "gleam" ]
1428[[grammar]]
1494[[grammar]]
1429name = "gleam"
1495name = "gleam"
@@ -1447,7 +1513,7 @@ file-types = ["robot", "resource"]
1447comment-token = "#"
1513comment-token = "#"
1448roots = []
1514roots = []
1449indent = { tab-width = 4, unit = " " }
1515indent = { tab-width = 4, unit = " " }
1450−language-server = { command = "robotframework_ls" }
1516+language-servers = [ "robotframework_ls" ]
1452[[grammar]]
1518[[grammar]]
1453name = "robot"
1519name = "robot"
@@ -1462,7 +1528,7 @@ shebangs = ["r", "R"]
1462roots = []
1528roots = []
1463comment-token = "#"
1529comment-token = "#"
1464indent = { tab-width = 2, unit = " " }
1530indent = { tab-width = 2, unit = " " }
1465−language-server = { command = "R", args = ["--no-echo", "-e", "languageserver::run()"] }
1531+language-servers = [ "R" ]
1467[[grammar]]
1533[[grammar]]
1468name = "r"
1534name = "r"
@@ -1476,7 +1542,7 @@ file-types = ["rmd", "Rmd"]
1476roots = []
1542roots = []
1477indent = { tab-width = 2, unit = " " }
1543indent = { tab-width = 2, unit = " " }
1478grammar = "markdown"
1544grammar = "markdown"
1479−language-server = { command = "R", args = ["--slave", "-e", "languageserver::run()"] }
1545+language-servers = [ "R" ]
1481[[language]]
1547[[language]]
1482name = "swift"
1548name = "swift"
@@ -1486,7 +1552,7 @@ file-types = ["swift"]
1486roots = [ "Package.swift" ]
1552roots = [ "Package.swift" ]
1487comment-token = "//"
1553comment-token = "//"
1488auto-format = true
1554auto-format = true
1489−language-server = { command = "sourcekit-lsp" }
1555+language-servers = [ "sourcekit-lsp" ]
1491[[grammar]]
1557[[grammar]]
1492name = "swift"
1558name = "swift"
@@ -1533,8 +1599,7 @@ injection-regex = "heex"
1533file-types = ["heex"]
1599file-types = ["heex"]
1534roots = ["mix.exs", "mix.lock"]
1600roots = ["mix.exs", "mix.lock"]
1535indent = { tab-width = 2, unit = " " }
1601indent = { tab-width = 2, unit = " " }
1536−language-server = { command = "elixir-ls" }
1602+language-servers = [ "elixir-ls" ]
1537−config = { elixirLS.dialyzerEnabled = false }
1539[[grammar]]
1604[[grammar]]
1540name = "heex"
1605name = "heex"
@@ -1605,7 +1670,7 @@ file-types = ["vala", "vapi"]
1605roots = []
1670roots = []
1606comment-token = "//"
1671comment-token = "//"
1607indent = { tab-width = 2, unit = " " }
1672indent = { tab-width = 2, unit = " " }
1608−language-server = { command = "vala-language-server" }
1673+language-servers = [ "vala-language-server" ]
1610[[grammar]]
1675[[grammar]]
1611name = "vala"
1676name = "vala"
@@ -1670,7 +1735,7 @@ auto-format = false
1670scope = "source.odin"
1735scope = "source.odin"
1671file-types = ["odin"]
1736file-types = ["odin"]
1672roots = ["ols.json"]
1737roots = ["ols.json"]
1673−language-server = { command = "ols", args = [] }
1738+language-servers = [ "ols" ]
1674comment-token = "//"
1739comment-token = "//"
1675indent = { tab-width = 4, unit = "\t" }
1740indent = { tab-width = 4, unit = "\t" }
@@ -1721,7 +1786,7 @@ scope = "source.v"
1721file-types = ["v", "vv", "vsh"]
1786file-types = ["v", "vv", "vsh"]
1722shebangs = ["v run"]
1787shebangs = ["v run"]
1723roots = ["v.mod"]
1788roots = ["v.mod"]
1724−language-server = { command = "v", args = ["ls"] }
1789+language-servers = [ "vlang-language-server" ]
1725auto-format = true
1790auto-format = true
1726comment-token = "//"
1791comment-token = "//"
1727indent = { tab-width = 4, unit = "\t" }
1792indent = { tab-width = 4, unit = "\t" }
@@ -1736,7 +1801,7 @@ scope = "source.verilog"
1736file-types = ["v", "vh", "sv", "svh"]
1801file-types = ["v", "vh", "sv", "svh"]
1737roots = []
1802roots = []
1738comment-token = "//"
1803comment-token = "//"
1739−language-server = { command = "svlangserver", args = [] }
1804+language-servers = [ "svlangserver" ]
1740indent = { tab-width = 2, unit = " " }
1805indent = { tab-width = 2, unit = " " }
1741injection-regex = "verilog"
1806injection-regex = "verilog"
@@ -1775,7 +1840,7 @@ injection-regex = "openscad"
1775file-types = ["scad"]
1840file-types = ["scad"]
1776roots = []
1841roots = []
1777comment-token = "//"
1842comment-token = "//"
1778−language-server = { command = "openscad-lsp", args = ["--stdio"] }
1843+language-servers = [ "openscad-lsp" ]
1779indent = { tab-width = 2, unit = "\t" }
1844indent = { tab-width = 2, unit = "\t" }
1781[[grammar]]
1846[[grammar]]
@@ -1789,7 +1854,7 @@ injection-regex = "prisma"
1789file-types = ["prisma"]
1854file-types = ["prisma"]
1790roots = ["package.json"]
1855roots = ["package.json"]
1791comment-token = "//"
1856comment-token = "//"
1792−language-server = { command = "prisma-language-server", args = ["--stdio"] }
1857+language-servers = [ "prisma-language-server" ]
1793indent = { tab-width = 2, unit = " " }
1858indent = { tab-width = 2, unit = " " }
1795[[grammar]]
1860[[grammar]]
@@ -1803,7 +1868,7 @@ injection-regex = "(clojure|clj|edn|boot)"
1803file-types = ["clj", "cljs", "cljc", "clje", "cljr", "cljx", "edn", "boot"]
1868file-types = ["clj", "cljs", "cljc", "clje", "cljr", "cljx", "edn", "boot"]
1804roots = ["project.clj", "build.boot", "deps.edn", "shadow-cljs.edn"]
1869roots = ["project.clj", "build.boot", "deps.edn", "shadow-cljs.edn"]
1805comment-token = ";"
1870comment-token = ";"
1806−language-server = { command = "clojure-lsp" }
1871+language-servers = [ "clojure-lsp" ]
1807indent = { tab-width = 2, unit = " " }
1872indent = { tab-width = 2, unit = " " }
1809[[grammar]]
1874[[grammar]]
@@ -1827,7 +1892,7 @@ file-types = ["elv"]
1827roots = []
1892roots = []
1828comment-token = "#"
1893comment-token = "#"
1829indent = { tab-width = 2, unit = " " }
1894indent = { tab-width = 2, unit = " " }
1830−language-server = { command = "elvish", args = ["-lsp"] }
1895+language-servers = [ "elvish" ]
1831grammar = "elvish"
1896grammar = "elvish"
1833[[grammar]]
1898[[grammar]]
@@ -1843,7 +1908,7 @@ shebangs = []
1843roots = []
1908roots = []
1844comment-token = "--"
1909comment-token = "--"
1845indent = { tab-width = 2, unit = " " }
1910indent = { tab-width = 2, unit = " " }
1846−language-server = { command = "idris2-lsp" }
1911+language-servers = [ "idris2-lsp" ]
1848[[language]]
1913[[language]]
1849name = "fortran"
1914name = "fortran"
@@ -1853,7 +1918,7 @@ file-types = ["f", "for", "f90", "f95", "f03"]
1853roots = ["fpm.toml"]
1918roots = ["fpm.toml"]
1854comment-token = "!"
1919comment-token = "!"
1855indent = { tab-width = 4, unit = " "}
1920indent = { tab-width = 4, unit = " "}
1856−language-server = { command = "fortls", args = ["--lowercase_intrinsics"] }
1921+language-servers = [ "fortls" ]
1858[[grammar]]
1923[[grammar]]
1859name = "fortran"
1924name = "fortran"
@@ -1880,7 +1945,7 @@ file-types = ["dot"]
1880roots = []
1945roots = []
1881comment-token = "//"
1946comment-token = "//"
1882indent = { tab-width = 4, unit = " " }
1947indent = { tab-width = 4, unit = " " }
1883−language-server = { command = "dot-language-server", args = ["--stdio"] }
1948+language-servers = [ "dot-language-server" ]
1885[[grammar]]
1950[[grammar]]
1886name = "dot"
1951name = "dot"
@@ -1894,7 +1959,7 @@ file-types = ["cue"]
1894roots = ["cue.mod"]
1959roots = ["cue.mod"]
1895auto-format = true
1960auto-format = true
1896comment-token = "//"
1961comment-token = "//"
1897−language-server = { command = "cuelsp" }
1962+language-servers = [ "cuelsp" ]
1898indent = { tab-width = 4, unit = "\t" }
1963indent = { tab-width = 4, unit = "\t" }
1899formatter = { command = "cue", args = ["fmt", "-"] }
1964formatter = { command = "cue", args = ["fmt", "-"] }
@@ -1910,7 +1975,7 @@ file-types = ["slint"]
1910roots = []
1975roots = []
1911comment-token = "//"
1976comment-token = "//"
1912indent = { tab-width = 4, unit = " " }
1977indent = { tab-width = 4, unit = " " }
1913−language-server = { command = "slint-lsp", args = [] }
1978+language-servers = [ "slint-lsp" ]
1915[[grammar]]
1980[[grammar]]
1916name = "slint"
1981name = "slint"
@@ -1962,7 +2027,7 @@ file-types = ["pas", "pp", "inc", "lpr", "lfm"]
1962roots = []
2027roots = []
1963comment-token = "//"
2028comment-token = "//"
1964indent = { tab-width = 2, unit = " " }
2029indent = { tab-width = 2, unit = " " }
1965−language-server = { command = "pasls", args = [] }
2030+language-servers = [ "pasls" ]
1967[[grammar]]
2032[[grammar]]
1968name = "pascal"
2033name = "pascal"
@@ -1987,7 +2052,7 @@ file-types = ["libsonnet", "jsonnet"]
1987roots = ["jsonnetfile.json"]
2052roots = ["jsonnetfile.json"]
1988comment-token = "//"
2053comment-token = "//"
1989indent = { tab-width = 2, unit = " " }
2054indent = { tab-width = 2, unit = " " }
1990−language-server = { command = "jsonnet-language-server", args= ["-t", "--lint"] }
2055+language-servers = [ "jsonnet-language-server" ]
1992[[grammar]]
2057[[grammar]]
1993name = "jsonnet"
2058name = "jsonnet"
@@ -2013,7 +2078,7 @@ file-types = ["bass"]
2013roots = []
2078roots = []
2014comment-token = ";"
2079comment-token = ";"
2015indent = { tab-width = 2, unit = " " }
2080indent = { tab-width = 2, unit = " " }
2016−language-server = { command = "bass", args = ["--lsp"] }
2081+language-servers = [ "bass" ]
2018[[grammar]]
2083[[grammar]]
2019name = "bass"
2084name = "bass"
@@ -2049,7 +2114,7 @@ roots = []
2049comment-token = "//"
2114comment-token = "//"
2050injection-regex = "d"
2115injection-regex = "d"
2051indent = { tab-width = 4, unit = " "}
2116indent = { tab-width = 4, unit = " "}
2052−language-server = { command = "serve-d" }
2117+language-servers = [ "serve-d" ]
2053formatter = { command = "dfmt" }
2118formatter = { command = "dfmt" }
2055[[grammar]]
2120[[grammar]]
@@ -2173,7 +2238,7 @@ roots = []
2173auto-format = true
2238auto-format = true
2174comment-token = "//"
2239comment-token = "//"
2175indent = { tab-width = 2, unit = " "}
2240indent = { tab-width = 2, unit = " "}
2176−language-server = { command = "bicep-langserver" }
2241+language-servers = [ "bicep-langserver" ]
2178[[grammar]]
2243[[grammar]]
2179name = "bicep"
2244name = "bicep"
@@ -2184,7 +2249,7 @@ name = "qml"
2184scope = "source.qml"
2249scope = "source.qml"
2185file-types = ["qml"]
2250file-types = ["qml"]
2186roots = []
2251roots = []
2187−language-server = { command = "qmlls" }
2252+language-servers = [ "qmlls" ]
2188indent = { tab-width = 4, unit = " " }
2253indent = { tab-width = 4, unit = " " }
2189grammar = "qmljs"
2254grammar = "qmljs"
@@ -2239,7 +2304,7 @@ file-types = ["dhall"]
2239roots = []
2304roots = []
2240comment-token = "--"
2305comment-token = "--"
2241indent = { tab-width = 2, unit = " " }
2306indent = { tab-width = 2, unit = " " }
2242−language-server = { command = "dhall-lsp-server" }
2307+language-servers = [ "dhall-lsp-server" ]
2243formatter = { command = "dhall" , args = ["format"] }
2308formatter = { command = "dhall" , args = ["format"] }
2245[[grammar]]
2310[[grammar]]
@@ -2401,7 +2466,7 @@ file-types = ["smithy"]
2401roots = ["smithy-build.json"]
2466roots = ["smithy-build.json"]
2402comment-token = "//"
2467comment-token = "//"
2403indent = { tab-width = 4, unit = " " }
2468indent = { tab-width = 4, unit = " " }
2404−language-server = { command = "cs", args = ["launch", "--contrib", "smithy-language-server", "--", "0"] }
2469+language-servers = [ "cs" ]
2406[[grammar]]
2471[[grammar]]
2407name = "smithy"
2472name = "smithy"
@@ -2413,7 +2478,7 @@ scope = "source.vhdl"
2413file-types = ["vhd", "vhdl"]
2478file-types = ["vhd", "vhdl"]
2414roots = []
2479roots = []
2415comment-token = "--"
2480comment-token = "--"
2416−language-server = { command = "vhdl_ls", args = [] }
2481+language-servers = [ "vhdl_ls" ]
2417indent = { tab-width = 2, unit = " " }
2482indent = { tab-width = 2, unit = " " }
2418injection-regex = "vhdl"
2483injection-regex = "vhdl"
@@ -2429,7 +2494,7 @@ injection-regex = "rego"
2429file-types = ["rego"]
2494file-types = ["rego"]
2430auto-format = true
2495auto-format = true
2431comment-token = "#"
2496comment-token = "#"
2432−language-server = { command = "regols" }
2497+language-servers = [ "regols" ]
2433grammar = "rego"
2498grammar = "rego"
2435[[grammar]]
2500[[grammar]]
@@ -2445,7 +2510,7 @@ shebangs = []
2445roots = []
2510roots = []
2446comment-token = "#"
2511comment-token = "#"
2447indent = { tab-width = 2, unit = " " }
2512indent = { tab-width = 2, unit = " " }
2448−language-server = { command = "nimlangserver" }
2513+language-servers = [ "nimlangserver" ]
2450[language.auto-pairs]
2515[language.auto-pairs]
2451'(' = ')'
2516'(' = ')'
@@ -2485,7 +2550,7 @@ name = "markdoc"
2485scope = "text.markdoc"
2550scope = "text.markdoc"
2486roots = []
2551roots = []
2487file-types = ["mdoc"]
2552file-types = ["mdoc"]
2488−language-server = { command = "markdoc-ls", args = ["--stdio"] }
2553+language-servers = [ "markdoc-ls" ]
2490[[grammar]]
2555[[grammar]]
2491name = "markdoc"
2556name = "markdoc"
@@ -2498,7 +2563,7 @@ injection-regex = "(cl|opencl)"
2498file-types = ["cl"]
2563file-types = ["cl"]
2499roots = []
2564roots = []
2500comment-token = "//"
2565comment-token = "//"
2501−language-server = { command = "clangd" }
2566+language-servers = [ "clangd" ]
2503[[grammar]]
2568[[grammar]]
2504name = "opencl"
2569name = "opencl"