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 |
---|---|---|---|---|
agda | ✓ | |||
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 | haskell-language-server-wrapper | |||
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 | |
dbml | ✓ | |||
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 | ✓ | ✓ | ✓ | |
gn | ✓ | |||
go | ✓ | ✓ | ✓ | gopls , golangci-lint-langserver |
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 | |
hocon | ✓ | ✓ | ||
hosts | ✓ | |||
html | ✓ | vscode-html-language-server | ||
hurl | ✓ | ✓ | ||
idris | idris2-lsp | |||
iex | ✓ | |||
ini | ✓ | |||
janet | ✓ | |||
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 | ✓ | ✓ | ||
log | ✓ | |||
lpf | ✓ | |||
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 | ✓ | 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 | |
smali | ✓ | ✓ | ||
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 |
typst | ✓ | 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 | ✓ | ✓ | ||
yaml | ✓ | ✓ | yaml-language-server , ansible-language-server | |
yuck | ✓ | |||
zig | ✓ | ✓ | ✓ | zls |