Language Support
The following languages and Language Servers are supported. To use Language Server features, you must first install 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 |
|---|---|---|---|---|
| astro | ✓ | |||
| awk | ✓ | ✓ | awk-language-server | |
| bash | ✓ | ✓ | ✓ | bash-language-server |
| bass | ✓ | bass | ||
| beancount | ✓ | |||
| bibtex | ✓ | texlab | ||
| bicep | ✓ | bicep-langserver | ||
| blueprint | ✓ | blueprint-compiler | ||
| c | ✓ | ✓ | ✓ | clangd |
| c-sharp | ✓ | ✓ | OmniSharp | |
| cabal | ||||
| cairo | ✓ | ✓ | ✓ | cairo-language-server |
| capnp | ✓ | ✓ | ||
| 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 | |
| devicetree | ✓ | |||
| dhall | ✓ | ✓ | dhall-lsp-server | |
| diff | ✓ | |||
| dockerfile | ✓ | docker-langserver | ||
| dot | ✓ | dot-language-server | ||
| dtd | ✓ | |||
| edoc | ✓ | |||
| eex | ✓ | |||
| ejs | ✓ | |||
| elixir | ✓ | ✓ | ✓ | elixir-ls |
| elm | ✓ | ✓ | elm-language-server | |
| elvish | ✓ | elvish | ||
| env | ✓ | |||
| erb | ✓ | |||
| erlang | ✓ | ✓ | erlang_ls | |
| esdl | ✓ | |||
| fish | ✓ | ✓ | ✓ | |
| forth | ✓ | forth-lsp | ||
| fortran | ✓ | ✓ | fortls | |
| fsharp | ✓ | fsautocomplete | ||
| gas | ✓ | ✓ | ||
| gdscript | ✓ | ✓ | ✓ | |
| gemini | ✓ | |||
| git-attributes | ✓ | |||
| git-commit | ✓ | ✓ | ||
| git-config | ✓ | |||
| git-ignore | ✓ | |||
| git-rebase | ✓ | |||
| gleam | ✓ | ✓ | gleam | |
| glsl | ✓ | ✓ | ✓ | |
| go | ✓ | ✓ | ✓ | gopls |
| godot-resource | ✓ | |||
| gomod | ✓ | gopls | ||
| gotmpl | ✓ | gopls | ||
| gowork | ✓ | gopls | ||
| graphql | ✓ | graphql-lsp | ||
| hare | ✓ | |||
| haskell | ✓ | ✓ | haskell-language-server-wrapper | |
| haskell-persistent | ✓ | |||
| hcl | ✓ | ✓ | terraform-ls | |
| heex | ✓ | ✓ | elixir-ls | |
| hosts | ✓ | |||
| html | ✓ | vscode-html-language-server | ||
| hurl | ✓ | ✓ | ||
| idris | idris2-lsp | |||
| iex | ✓ | |||
| ini | ✓ | |||
| java | ✓ | ✓ | ✓ | jdtls |
| javascript | ✓ | ✓ | ✓ | typescript-language-server |
| jinja | ✓ | |||
| jsdoc | ✓ | |||
| json | ✓ | ✓ | vscode-json-language-server | |
| json5 | ✓ | |||
| jsonnet | ✓ | jsonnet-language-server | ||
| jsx | ✓ | ✓ | ✓ | typescript-language-server |
| julia | ✓ | ✓ | ✓ | julia |
| just | ✓ | ✓ | ✓ | |
| kdl | ✓ | |||
| kotlin | ✓ | kotlin-language-server | ||
| latex | ✓ | ✓ | texlab | |
| lean | ✓ | lean | ||
| ledger | ✓ | |||
| llvm | ✓ | ✓ | ✓ | |
| llvm-mir | ✓ | ✓ | ✓ | |
| llvm-mir-yaml | ✓ | ✓ | ||
| lua | ✓ | ✓ | ✓ | lua-language-server |
| make | ✓ | |||
| markdoc | ✓ | markdoc-ls | ||
| markdown | ✓ | marksman | ||
| markdown.inline | ✓ | |||
| matlab | ✓ | ✓ | ✓ | |
| mermaid | ✓ | |||
| meson | ✓ | ✓ | ||
| mint | mint | |||
| msbuild | ✓ | ✓ | ||
| nasm | ✓ | ✓ | ||
| nickel | ✓ | ✓ | nls | |
| nim | ✓ | ✓ | ✓ | nimlangserver |
| nix | ✓ | nil | ||
| nu | ✓ | |||
| nunjucks | ✓ | |||
| ocaml | ✓ | ✓ | ocamllsp | |
| ocaml-interface | ✓ | ocamllsp | ||
| odin | ✓ | ✓ | ols | |
| opencl | ✓ | ✓ | ✓ | clangd |
| openscad | ✓ | openscad-lsp | ||
| org | ✓ | |||
| pascal | ✓ | ✓ | pasls | |
| passwd | ✓ | |||
| pem | ✓ | |||
| perl | ✓ | ✓ | ✓ | perlnavigator |
| php | ✓ | ✓ | ✓ | intelephense |
| po | ✓ | ✓ | ||
| pod | ✓ | |||
| ponylang | ✓ | ✓ | ✓ | |
| 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 | |
| smithy | ✓ | cs | ||
| sml | ✓ | |||
| solidity | ✓ | solc | ||
| sql | ✓ | |||
| sshclientconfig | ✓ | |||
| starlark | ✓ | ✓ | ||
| strace | ✓ | |||
| svelte | ✓ | ✓ | svelteserver | |
| sway | ✓ | ✓ | ✓ | forc |
| swift | ✓ | sourcekit-lsp | ||
| t32 | ✓ | |||
| tablegen | ✓ | ✓ | ✓ | |
| task | ✓ | |||
| templ | ✓ | templ | ||
| tfvars | ✓ | ✓ | terraform-ls | |
| todotxt | ✓ | |||
| toml | ✓ | taplo | ||
| tsq | ✓ | |||
| tsx | ✓ | ✓ | ✓ | typescript-language-server |
| twig | ✓ | |||
| typescript | ✓ | ✓ | ✓ | typescript-language-server |
| 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 | ✓ | ✓ | ||
| yaml | ✓ | ✓ | yaml-language-server, ansible-language-server | |
| yuck | ✓ | |||
| zig | ✓ | ✓ | ✓ | zls |