Language Support
The following languages and Language Servers are supported. In order to use Language Server features, you must first install the appropriate Language Server.
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 | ||
c | ✓ | ✓ | ✓ | clangd |
c-sharp | ✓ | ✓ | OmniSharp | |
cairo | ✓ | |||
clojure | ✓ | clojure-lsp | ||
cmake | ✓ | ✓ | ✓ | cmake-language-server |
comment | ✓ | |||
common-lisp | ✓ | cl-lsp | ||
cpon | ✓ | ✓ | ||
cpp | ✓ | ✓ | ✓ | clangd |
crystal | ✓ | |||
css | ✓ | vscode-css-language-server | ||
cue | ✓ | cuelsp | ||
d | ✓ | ✓ | ✓ | serve-d |
dart | ✓ | ✓ | dart | |
devicetree | ✓ | |||
diff | ✓ | |||
dockerfile | ✓ | docker-langserver | ||
dot | ✓ | dot-language-server | ||
edoc | ✓ | |||
eex | ✓ | |||
ejs | ✓ | |||
elixir | ✓ | ✓ | ✓ | elixir-ls |
elm | ✓ | elm-language-server | ||
elvish | ✓ | elvish | ||
env | ✓ | |||
erb | ✓ | |||
erlang | ✓ | ✓ | erlang_ls | |
esdl | ✓ | |||
fish | ✓ | ✓ | ✓ | |
fortran | ✓ | ✓ | fortls | |
gdscript | ✓ | ✓ | ||
git-attributes | ✓ | |||
git-commit | ✓ | |||
git-config | ✓ | |||
git-ignore | ✓ | |||
git-rebase | ✓ | |||
gleam | ✓ | ✓ | gleam | |
glsl | ✓ | ✓ | ✓ | |
go | ✓ | ✓ | ✓ | gopls |
godot-resource | ✓ | |||
gomod | ✓ | gopls | ||
gotmpl | ✓ | gopls | ||
gowork | ✓ | gopls | ||
graphql | ✓ | |||
hare | ✓ | |||
haskell | ✓ | ✓ | haskell-language-server-wrapper | |
hcl | ✓ | ✓ | terraform-ls | |
heex | ✓ | ✓ | elixir-ls | |
html | ✓ | vscode-html-language-server | ||
idris | idris2-lsp | |||
iex | ✓ | |||
ini | ✓ | |||
java | ✓ | ✓ | jdtls | |
javascript | ✓ | ✓ | ✓ | typescript-language-server |
jsdoc | ✓ | |||
json | ✓ | ✓ | vscode-json-language-server | |
jsonnet | ✓ | jsonnet-language-server | ||
jsx | ✓ | ✓ | ✓ | typescript-language-server |
julia | ✓ | julia | ||
kdl | ✓ | |||
kotlin | ✓ | kotlin-language-server | ||
latex | ✓ | ✓ | texlab | |
lean | ✓ | lean | ||
ledger | ✓ | |||
llvm | ✓ | ✓ | ✓ | |
llvm-mir | ✓ | ✓ | ✓ | |
llvm-mir-yaml | ✓ | ✓ | ||
lua | ✓ | ✓ | ✓ | lua-language-server |
make | ✓ | |||
markdown | ✓ | marksman | ||
markdown.inline | ✓ | |||
matlab | ✓ | |||
mermaid | ✓ | |||
meson | ✓ | ✓ | ||
mint | mint | |||
nickel | ✓ | ✓ | nls | |
nix | ✓ | nil | ||
nu | ✓ | |||
ocaml | ✓ | ✓ | ocamllsp | |
ocaml-interface | ✓ | ocamllsp | ||
odin | ✓ | ols | ||
openscad | ✓ | openscad-lsp | ||
org | ✓ | |||
pascal | ✓ | ✓ | pasls | |
perl | ✓ | ✓ | ✓ | |
php | ✓ | ✓ | ✓ | intelephense |
prisma | ✓ | prisma-language-server | ||
prolog | swipl | |||
protobuf | ✓ | ✓ | ||
purescript | ✓ | purescript-language-server | ||
python | ✓ | ✓ | ✓ | pylsp |
qml | ✓ | ✓ | qmlls | |
r | ✓ | R | ||
racket | ✓ | racket | ||
regex | ✓ | |||
rescript | ✓ | ✓ | rescript-language-server | |
rmarkdown | ✓ | ✓ | R | |
ron | ✓ | ✓ | ||
ruby | ✓ | ✓ | ✓ | solargraph |
rust | ✓ | ✓ | ✓ | rust-analyzer |
scala | ✓ | ✓ | metals | |
scheme | ✓ | |||
scss | ✓ | vscode-css-language-server | ||
slint | ✓ | ✓ | slint-lsp | |
sml | ✓ | |||
solidity | ✓ | solc | ||
sql | ✓ | |||
sshclientconfig | ✓ | |||
starlark | ✓ | ✓ | ||
svelte | ✓ | svelteserver | ||
swift | ✓ | sourcekit-lsp | ||
tablegen | ✓ | ✓ | ✓ | |
task | ✓ | |||
tfvars | ✓ | ✓ | terraform-ls | |
toml | ✓ | taplo | ||
tsq | ✓ | |||
tsx | ✓ | ✓ | ✓ | typescript-language-server |
twig | ✓ | |||
typescript | ✓ | ✓ | ✓ | typescript-language-server |
ungrammar | ✓ | |||
v | ✓ | vls | ||
vala | ✓ | vala-language-server | ||
verilog | ✓ | ✓ | svlangserver | |
vhs | ✓ | |||
vue | ✓ | vls | ||
wast | ✓ | |||
wat | ✓ | |||
wgsl | ✓ | wgsl_analyzer | ||
wit | ✓ | ✓ | ||
xit | ✓ | |||
xml | ✓ | ✓ | ||
yaml | ✓ | ✓ | yaml-language-server | |
zig | ✓ | ✓ | ✓ | zls |