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 | |
adl | ✓ | ✓ | ✓ | |
agda | ✓ | |||
amber | ✓ | |||
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 | ✓ | |||
circom | ✓ | circom-lsp | ||
clojure | ✓ | clojure-lsp | ||
cmake | ✓ | ✓ | ✓ | cmake-language-server |
comment | ✓ | |||
common-lisp | ✓ | ✓ | cl-lsp | |
cpon | ✓ | ✓ | ||
cpp | ✓ | ✓ | ✓ | clangd |
crystal | ✓ | ✓ | crystalline | |
css | ✓ | ✓ | vscode-css-language-server | |
cue | ✓ | cuelsp | ||
cylc | ✓ | ✓ | ✓ | |
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 | ✓ | |||
dune | ✓ | |||
earthfile | ✓ | ✓ | ✓ | earthlyls |
edoc | ✓ | |||
eex | ✓ | |||
ejs | ✓ | |||
elisp | ✓ | |||
elixir | ✓ | ✓ | ✓ | elixir-ls |
elm | ✓ | ✓ | elm-language-server | |
elvish | ✓ | elvish | ||
env | ✓ | ✓ | ||
erb | ✓ | |||
erlang | ✓ | ✓ | erlang_ls , elp | |
esdl | ✓ | |||
fidl | ✓ | |||
fish | ✓ | ✓ | ✓ | |
forth | ✓ | forth-lsp | ||
fortran | ✓ | ✓ | fortls | |
fsharp | ✓ | fsautocomplete | ||
gas | ✓ | ✓ | ||
gdscript | ✓ | ✓ | ✓ | |
gemini | ✓ | |||
gherkin | ✓ | |||
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 | ✓ | ✓ | ✓ | glsl_analyzer |
gn | ✓ | |||
go | ✓ | ✓ | ✓ | gopls , golangci-lint-langserver |
godot-resource | ✓ | ✓ | ||
gomod | ✓ | gopls | ||
gotmpl | ✓ | gopls | ||
gowork | ✓ | gopls | ||
gpr | ✓ | ada_language_server | ||
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 , superhtml | ||
hurl | ✓ | ✓ | ✓ | |
hyprlang | ✓ | ✓ | hyprls | |
idris | idris2-lsp | |||
iex | ✓ | |||
ini | ✓ | |||
inko | ✓ | ✓ | ✓ | |
janet | ✓ | |||
java | ✓ | ✓ | ✓ | jdtls |
javascript | ✓ | ✓ | ✓ | typescript-language-server |
jinja | ✓ | |||
jjdescription | ✓ | |||
jq | ✓ | ✓ | jq-lsp | |
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 | ✓ | ✓ | mesonlsp | |
mint | mint | |||
mojo | ✓ | ✓ | ✓ | mojo-lsp-server |
move | ✓ | |||
msbuild | ✓ | ✓ | ||
nasm | ✓ | ✓ | ||
nestedtext | ✓ | ✓ | ✓ | |
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 | ✓ | |||
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 | ✓ | ✓ | ✓ | ruff , jedi-language-server , pylsp |
qml | ✓ | ✓ | qmlls | |
quint | ✓ | quint-language-server | ||
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 | ✓ | |||
snakemake | ✓ | ✓ | pylsp | |
solidity | ✓ | ✓ | solc | |
spade | ✓ | ✓ | spade-language-server | |
spicedb | ✓ | |||
sql | ✓ | ✓ | ||
sshclientconfig | ✓ | |||
starlark | ✓ | ✓ | ||
strace | ✓ | |||
supercollider | ✓ | |||
svelte | ✓ | ✓ | svelteserver | |
sway | ✓ | ✓ | ✓ | forc |
swift | ✓ | ✓ | sourcekit-lsp | |
t32 | ✓ | |||
tablegen | ✓ | ✓ | ✓ | |
tact | ✓ | ✓ | ✓ | |
task | ✓ | |||
tcl | ✓ | ✓ | ||
templ | ✓ | templ | ||
textproto | ✓ | ✓ | ✓ | |
tfvars | ✓ | ✓ | terraform-ls | |
thrift | ✓ | |||
todotxt | ✓ | |||
toml | ✓ | ✓ | taplo | |
tsq | ✓ | |||
tsx | ✓ | ✓ | ✓ | typescript-language-server |
twig | ✓ | |||
typescript | ✓ | ✓ | ✓ | typescript-language-server |
typespec | ✓ | ✓ | ✓ | tsp-server |
typst | ✓ | tinymist , typst-lsp | ||
ungrammar | ✓ | |||
unison | ✓ | ✓ | ✓ | |
uxntal | ✓ | |||
v | ✓ | ✓ | ✓ | v-analyzer |
vala | ✓ | ✓ | vala-language-server | |
vento | ✓ | |||
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 |