Language Support
The following languages and Language Servers are supported. To use Language Server features, you must first configure the appropriate Language Server.
You can check the language support in your installed helix version with hx --health.
Also see the Language Configuration docs and the Adding Languages guide for more language configuration information.
| Language | Syntax Highlighting | Treesitter Textobjects | Auto Indent | Code Navigation Tags | Rainbow Brackets | Default language servers |
|---|---|---|---|---|---|---|
| ada | ✓ | ✓ | ada_language_server | |||
| adl | ✓ | ✓ | ✓ | |||
| agda | ✓ | |||||
| alloy | ✓ | |||||
| amber | ✓ | amber-lsp | ||||
| astro | ✓ | astro-ls | ||||
| awk | ✓ | ✓ | awk-language-server | |||
| bash | ✓ | ✓ | ✓ | ✓ | ✓ | bash-language-server |
| bass | ✓ | bass | ||||
| beancount | ✓ | beancount-language-server | ||||
| bibtex | ✓ | texlab | ||||
| bicep | ✓ | bicep-langserver | ||||
| bitbake | ✓ | bitbake-language-server | ||||
| blade | ✓ | ✓ | ✓ | |||
| blueprint | ✓ | blueprint-compiler | ||||
| bovex | ✓ | ✓ | ||||
| c | ✓ | ✓ | ✓ | ✓ | ✓ | clangd |
| c-sharp | ✓ | ✓ | ✓ | OmniSharp | ||
| cabal | haskell-language-server-wrapper | |||||
| caddyfile | ✓ | ✓ | ✓ | |||
| cairo | ✓ | ✓ | ✓ | cairo-language-server | ||
| capnp | ✓ | ✓ | ||||
| cel | ✓ | |||||
| circom | ✓ | circom-lsp | ||||
| clarity | ✓ | clarinet | ||||
| clojure | ✓ | ✓ | clojure-lsp | |||
| cmake | ✓ | ✓ | ✓ | neocmakelsp, cmake-language-server | ||
| codeql | ✓ | ✓ | codeql | |||
| comment | ✓ | |||||
| common-lisp | ✓ | ✓ | ✓ | cl-lsp | ||
| cpon | ✓ | ✓ | ||||
| cpp | ✓ | ✓ | ✓ | ✓ | ✓ | clangd |
| cross-config | ✓ | ✓ | ✓ | taplo, tombi | ||
| crystal | ✓ | ✓ | ✓ | ✓ | crystalline, ameba-ls | |
| css | ✓ | ✓ | ✓ | vscode-css-language-server | ||
| csv | ✓ | |||||
| cue | ✓ | cuelsp | ||||
| cylc | ✓ | ✓ | ✓ | |||
| cython | ✓ | ✓ | ✓ | |||
| d | ✓ | ✓ | ✓ | serve-d | ||
| dart | ✓ | ✓ | ✓ | dart | ||
| dbml | ✓ | |||||
| debian | ✓ | |||||
| devicetree | ✓ | dts-lsp | ||||
| dhall | ✓ | ✓ | dhall-lsp-server | |||
| diff | ✓ | |||||
| djot | ✓ | |||||
| docker-bake | ✓ | ✓ | ✓ | ✓ | ✓ | docker-language-server |
| docker-compose | ✓ | ✓ | ✓ | docker-compose-langserver, yaml-language-server, docker-language-server | ||
| dockerfile | ✓ | ✓ | docker-langserver, docker-language-server | |||
| dot | ✓ | dot-language-server | ||||
| doxyfile | ✓ | ✓ | ✓ | ✓ | ||
| dtd | ✓ | |||||
| dune | ✓ | |||||
| dunstrc | ✓ | |||||
| earthfile | ✓ | ✓ | ✓ | earthlyls | ||
| edoc | ✓ | |||||
| eex | ✓ | |||||
| eiffel | ✓ | ✓ | ✓ | eiffel-language-server | ||
| ejs | ✓ | |||||
| elisp | ✓ | ✓ | ||||
| elixir | ✓ | ✓ | ✓ | ✓ | ✓ | elixir-ls, expert |
| elm | ✓ | ✓ | ✓ | elm-language-server | ||
| elvish | ✓ | elvish | ||||
| env | ✓ | ✓ | ||||
| erb | ✓ | |||||
| erlang | ✓ | ✓ | ✓ | ✓ | erlang_ls, elp | |
| esdl | ✓ | |||||
| fennel | ✓ | fennel-ls | ||||
| fga | ✓ | ✓ | ✓ | |||
| fidl | ✓ | |||||
| fish | ✓ | ✓ | ✓ | fish-lsp | ||
| flatbuffers | ✓ | |||||
| forth | ✓ | forth-lsp | ||||
| fortran | ✓ | ✓ | fortls | |||
| fsharp | ✓ | fsautocomplete | ||||
| gas | ✓ | ✓ | asm-lsp | |||
| gdscript | ✓ | ✓ | ✓ | ✓ | ||
| gemini | ✓ | |||||
| gherkin | ✓ | |||||
| ghostty | ✓ | |||||
| git-attributes | ✓ | |||||
| git-cliff-config | ✓ | ✓ | ✓ | taplo, tombi | ||
| git-commit | ✓ | ✓ | ||||
| git-config | ✓ | ✓ | ||||
| git-ignore | ✓ | |||||
| git-notes | ✓ | |||||
| git-rebase | ✓ | |||||
| gitlab-ci | ✓ | ✓ | ✓ | ✓ | ✓ | yaml-language-server, gitlab-ci-ls |
| gjs | ✓ | ✓ | ✓ | ✓ | typescript-language-server, vscode-eslint-language-server, ember-language-server | |
| gleam | ✓ | ✓ | ✓ | gleam | ||
| glimmer | ✓ | ember-language-server | ||||
| glsl | ✓ | ✓ | ✓ | glsl_analyzer | ||
| gn | ✓ | |||||
| go | ✓ | ✓ | ✓ | ✓ | ✓ | gopls, golangci-lint-langserver |
| go-format-string | ✓ | ✓ | ||||
| godot-resource | ✓ | ✓ | ||||
| gomod | ✓ | gopls | ||||
| gotmpl | ✓ | gopls | ||||
| gowork | ✓ | gopls | ||||
| gpr | ✓ | ada_language_server | ||||
| graphql | ✓ | ✓ | graphql-lsp | |||
| gren | ✓ | ✓ | ||||
| groovy | ✓ | |||||
| gts | ✓ | ✓ | ✓ | ✓ | typescript-language-server, vscode-eslint-language-server, ember-language-server | |
| hare | ✓ | |||||
| haskell | ✓ | ✓ | haskell-language-server-wrapper | |||
| haskell-persistent | ✓ | |||||
| hcl | ✓ | ✓ | ✓ | terraform-ls | ||
| hdl | ✓ | hdls | ||||
| heex | ✓ | ✓ | elixir-ls, expert | |||
| helm | ✓ | helm_ls | ||||
| hocon | ✓ | ✓ | ✓ | |||
| hoon | ✓ | |||||
| hosts | ✓ | |||||
| html | ✓ | ✓ | ✓ | vscode-html-language-server, superhtml | ||
| htmldjango | ✓ | djlsp, vscode-html-language-server, superhtml | ||||
| hurl | ✓ | ✓ | ✓ | |||
| hyprlang | ✓ | ✓ | hyprls | |||
| idris | idris2-lsp | |||||
| iex | ✓ | |||||
| ini | ✓ | |||||
| ink | ✓ | |||||
| inko | ✓ | ✓ | ✓ | ✓ | ||
| janet | ✓ | ✓ | ✓ | |||
| java | ✓ | ✓ | ✓ | ✓ | ✓ | jdtls |
| javascript | ✓ | ✓ | ✓ | ✓ | ✓ | typescript-language-server |
| jinja | ✓ | |||||
| jjconfig | ✓ | ✓ | ✓ | taplo, tombi | ||
| jjdescription | ✓ | |||||
| jjrevset | ✓ | |||||
| jjtemplate | ✓ | |||||
| jq | ✓ | ✓ | jq-lsp | |||
| jsdoc | ✓ | |||||
| json | ✓ | ✓ | ✓ | ✓ | vscode-json-language-server | |
| json-ld | ✓ | ✓ | ✓ | vscode-json-language-server | ||
| json5 | ✓ | |||||
| jsonc | ✓ | ✓ | vscode-json-language-server | |||
| jsonnet | ✓ | jsonnet-language-server | ||||
| jsx | ✓ | ✓ | ✓ | ✓ | ✓ | typescript-language-server |
| julia | ✓ | ✓ | ✓ | julia | ||
| just | ✓ | ✓ | ✓ | ✓ | just-lsp | |
| kcl | ✓ | kcl-language-server | ||||
| kconfig | ✓ | ✓ | ||||
| kdl | ✓ | ✓ | ✓ | ✓ | ||
| koka | ✓ | ✓ | koka | |||
| kotlin | ✓ | ✓ | ✓ | ✓ | kotlin-language-server | |
| koto | ✓ | ✓ | ✓ | ✓ | koto-ls | |
| latex | ✓ | ✓ | texlab | |||
| ld | ✓ | ✓ | ||||
| ldif | ✓ | |||||
| lean | ✓ | lake | ||||
| ledger | ✓ | |||||
| llvm | ✓ | ✓ | ✓ | |||
| llvm-mir | ✓ | ✓ | ✓ | |||
| llvm-mir-yaml | ✓ | ✓ | ||||
| log | ✓ | |||||
| lpf | ✓ | |||||
| lua | ✓ | ✓ | ✓ | ✓ | lua-language-server | |
| luap | ✓ | |||||
| luau | ✓ | ✓ | ✓ | luau-lsp | ||
| ✓ | ✓ | |||||
| make | ✓ | ✓ | ||||
| markdoc | ✓ | markdoc-ls | ||||
| markdown | ✓ | ✓ | marksman, markdown-oxide | |||
| markdown-rustdoc | ✓ | |||||
| markdown.inline | ✓ | |||||
| matlab | ✓ | ✓ | ✓ | |||
| mermaid | ✓ | |||||
| meson | ✓ | ✓ | mesonlsp | |||
| mint | mint | |||||
| miseconfig | ✓ | ✓ | ✓ | taplo, tombi | ||
| mojo | ✓ | ✓ | ✓ | pixi | ||
| move | ✓ | |||||
| msbuild | ✓ | ✓ | ||||
| nasm | ✓ | ✓ | asm-lsp | |||
| nearley | ✓ | ✓ | ||||
| nestedtext | ✓ | ✓ | ✓ | |||
| nginx | ✓ | |||||
| nickel | ✓ | ✓ | nls | |||
| nim | ✓ | ✓ | ✓ | nimlangserver | ||
| nix | ✓ | ✓ | ✓ | ✓ | nil, nixd | |
| nu | ✓ | ✓ | ✓ | nu | ||
| nunjucks | ✓ | |||||
| ocaml | ✓ | ✓ | ocamllsp | |||
| ocaml-interface | ✓ | ocamllsp | ||||
| odin | ✓ | ✓ | ✓ | ols | ||
| ohm | ✓ | ✓ | ✓ | |||
| opencl | ✓ | ✓ | ✓ | clangd | ||
| openscad | ✓ | openscad-lsp | ||||
| org | ✓ | |||||
| pascal | ✓ | ✓ | pasls | |||
| passwd | ✓ | |||||
| pem | ✓ | |||||
| perl | ✓ | ✓ | ✓ | perlnavigator | ||
| pest | ✓ | ✓ | ✓ | pest-language-server | ||
| php | ✓ | ✓ | ✓ | ✓ | ✓ | intelephense |
| php-only | ✓ | ✓ | ||||
| pip-requirements | ✓ | |||||
| pkgbuild | ✓ | ✓ | ✓ | termux-language-server, bash-language-server | ||
| pkl | ✓ | ✓ | pkl-lsp | |||
| po | ✓ | ✓ | ||||
| pod | ✓ | |||||
| ponylang | ✓ | ✓ | ✓ | |||
| powershell | ✓ | |||||
| prisma | ✓ | ✓ | prisma-language-server | |||
| prolog | ✓ | ✓ | swipl | |||
| properties | ✓ | ✓ | ||||
| protobuf | ✓ | ✓ | ✓ | ✓ | buf, pb, protols | |
| prql | ✓ | |||||
| pug | ✓ | |||||
| purescript | ✓ | ✓ | purescript-language-server | |||
| python | ✓ | ✓ | ✓ | ✓ | ✓ | ty, ruff, jedi-language-server, pylsp |
| qml | ✓ | ✓ | ✓ | qmlls | ||
| quarto | ✓ | ✓ | ||||
| quint | ✓ | quint-language-server | ||||
| r | ✓ | R | ||||
| racket | ✓ | ✓ | ✓ | racket | ||
| regex | ✓ | ✓ | ||||
| rego | ✓ | regols | ||||
| rescript | ✓ | ✓ | rescript-language-server | |||
| rmarkdown | ✓ | ✓ | R | |||
| robot | ✓ | robotframework_ls | ||||
| robots.txt | ✓ | ✓ | ✓ | |||
| ron | ✓ | ✓ | ✓ | ✓ | ||
| rst | ✓ | |||||
| ruby | ✓ | ✓ | ✓ | ✓ | ✓ | ruby-lsp, solargraph |
| rust | ✓ | ✓ | ✓ | ✓ | ✓ | rust-analyzer |
| rust-format-args | ✓ | |||||
| rust-format-args-macro | ✓ | ✓ | ✓ | ✓ | ||
| sage | ✓ | ✓ | ||||
| scala | ✓ | ✓ | ✓ | metals | ||
| scheme | ✓ | ✓ | ✓ | ✓ | ||
| scss | ✓ | ✓ | vscode-css-language-server | |||
| shellcheckrc | ✓ | ✓ | ||||
| slang | ✓ | ✓ | ✓ | slangd | ||
| slint | ✓ | ✓ | ✓ | slint-lsp | ||
| slisp | ✓ | ✓ | ||||
| smali | ✓ | ✓ | ||||
| smithy | ✓ | cs | ||||
| sml | ✓ | |||||
| snakemake | ✓ | ✓ | pylsp | |||
| solidity | ✓ | ✓ | solc | |||
| sourcepawn | ✓ | ✓ | sourcepawn-studio | |||
| spade | ✓ | ✓ | spade-language-server | |||
| spicedb | ✓ | ✓ | ||||
| sql | ✓ | ✓ | ||||
| sshclientconfig | ✓ | |||||
| starlark | ✓ | ✓ | ✓ | ✓ | starpls | |
| strace | ✓ | |||||
| strictdoc | ✓ | ✓ | ||||
| supercollider | ✓ | |||||
| svelte | ✓ | ✓ | svelteserver | |||
| sway | ✓ | ✓ | ✓ | forc | ||
| swift | ✓ | ✓ | ✓ | sourcekit-lsp | ||
| systemd | ✓ | systemd-lsp | ||||
| systemverilog | ✓ | |||||
| t32 | ✓ | |||||
| tablegen | ✓ | ✓ | ✓ | |||
| tact | ✓ | ✓ | ✓ | |||
| task | ✓ | |||||
| tcl | ✓ | ✓ | ||||
| teal | ✓ | teal-language-server | ||||
| templ | ✓ | templ | ||||
| tera | ✓ | |||||
| textproto | ✓ | ✓ | ✓ | |||
| tfvars | ✓ | ✓ | terraform-ls | |||
| thrift | ✓ | |||||
| tlaplus | ✓ | |||||
| todotxt | ✓ | |||||
| toml | ✓ | ✓ | ✓ | taplo, tombi | ||
| tsq | ✓ | ✓ | ts_query_ls | |||
| tsx | ✓ | ✓ | ✓ | ✓ | ✓ | typescript-language-server |
| twig | ✓ | |||||
| typescript | ✓ | ✓ | ✓ | ✓ | ✓ | typescript-language-server |
| typespec | ✓ | ✓ | ✓ | tsp-server | ||
| typst | ✓ | ✓ | tinymist | |||
| ungrammar | ✓ | |||||
| unison | ✓ | ✓ | ✓ | |||
| uxntal | ✓ | |||||
| v | ✓ | ✓ | ✓ | v-analyzer | ||
| vala | ✓ | ✓ | vala-language-server | |||
| vento | ✓ | |||||
| verilog | ✓ | ✓ | svlangserver | |||
| vhdl | ✓ | vhdl_ls | ||||
| vhs | ✓ | |||||
| vim | ✓ | |||||
| vue | ✓ | vue-language-server | ||||
| wast | ✓ | |||||
| wat | ✓ | wat_server | ||||
| webc | ✓ | |||||
| werk | ✓ | |||||
| wesl | ✓ | ✓ | ||||
| wgsl | ✓ | ✓ | ✓ | ✓ | ✓ | wgsl-analyzer |
| wikitext | ✓ | wikitext-lsp | ||||
| wit | ✓ | ✓ | ||||
| wren | ✓ | ✓ | ✓ | |||
| xit | ✓ | |||||
| xml | ✓ | ✓ | ✓ | ✓ | ||
| xtc | ✓ | |||||
| yaml | ✓ | ✓ | ✓ | ✓ | yaml-language-server, ansible-language-server | |
| yara | ✓ | yls | ||||
| yuck | ✓ | |||||
| zig | ✓ | ✓ | ✓ | zls |