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 | Default LSP |
|---|---|---|---|---|
| ada | ✓ | ✓ | ada_language_server, ada_language_server | |
| adl | ✓ | ✓ | ✓ | |
| agda | ✓ | |||
| astro | ✓ | |||
| awk | ✓ | ✓ | awk-language-server | |
| bash | ✓ | ✓ | ✓ | bash-language-server |
| bass | ✓ | bass | ||
| beancount | ✓ | |||
| bibtex | ✓ | texlab | ||
| bicep | ✓ | bicep-langserver | ||
| bitbake | ✓ | bitbake-language-server | ||
| blade | ✓ | |||
| blueprint | ✓ | blueprint-compiler | ||
| c | ✓ | ✓ | ✓ | clangd |
| c-sharp | ✓ | ✓ | OmniSharp | |
| cabal | haskell-language-server-wrapper | |||
| cairo | ✓ | ✓ | ✓ | cairo-language-server |
| capnp | ✓ | ✓ | ||
| cel | ✓ | |||
| clojure | ✓ | clojure-lsp | ||
| cmake | ✓ | ✓ | ✓ | cmake-language-server |
| comment | ✓ | |||
| common-lisp | ✓ | ✓ | cl-lsp | |
| cpon | ✓ | ✓ | ||
| cpp | ✓ | ✓ | ✓ | clangd |
| crystal | ✓ | ✓ | crystalline | |
| css | ✓ | ✓ | vscode-css-language-server | |
| cue | ✓ | cuelsp | ||
| d | ✓ | ✓ | ✓ | serve-d |
| dart | ✓ | ✓ | ✓ | dart |
| dbml | ✓ | |||
| devicetree | ✓ | |||
| dhall | ✓ | ✓ | dhall-lsp-server | |
| diff | ✓ | |||
| docker-compose | ✓ | ✓ | docker-compose-langserver, yaml-language-server | |
| dockerfile | ✓ | docker-langserver | ||
| dot | ✓ | dot-language-server | ||
| dtd | ✓ | |||
| earthfile | ✓ | ✓ | ✓ | earthlyls |
| edoc | ✓ | |||
| eex | ✓ | |||
| ejs | ✓ | |||
| elisp | ✓ | |||
| elixir | ✓ | ✓ | ✓ | elixir-ls |
| elm | ✓ | ✓ | elm-language-server | |
| elvish | ✓ | elvish | ||
| env | ✓ | |||
| erb | ✓ | |||
| erlang | ✓ | ✓ | erlang_ls | |
| esdl | ✓ | |||
| fidl | ✓ | |||
| fish | ✓ | ✓ | ✓ | |
| forth | ✓ | forth-lsp | ||
| fortran | ✓ | ✓ | fortls | |
| fsharp | ✓ | fsautocomplete | ||
| gas | ✓ | ✓ | ||
| gdscript | ✓ | ✓ | ✓ | |
| gemini | ✓ | |||
| git-attributes | ✓ | |||
| git-commit | ✓ | ✓ | ||
| git-config | ✓ | |||
| git-ignore | ✓ | |||
| git-rebase | ✓ | |||
| gjs | ✓ | ✓ | ✓ | typescript-language-server, vscode-eslint-language-server, ember-language-server |
| gleam | ✓ | ✓ | gleam | |
| glimmer | ✓ | ember-language-server | ||
| glsl | ✓ | ✓ | ✓ | |
| gn | ✓ | |||
| go | ✓ | ✓ | ✓ | gopls, golangci-lint-langserver |
| godot-resource | ✓ | |||
| gomod | ✓ | gopls | ||
| gotmpl | ✓ | gopls | ||
| gowork | ✓ | gopls | ||
| graphql | ✓ | ✓ | graphql-lsp | |
| groovy | ✓ | |||
| gts | ✓ | ✓ | ✓ | typescript-language-server, vscode-eslint-language-server, ember-language-server |
| hare | ✓ | |||
| haskell | ✓ | ✓ | haskell-language-server-wrapper | |
| haskell-persistent | ✓ | |||
| hcl | ✓ | ✓ | ✓ | terraform-ls |
| heex | ✓ | ✓ | elixir-ls | |
| helm | ✓ | helm_ls | ||
| hocon | ✓ | ✓ | ||
| hoon | ✓ | |||
| hosts | ✓ | |||
| html | ✓ | vscode-html-language-server | ||
| hurl | ✓ | ✓ | ✓ | |
| hyprlang | ✓ | ✓ | ||
| idris | idris2-lsp | |||
| iex | ✓ | |||
| ini | ✓ | |||
| inko | ✓ | ✓ | ✓ | |
| janet | ✓ | |||
| java | ✓ | ✓ | ✓ | jdtls |
| javascript | ✓ | ✓ | ✓ | typescript-language-server |
| jinja | ✓ | |||
| jsdoc | ✓ | |||
| json | ✓ | ✓ | ✓ | vscode-json-language-server |
| json5 | ✓ | |||
| jsonc | ✓ | ✓ | vscode-json-language-server | |
| jsonnet | ✓ | jsonnet-language-server | ||
| jsx | ✓ | ✓ | ✓ | typescript-language-server |
| julia | ✓ | ✓ | ✓ | julia |
| just | ✓ | ✓ | ✓ | |
| kdl | ✓ | ✓ | ✓ | |
| koka | ✓ | ✓ | koka | |
| kotlin | ✓ | kotlin-language-server | ||
| latex | ✓ | ✓ | texlab | |
| ld | ✓ | ✓ | ||
| ldif | ✓ | |||
| lean | ✓ | lean | ||
| ledger | ✓ | |||
| llvm | ✓ | ✓ | ✓ | |
| llvm-mir | ✓ | ✓ | ✓ | |
| llvm-mir-yaml | ✓ | ✓ | ||
| log | ✓ | |||
| lpf | ✓ | |||
| lua | ✓ | ✓ | ✓ | lua-language-server |
| make | ✓ | ✓ | ||
| markdoc | ✓ | markdoc-ls | ||
| markdown | ✓ | marksman, markdown-oxide | ||
| markdown.inline | ✓ | |||
| matlab | ✓ | ✓ | ✓ | |
| mermaid | ✓ | |||
| meson | ✓ | ✓ | ||
| mint | mint | |||
| mojo | ✓ | ✓ | ✓ | mojo-lsp-server |
| move | ✓ | |||
| msbuild | ✓ | ✓ | ||
| nasm | ✓ | ✓ | ||
| nickel | ✓ | ✓ | nls | |
| nim | ✓ | ✓ | ✓ | nimlangserver |
| nix | ✓ | ✓ | nil | |
| 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 | ✓ | |||
| pkgbuild | ✓ | ✓ | ✓ | pkgbuild-language-server, bash-language-server |
| pkl | ✓ | ✓ | ||
| po | ✓ | ✓ | ||
| pod | ✓ | |||
| ponylang | ✓ | ✓ | ✓ | |
| powershell | ✓ | |||
| prisma | ✓ | prisma-language-server | ||
| prolog | swipl | |||
| protobuf | ✓ | ✓ | ✓ | bufls, pb |
| prql | ✓ | |||
| purescript | ✓ | ✓ | purescript-language-server | |
| python | ✓ | ✓ | ✓ | pylsp |
| qml | ✓ | ✓ | qmlls | |
| r | ✓ | R | ||
| racket | ✓ | ✓ | racket | |
| regex | ✓ | |||
| rego | ✓ | regols | ||
| rescript | ✓ | ✓ | rescript-language-server | |
| rmarkdown | ✓ | ✓ | R | |
| robot | ✓ | robotframework_ls | ||
| ron | ✓ | ✓ | ||
| rst | ✓ | |||
| ruby | ✓ | ✓ | ✓ | solargraph |
| rust | ✓ | ✓ | ✓ | rust-analyzer |
| sage | ✓ | ✓ | ||
| scala | ✓ | ✓ | ✓ | metals |
| scheme | ✓ | ✓ | ||
| scss | ✓ | vscode-css-language-server | ||
| slint | ✓ | ✓ | ✓ | slint-lsp |
| smali | ✓ | ✓ | ||
| smithy | ✓ | cs | ||
| sml | ✓ | |||
| solidity | ✓ | ✓ | solc | |
| spicedb | ✓ | |||
| sql | ✓ | |||
| sshclientconfig | ✓ | |||
| starlark | ✓ | ✓ | ||
| strace | ✓ | |||
| supercollider | ✓ | |||
| svelte | ✓ | ✓ | svelteserver | |
| sway | ✓ | ✓ | ✓ | forc |
| swift | ✓ | ✓ | sourcekit-lsp | |
| t32 | ✓ | |||
| tablegen | ✓ | ✓ | ✓ | |
| tact | ✓ | ✓ | ✓ | |
| task | ✓ | |||
| tcl | ✓ | ✓ | ||
| templ | ✓ | templ | ||
| tfvars | ✓ | ✓ | terraform-ls | |
| todotxt | ✓ | |||
| toml | ✓ | ✓ | taplo | |
| tsq | ✓ | |||
| tsx | ✓ | ✓ | ✓ | typescript-language-server |
| twig | ✓ | |||
| typescript | ✓ | ✓ | ✓ | typescript-language-server |
| typst | ✓ | tinymist, typst-lsp | ||
| ungrammar | ✓ | |||
| unison | ✓ | ✓ | ||
| uxntal | ✓ | |||
| v | ✓ | ✓ | ✓ | v-analyzer |
| vala | ✓ | ✓ | vala-language-server | |
| verilog | ✓ | ✓ | svlangserver | |
| vhdl | ✓ | vhdl_ls | ||
| vhs | ✓ | |||
| vue | ✓ | vue-language-server | ||
| wast | ✓ | |||
| wat | ✓ | |||
| webc | ✓ | |||
| wgsl | ✓ | wgsl_analyzer | ||
| wit | ✓ | ✓ | ||
| wren | ✓ | ✓ | ✓ | |
| xit | ✓ | |||
| xml | ✓ | ✓ | ||
| xtc | ✓ | |||
| yaml | ✓ | ✓ | yaml-language-server, ansible-language-server | |
| yuck | ✓ | |||
| zig | ✓ | ✓ | ✓ | zls |