on 6c11708 help sign in
helix/languages.toml
604 lines 13 kB history raw
1[[language]]
2name = "rust"
3scope = "source.rust"
4injection-regex = "rust"
5file-types = ["rs"]
6roots = ["Cargo.toml", "Cargo.lock"]
7auto-format = true
8comment-token = "//"
9language-server = { command = "rust-analyzer" }
10indent = { tab-width = 4, unit = " " }
12[[language]]
13name = "toml"
14scope = "source.toml"
15injection-regex = "toml"
16file-types = ["toml"]
17roots = []
18comment-token = "#"
20indent = { tab-width = 2, unit = " " }
22[[language]]
23name = "protobuf"
24scope = "source.proto"
25injection-regex = "protobuf"
26file-types = ["proto"]
27roots = []
28comment-token = "//"
30indent = { tab-width = 2, unit = " " }
32[[language]]
33name = "elixir"
34scope = "source.elixir"
35injection-regex = "elixir"
36file-types = ["ex", "exs"]
37shebangs = ["elixir"]
38roots = []
39comment-token = "#"
41language-server = { command = "elixir-ls" }
42indent = { tab-width = 2, unit = " " }
44[[language]]
45name = "fish"
46scope = "source.fish"
47injection-regex = "fish"
48file-types = ["fish"]
49shebangs = ["fish"]
50roots = []
51comment-token = "#"
53indent = { tab-width = 4, unit = " " }
55[[language]]
56name = "mint"
57scope = "source.mint"
58injection-regex = "mint"
59file-types = ["mint"]
60shebangs = []
61roots = []
62comment-token = "//"
64language-server = { command = "mint", args = ["ls"] }
65indent = { tab-width = 2, unit = " " }
67[[language]]
68name = "json"
69scope = "source.json"
70injection-regex = "json"
71file-types = ["json"]
72roots = []
74indent = { tab-width = 2, unit = " " }
76[[language]]
77name = "c"
78scope = "source.c"
79injection-regex = "c"
80file-types = ["c"] # TODO: ["h"]
81roots = []
82comment-token = "//"
84language-server = { command = "clangd" }
85indent = { tab-width = 2, unit = " " }
87[[language]]
88name = "cpp"
89scope = "source.cpp"
90injection-regex = "cpp"
91file-types = ["cc", "hh", "cpp", "hpp", "h", "ipp", "tpp", "cxx", "hxx", "ixx", "txx", "ino"]
92roots = []
93comment-token = "//"
95language-server = { command = "clangd" }
96indent = { tab-width = 2, unit = " " }
98[[language]]
99name = "c-sharp"
100scope = "source.csharp"
101injection-regex = "c-?sharp"
102file-types = ["cs"]
103roots = []
104comment-token = "//"
106indent = { tab-width = 4, unit = "\t" }
108[[language]]
109name = "go"
110scope = "source.go"
111injection-regex = "go"
112file-types = ["go"]
113roots = ["Gopkg.toml", "go.mod"]
114auto-format = true
115comment-token = "//"
117language-server = { command = "gopls" }
118# TODO: gopls needs utf-8 offsets?
119indent = { tab-width = 4, unit = "\t" }
121[[language]]
122name = "javascript"
123scope = "source.js"
124injection-regex = "^(js|javascript)$"
125file-types = ["js", "mjs"]
126shebangs = ["node"]
127roots = []
128comment-token = "//"
129# TODO: highlights-jsx, highlights-params
131language-server = { command = "typescript-language-server", args = ["--stdio"], language-id = "javascript" }
132indent = { tab-width = 2, unit = " " }
134[[language]]
135name = "typescript"
136scope = "source.ts"
137injection-regex = "^(ts|typescript)$"
138file-types = ["ts"]
139shebangs = []
140roots = []
141# TODO: highlights-jsx, highlights-params
143language-server = { command = "typescript-language-server", args = ["--stdio"], language-id = "typescript"}
144indent = { tab-width = 2, unit = " " }
146[[language]]
147name = "tsx"
148scope = "source.tsx"
149injection-regex = "^(tsx)$" # |typescript
150file-types = ["tsx"]
151roots = []
152# TODO: highlights-jsx, highlights-params
154language-server = { command = "typescript-language-server", args = ["--stdio"], language-id = "typescriptreact" }
155indent = { tab-width = 2, unit = " " }
157[[language]]
158name = "css"
159scope = "source.css"
160injection-regex = "css"
161file-types = ["css", "scss"]
162roots = []
164indent = { tab-width = 2, unit = " " }
166[[language]]
167name = "html"
168scope = "text.html.basic"
169injection-regex = "html"
170file-types = ["html"]
171roots = []
173indent = { tab-width = 2, unit = " " }
175[[language]]
176name = "python"
177scope = "source.python"
178injection-regex = "python"
179file-types = ["py"]
180shebangs = ["python"]
181roots = []
182comment-token = "#"
184language-server = { command = "pylsp" }
185# TODO: pyls needs utf-8 offsets
186indent = { tab-width = 4, unit = " " }
188[[language]]
189name = "nix"
190scope = "source.nix"
191injection-regex = "nix"
192file-types = ["nix"]
193shebangs = []
194roots = []
195comment-token = "#"
197language-server = { command = "rnix-lsp" }
198indent = { tab-width = 2, unit = " " }
200[[language]]
201name = "ruby"
202scope = "source.ruby"
203injection-regex = "ruby"
204file-types = ["rb"]
205shebangs = ["ruby"]
206roots = []
207comment-token = "#"
209language-server = { command = "solargraph", args = ["stdio"] }
210indent = { tab-width = 2, unit = " " }
212[[language]]
213name = "bash"
214scope = "source.bash"
215injection-regex = "bash"
216file-types = ["sh", "bash", "zsh", ".bash_login", ".bash_logout", ".bash_profile", ".bashrc", ".profile", ".zshenv", ".zlogin", ".zlogout", ".zprofile", ".zshrc"]
217shebangs = ["sh", "bash", "dash"]
218roots = []
219comment-token = "#"
221language-server = { command = "bash-language-server", args = ["start"] }
222indent = { tab-width = 2, unit = " " }
224[[language]]
225name = "php"
226scope = "source.php"
227injection-regex = "php"
228file-types = ["php"]
229shebangs = ["php"]
230roots = []
232indent = { tab-width = 4, unit = " " }
234[[language]]
235name = "twig"
236scope = "source.twig"
237injection-regex = "twig"
238file-types = ["twig"]
239roots = []
241indent = { tab-width = 2, unit = " " }
243[[language]]
244name = "latex"
245scope = "source.tex"
246injection-regex = "tex"
247file-types = ["tex"]
248roots = []
249comment-token = "%"
251indent = { tab-width = 4, unit = "\t" }
253[[language]]
254name = "lean"
255scope = "source.lean"
256injection-regex = "lean"
257file-types = ["lean"]
258roots = [ "lakefile.lean" ]
259comment-token = "--"
260language-server = { command = "lean", args = [ "--server" ] }
262indent = { tab-width = 2, unit = " " }
264[[language]]
265name = "julia"
266scope = "source.julia"
267injection-regex = "julia"
268file-types = ["jl"]
269roots = []
270comment-token = "#"
271language-server = { command = "julia", args = [
272 "--startup-file=no",
273 "--history-file=no",
274 "--quiet",
275 "-e",
276 """
277 using LanguageServer;
278 using Pkg;
279 import StaticLint;
280 env_path = dirname(Pkg.Types.Context().env.project_file);
281 server = LanguageServer.LanguageServerInstance(stdin, stdout, env_path, "");
282 server.runlinter = true;
283 run(server);
284 """,
285 ] }
286indent = { tab-width = 2, unit = " " }
288[[language]]
289name = "java"
290scope = "source.java"
291injection-regex = "java"
292file-types = ["java"]
293roots = ["pom.xml"]
294indent = { tab-width = 4, unit = " " }
296[[language]]
297name = "ledger"
298scope = "source.ledger"
299injection-regex = "ledger"
300file-types = ["ldg", "ledger", "journal"]
301roots = []
302comment-token = ";"
303indent = { tab-width = 4, unit = " " }
305[[language]]
306name = "ocaml"
307scope = "source.ocaml"
308injection-regex = "ocaml"
309file-types = ["ml"]
310shebangs = []
311roots = []
312comment-token = "(**)"
313indent = { tab-width = 2, unit = " " }
315[[language]]
316name = "ocaml-interface"
317scope = "source.ocaml.interface"
318file-types = ["mli"]
319shebangs = []
320roots = []
321comment-token = "(**)"
322indent = { tab-width = 2, unit = " "}
324[[language]]
325name = "lua"
326scope = "source.lua"
327file-types = ["lua"]
328shebangs = ["lua"]
329roots = []
330comment-token = "--"
331indent = { tab-width = 2, unit = " " }
333[[language]]
334name = "svelte"
335scope = "source.svelte"
336injection-regex = "svelte"
337file-types = ["svelte"]
338roots = []
339indent = { tab-width = 2, unit = " " }
340language-server = { command = "svelteserver", args = ["--stdio"] }
343[[language]]
344name = "vue"
345scope = "source.vue"
346injection-regex = "vue"
347file-types = ["vue"]
348roots = []
349indent = { tab-width = 2, unit = " " }
351[[language]]
352name = "yaml"
353scope = "source.yaml"
354file-types = ["yml", "yaml"]
355roots = []
356comment-token = "#"
357indent = { tab-width = 2, unit = " " }
358injection-regex = "yml|yaml"
360[[language]]
361name = "haskell"
362scope = "source.haskell"
363injection-regex = "haskell"
364file-types = ["hs"]
365roots = []
366comment-token = "--"
367language-server = { command = "haskell-language-server-wrapper", args = ["--lsp"] }
368indent = { tab-width = 2, unit = " " }
370[[language]]
371name = "zig"
372scope = "source.zig"
373injection-regex = "zig"
374file-types = ["zig"]
375roots = ["build.zig"]
376auto-format = true
377comment-token = "//"
379language-server = { command = "zls" }
380indent = { tab-width = 4, unit = " " }
382[[language]]
383name = "prolog"
384scope = "source.prolog"
385roots = []
386file-types = ["pl", "prolog"]
387shebangs = ["swipl"]
388comment-token = "%"
390language-server = { command = "swipl", args = [
391 "-g", "use_module(library(lsp_server))",
392 "-g", "lsp_server:main",
393 "-t", "halt", "--", "stdio"] }
395[[language]]
396name = "tsq"
397scope = "source.tsq"
398file-types = ["scm"]
399roots = []
400comment-token = ";"
401injection-regex = "tsq"
402indent = { tab-width = 2, unit = " " }
404[[language]]
405name = "cmake"
406scope = "source.cmake"
407file-types = ["cmake", "CMakeLists.txt"]
408roots = []
409comment-token = "#"
410indent = { tab-width = 2, unit = " " }
411language-server = { command = "cmake-language-server" }
412injection-regex = "cmake"
414[[language]]
415name = "make"
416scope = "source.make"
417file-types = ["Makefile", "makefile", "justfile", ".justfile"]
418roots =[]
419comment-token = "#"
421[[language]]
422name = "glsl"
423scope = "source.glsl"
424file-types = ["glsl", "vert", "tesc", "tese", "geom", "frag", "comp" ]
425roots = []
426comment-token = "//"
427indent = { tab-width = 4, unit = " " }
428injection-regex = "glsl"
430[[language]]
431name = "perl"
432scope = "source.perl"
433file-types = ["pl", "pm"]
434shebangs = ["perl"]
435roots = []
436comment-token = "#"
437indent = { tab-width = 2, unit = " " }
439[[language]]
440name = "racket"
441scope = "source.rkt"
442roots = []
443file-types = ["rkt"]
444shebangs = ["racket"]
445comment-token = ";"
446language-server = { command = "racket", args = ["-l", "racket-langserver"] }
448[[language]]
449name = "comment"
450scope = "scope.comment"
451roots = []
452file-types = []
453injection-regex = "comment"
455[[language]]
456name = "wgsl"
457scope = "source.wgsl"
458file-types = ["wgsl"]
459roots = []
460comment-token = "//"
461indent = { tab-width = 4, unit = " " }
463[[language]]
464name = "llvm"
465scope = "source.llvm"
466roots = []
467file-types = ["ll"]
468comment-token = ";"
469indent = { tab-width = 2, unit = " " }
470injection-regex = "llvm"
472[[language]]
473name = "llvm-mir"
474scope = "source.llvm_mir"
475roots = []
476file-types = []
477comment-token = ";"
478indent = { tab-width = 2, unit = " " }
479injection-regex = "mir"
481[[language]]
482name = "llvm-mir-yaml"
483tree-sitter-library = "yaml"
484scope = "source.yaml"
485roots = []
486file-types = ["mir"]
487comment-token = "#"
488indent = { tab-width = 2, unit = " " }
490[[language]]
491name = "tablegen"
492scope = "source.tablegen"
493roots = []
494file-types = ["td"]
495comment-token = "//"
496indent = { tab-width = 2, unit = " " }
497injection-regex = "tablegen"
499[[language]]
500name = "markdown"
501scope = "source.md"
502injection-regex = "md|markdown"
503file-types = ["md"]
504roots = []
506indent = { tab-width = 2, unit = " " }
508[[language]]
509name = "dart"
510scope = "source.dart"
511file-types = ["dart"]
512roots = ["pubspec.yaml"]
513auto-format = true
514comment-token = "//"
515language-server = { command = "dart", args = ["language-server", "--client-id=helix"] }
516indent = { tab-width = 2, unit = " " }
518[[language]]
519name = "scala"
520scope = "source.scala"
521roots = ["build.sbt", "pom.xml"]
522file-types = ["scala", "sbt"]
523comment-token = "//"
524indent = { tab-width = 2, unit = " " }
525language-server = { command = "metals" }
527[[language]]
528name = "dockerfile"
529scope = "source.dockerfile"
530injection-regex = "docker|dockerfile"
531roots = ["Dockerfile"]
532file-types = ["Dockerfile", "dockerfile"]
533comment-token = "#"
534indent = { tab-width = 2, unit = " " }
535language-server = { command = "docker-langserver", args = ["--stdio"] }
537[[language]]
538name = "git-commit"
539scope = "git.commitmsg"
540roots = []
541file-types = ["COMMIT_EDITMSG"]
542comment-token = "#"
543indent = { tab-width = 2, unit = " " }
545[[language]]
546name = "git-diff"
547scope = "source.diff"
548roots = []
549file-types = ["diff"]
550injection-regex = "diff"
551comment-token = "#"
552indent = { tab-width = 2, unit = " " }
554[[language]]
555name = "git-rebase"
556scope = "source.gitrebase"
557roots = []
558file-types = ["git-rebase-todo"]
559injection-regex = "git-rebase"
560comment-token = "#"
561indent = { tab-width = 2, unit = " " }
563[[language]]
564name = "regex"
565scope = "source.regex"
566injection-regex = "regex"
567file-types = ["regex"]
568roots = []
570[[language]]
571name = "git-config"
572scope = "source.gitconfig"
573roots = []
574# TODO: allow specifying file-types as a regex so we can read directory names (e.g. `.git/config`)
575file-types = [".gitmodules", ".gitconfig"]
576injection-regex = "git-config"
577comment-token = "#"
578indent = { tab-width = 4, unit = "\t" }
580[[language]]
581name = "graphql"
582scope = "source.graphql"
583injection-regex = "graphql"
584file-types = ["gql", "graphql"]
585roots = []
586indent = { tab-width = 2, unit = " " }
588[[language]]
589name = "elm"
590scope = "source.elm"
591injection-regex = "elm"
592file-types = ["elm"]
593roots = ["elm.json"]
594auto-format = true
595comment-token = "--"
596language-server = { command = "elm-language-server" }
597indent = { tab-width = 4, unit = " " }
599[[language]]
600name = "iex"
601scope = "source.iex"
602injection-regex = "iex"
603file-types = ["iex"]
604roots = []