mirror of https://github.com/helix-editor/helix
Document tags.scm queries, commands and language support
parent
727758e068
commit
6c71fc00b2
|
@ -28,3 +28,4 @@
|
|||
- [Adding textobject queries](./guides/textobject.md)
|
||||
- [Adding indent queries](./guides/indent.md)
|
||||
- [Adding injection queries](./guides/injection.md)
|
||||
- [Adding tags queries](./guides/tags.md)
|
||||
|
|
|
@ -1,282 +1,282 @@
|
|||
| Language | Syntax Highlighting | Treesitter Textobjects | Auto Indent | Default language servers |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| ada | ✓ | ✓ | | `ada_language_server` |
|
||||
| adl | ✓ | ✓ | ✓ | |
|
||||
| agda | ✓ | | | |
|
||||
| alloy | ✓ | | | |
|
||||
| amber | ✓ | | | `amber-lsp` |
|
||||
| astro | ✓ | | | `astro-ls` |
|
||||
| awk | ✓ | ✓ | | `awk-language-server` |
|
||||
| bash | ✓ | ✓ | ✓ | `bash-language-server` |
|
||||
| bass | ✓ | | | `bass` |
|
||||
| beancount | ✓ | | | `beancount-language-server` |
|
||||
| bibtex | ✓ | | | `texlab` |
|
||||
| bicep | ✓ | | | `bicep-langserver` |
|
||||
| bitbake | ✓ | | | `bitbake-language-server` |
|
||||
| blade | ✓ | | | |
|
||||
| blueprint | ✓ | | | `blueprint-compiler` |
|
||||
| c | ✓ | ✓ | ✓ | `clangd` |
|
||||
| c-sharp | ✓ | ✓ | | `OmniSharp` |
|
||||
| cabal | | | | `haskell-language-server-wrapper` |
|
||||
| caddyfile | ✓ | ✓ | ✓ | |
|
||||
| cairo | ✓ | ✓ | ✓ | `cairo-language-server` |
|
||||
| capnp | ✓ | | ✓ | |
|
||||
| cel | ✓ | | | |
|
||||
| circom | ✓ | | | `circom-lsp` |
|
||||
| clarity | ✓ | | | `clarinet` |
|
||||
| clojure | ✓ | | | `clojure-lsp` |
|
||||
| cmake | ✓ | ✓ | ✓ | `neocmakelsp`, `cmake-language-server` |
|
||||
| codeql | ✓ | ✓ | | `codeql` |
|
||||
| comment | ✓ | | | |
|
||||
| common-lisp | ✓ | | ✓ | `cl-lsp` |
|
||||
| cpon | ✓ | | ✓ | |
|
||||
| cpp | ✓ | ✓ | ✓ | `clangd` |
|
||||
| crystal | ✓ | ✓ | ✓ | `crystalline`, `ameba-ls` |
|
||||
| css | ✓ | | ✓ | `vscode-css-language-server` |
|
||||
| csv | ✓ | | | |
|
||||
| cue | ✓ | | | `cuelsp` |
|
||||
| cylc | ✓ | ✓ | ✓ | |
|
||||
| d | ✓ | ✓ | ✓ | `serve-d` |
|
||||
| dart | ✓ | ✓ | ✓ | `dart` |
|
||||
| dbml | ✓ | | | |
|
||||
| debian | ✓ | | | |
|
||||
| devicetree | ✓ | | | `dts-lsp` |
|
||||
| dhall | ✓ | ✓ | | `dhall-lsp-server` |
|
||||
| diff | ✓ | | | |
|
||||
| djot | ✓ | | | |
|
||||
| docker-compose | ✓ | ✓ | ✓ | `docker-compose-langserver`, `yaml-language-server` |
|
||||
| dockerfile | ✓ | ✓ | | `docker-langserver` |
|
||||
| dot | ✓ | | | `dot-language-server` |
|
||||
| dtd | ✓ | | | |
|
||||
| dune | ✓ | | | |
|
||||
| dunstrc | ✓ | | | |
|
||||
| earthfile | ✓ | ✓ | ✓ | `earthlyls` |
|
||||
| edoc | ✓ | | | |
|
||||
| eex | ✓ | | | |
|
||||
| ejs | ✓ | | | |
|
||||
| elisp | ✓ | | | |
|
||||
| elixir | ✓ | ✓ | ✓ | `elixir-ls` |
|
||||
| elm | ✓ | ✓ | | `elm-language-server` |
|
||||
| elvish | ✓ | | | `elvish` |
|
||||
| env | ✓ | ✓ | | |
|
||||
| erb | ✓ | | | |
|
||||
| erlang | ✓ | ✓ | | `erlang_ls`, `elp` |
|
||||
| esdl | ✓ | | | |
|
||||
| fennel | ✓ | | | `fennel-ls` |
|
||||
| fga | ✓ | ✓ | ✓ | |
|
||||
| fidl | ✓ | | | |
|
||||
| fish | ✓ | ✓ | ✓ | `fish-lsp` |
|
||||
| forth | ✓ | | | `forth-lsp` |
|
||||
| fortran | ✓ | | ✓ | `fortls` |
|
||||
| fsharp | ✓ | | | `fsautocomplete` |
|
||||
| gas | ✓ | ✓ | | `asm-lsp` |
|
||||
| gdscript | ✓ | ✓ | ✓ | |
|
||||
| gemini | ✓ | | | |
|
||||
| gherkin | ✓ | | | |
|
||||
| ghostty | ✓ | | | |
|
||||
| git-attributes | ✓ | | | |
|
||||
| git-commit | ✓ | ✓ | | |
|
||||
| git-config | ✓ | ✓ | | |
|
||||
| git-ignore | ✓ | | | |
|
||||
| git-notes | ✓ | | | |
|
||||
| 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` |
|
||||
| gren | ✓ | ✓ | | |
|
||||
| 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` |
|
||||
| htmldjango | ✓ | | | `djlsp`, `vscode-html-language-server`, `superhtml` |
|
||||
| hurl | ✓ | ✓ | ✓ | |
|
||||
| hyprlang | ✓ | | ✓ | `hyprls` |
|
||||
| idris | | | | `idris2-lsp` |
|
||||
| iex | ✓ | | | |
|
||||
| ini | ✓ | | | |
|
||||
| ink | ✓ | | | |
|
||||
| inko | ✓ | ✓ | ✓ | |
|
||||
| janet | ✓ | | | |
|
||||
| java | ✓ | ✓ | ✓ | `jdtls` |
|
||||
| javascript | ✓ | ✓ | ✓ | `typescript-language-server` |
|
||||
| jinja | ✓ | | | |
|
||||
| jjconfig | ✓ | ✓ | ✓ | `taplo`, `tombi` |
|
||||
| jjdescription | ✓ | | | |
|
||||
| jjrevset | ✓ | | | |
|
||||
| jjtemplate | ✓ | | | |
|
||||
| jq | ✓ | ✓ | | `jq-lsp` |
|
||||
| jsdoc | ✓ | | | |
|
||||
| json | ✓ | ✓ | ✓ | `vscode-json-language-server` |
|
||||
| json-ld | ✓ | ✓ | ✓ | `vscode-json-language-server` |
|
||||
| json5 | ✓ | | | |
|
||||
| jsonc | ✓ | | ✓ | `vscode-json-language-server` |
|
||||
| jsonnet | ✓ | | | `jsonnet-language-server` |
|
||||
| jsx | ✓ | ✓ | ✓ | `typescript-language-server` |
|
||||
| julia | ✓ | ✓ | ✓ | `julia` |
|
||||
| just | ✓ | ✓ | ✓ | `just-lsp` |
|
||||
| kdl | ✓ | ✓ | ✓ | |
|
||||
| koka | ✓ | | ✓ | `koka` |
|
||||
| kotlin | ✓ | ✓ | ✓ | `kotlin-language-server` |
|
||||
| koto | ✓ | ✓ | ✓ | `koto-ls` |
|
||||
| latex | ✓ | ✓ | | `texlab` |
|
||||
| ld | ✓ | | ✓ | |
|
||||
| ldif | ✓ | | | |
|
||||
| lean | ✓ | | | `lean` |
|
||||
| ledger | ✓ | | | |
|
||||
| llvm | ✓ | ✓ | ✓ | |
|
||||
| llvm-mir | ✓ | ✓ | ✓ | |
|
||||
| llvm-mir-yaml | ✓ | | ✓ | |
|
||||
| log | ✓ | | | |
|
||||
| lpf | ✓ | | | |
|
||||
| lua | ✓ | ✓ | ✓ | `lua-language-server` |
|
||||
| luau | ✓ | ✓ | ✓ | `luau-lsp` |
|
||||
| mail | ✓ | ✓ | | |
|
||||
| make | ✓ | | ✓ | |
|
||||
| markdoc | ✓ | | | `markdoc-ls` |
|
||||
| markdown | ✓ | | | `marksman`, `markdown-oxide` |
|
||||
| markdown-rustdoc | ✓ | | | |
|
||||
| markdown.inline | ✓ | | | |
|
||||
| matlab | ✓ | ✓ | ✓ | |
|
||||
| mermaid | ✓ | | | |
|
||||
| meson | ✓ | | ✓ | `mesonlsp` |
|
||||
| mint | | | | `mint` |
|
||||
| mojo | ✓ | ✓ | ✓ | `pixi` |
|
||||
| move | ✓ | | | |
|
||||
| msbuild | ✓ | | ✓ | |
|
||||
| nasm | ✓ | ✓ | | `asm-lsp` |
|
||||
| nestedtext | ✓ | ✓ | ✓ | |
|
||||
| nginx | ✓ | | | |
|
||||
| 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 | ✓ | ✓ | ✓ | `termux-language-server`, `bash-language-server` |
|
||||
| pkl | ✓ | | ✓ | `pkl-lsp` |
|
||||
| po | ✓ | ✓ | | |
|
||||
| pod | ✓ | | | |
|
||||
| ponylang | ✓ | ✓ | ✓ | |
|
||||
| powershell | ✓ | | | |
|
||||
| prisma | ✓ | ✓ | | `prisma-language-server` |
|
||||
| prolog | ✓ | | ✓ | `swipl` |
|
||||
| properties | ✓ | ✓ | | |
|
||||
| protobuf | ✓ | ✓ | ✓ | `buf`, `pb`, `protols` |
|
||||
| prql | ✓ | | | |
|
||||
| pug | ✓ | | | |
|
||||
| purescript | ✓ | ✓ | | `purescript-language-server` |
|
||||
| python | ✓ | ✓ | ✓ | `ty`, `ruff`, `jedi-language-server`, `pylsp` |
|
||||
| qml | ✓ | ✓ | ✓ | `qmlls` |
|
||||
| quarto | ✓ | | ✓ | |
|
||||
| quint | ✓ | | | `quint-language-server` |
|
||||
| r | ✓ | | | `R` |
|
||||
| racket | ✓ | | ✓ | `racket` |
|
||||
| regex | ✓ | | | |
|
||||
| rego | ✓ | | | `regols` |
|
||||
| rescript | ✓ | ✓ | | `rescript-language-server` |
|
||||
| rmarkdown | ✓ | | ✓ | `R` |
|
||||
| robot | ✓ | | | `robotframework_ls` |
|
||||
| ron | ✓ | | ✓ | |
|
||||
| rst | ✓ | | | |
|
||||
| ruby | ✓ | ✓ | ✓ | `ruby-lsp`, `solargraph` |
|
||||
| rust | ✓ | ✓ | ✓ | `rust-analyzer` |
|
||||
| rust-format-args | ✓ | | | |
|
||||
| rust-format-args-macro | ✓ | ✓ | ✓ | |
|
||||
| sage | ✓ | ✓ | | |
|
||||
| scala | ✓ | ✓ | ✓ | `metals` |
|
||||
| scheme | ✓ | | ✓ | |
|
||||
| scss | ✓ | | | `vscode-css-language-server` |
|
||||
| slang | ✓ | ✓ | ✓ | `slangd` |
|
||||
| slint | ✓ | ✓ | ✓ | `slint-lsp` |
|
||||
| smali | ✓ | | ✓ | |
|
||||
| smithy | ✓ | | | `cs` |
|
||||
| sml | ✓ | | | |
|
||||
| snakemake | ✓ | | ✓ | `pylsp` |
|
||||
| solidity | ✓ | ✓ | | `solc` |
|
||||
| sourcepawn | ✓ | ✓ | | `sourcepawn-studio` |
|
||||
| spade | ✓ | | ✓ | `spade-language-server` |
|
||||
| spicedb | ✓ | | | |
|
||||
| sql | ✓ | ✓ | | |
|
||||
| sshclientconfig | ✓ | | | |
|
||||
| starlark | ✓ | ✓ | ✓ | `starpls` |
|
||||
| strace | ✓ | | | |
|
||||
| supercollider | ✓ | | | |
|
||||
| svelte | ✓ | | ✓ | `svelteserver` |
|
||||
| sway | ✓ | ✓ | ✓ | `forc` |
|
||||
| swift | ✓ | ✓ | | `sourcekit-lsp` |
|
||||
| systemd | ✓ | | | `systemd-lsp` |
|
||||
| t32 | ✓ | | | |
|
||||
| tablegen | ✓ | ✓ | ✓ | |
|
||||
| tact | ✓ | ✓ | ✓ | |
|
||||
| task | ✓ | | | |
|
||||
| tcl | ✓ | | ✓ | |
|
||||
| teal | ✓ | | | `teal-language-server` |
|
||||
| templ | ✓ | | | `templ` |
|
||||
| tera | ✓ | | | |
|
||||
| textproto | ✓ | ✓ | ✓ | |
|
||||
| tfvars | ✓ | | ✓ | `terraform-ls` |
|
||||
| thrift | ✓ | | | |
|
||||
| tlaplus | ✓ | | | |
|
||||
| todotxt | ✓ | | | |
|
||||
| toml | ✓ | ✓ | | `taplo`, `tombi` |
|
||||
| tsq | ✓ | | | `ts_query_ls` |
|
||||
| tsx | ✓ | ✓ | ✓ | `typescript-language-server` |
|
||||
| twig | ✓ | | | |
|
||||
| typescript | ✓ | ✓ | ✓ | `typescript-language-server` |
|
||||
| typespec | ✓ | ✓ | ✓ | `tsp-server` |
|
||||
| typst | ✓ | | | `tinymist` |
|
||||
| ungrammar | ✓ | | | |
|
||||
| unison | ✓ | ✓ | ✓ | |
|
||||
| uxntal | ✓ | | | |
|
||||
| v | ✓ | ✓ | ✓ | `v-analyzer` |
|
||||
| vala | ✓ | ✓ | | `vala-language-server` |
|
||||
| vento | ✓ | | | |
|
||||
| verilog | ✓ | ✓ | | `svlangserver` |
|
||||
| vhdl | ✓ | | | `vhdl_ls` |
|
||||
| vhs | ✓ | | | |
|
||||
| vue | ✓ | | | `vue-language-server` |
|
||||
| wast | ✓ | | | |
|
||||
| wat | ✓ | | | `wat_server` |
|
||||
| webc | ✓ | | | |
|
||||
| werk | ✓ | | | |
|
||||
| wesl | ✓ | ✓ | | |
|
||||
| wgsl | ✓ | | | `wgsl-analyzer` |
|
||||
| wit | ✓ | | ✓ | |
|
||||
| wren | ✓ | ✓ | ✓ | |
|
||||
| xit | ✓ | | | |
|
||||
| xml | ✓ | ✓ | ✓ | |
|
||||
| xtc | ✓ | | | |
|
||||
| yaml | ✓ | ✓ | ✓ | `yaml-language-server`, `ansible-language-server` |
|
||||
| yara | ✓ | | | `yls` |
|
||||
| yuck | ✓ | | | |
|
||||
| zig | ✓ | ✓ | ✓ | `zls` |
|
||||
| Language | Syntax Highlighting | Treesitter Textobjects | Auto Indent | Code Navigation Tags | Default language servers |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| ada | ✓ | ✓ | | | `ada_language_server` |
|
||||
| adl | ✓ | ✓ | ✓ | | |
|
||||
| agda | ✓ | | | | |
|
||||
| alloy | ✓ | | | | |
|
||||
| amber | ✓ | | | | `amber-lsp` |
|
||||
| astro | ✓ | | | | `astro-ls` |
|
||||
| awk | ✓ | ✓ | | | `awk-language-server` |
|
||||
| bash | ✓ | ✓ | ✓ | | `bash-language-server` |
|
||||
| bass | ✓ | | | | `bass` |
|
||||
| beancount | ✓ | | | | `beancount-language-server` |
|
||||
| bibtex | ✓ | | | | `texlab` |
|
||||
| bicep | ✓ | | | | `bicep-langserver` |
|
||||
| bitbake | ✓ | | | | `bitbake-language-server` |
|
||||
| blade | ✓ | | | | |
|
||||
| blueprint | ✓ | | | | `blueprint-compiler` |
|
||||
| c | ✓ | ✓ | ✓ | ✓ | `clangd` |
|
||||
| c-sharp | ✓ | ✓ | | ✓ | `OmniSharp` |
|
||||
| cabal | | | | | `haskell-language-server-wrapper` |
|
||||
| caddyfile | ✓ | ✓ | ✓ | | |
|
||||
| cairo | ✓ | ✓ | ✓ | | `cairo-language-server` |
|
||||
| capnp | ✓ | | ✓ | | |
|
||||
| cel | ✓ | | | | |
|
||||
| circom | ✓ | | | | `circom-lsp` |
|
||||
| clarity | ✓ | | | | `clarinet` |
|
||||
| clojure | ✓ | | | | `clojure-lsp` |
|
||||
| cmake | ✓ | ✓ | ✓ | | `neocmakelsp`, `cmake-language-server` |
|
||||
| codeql | ✓ | ✓ | | | `codeql` |
|
||||
| comment | ✓ | | | | |
|
||||
| common-lisp | ✓ | | ✓ | | `cl-lsp` |
|
||||
| cpon | ✓ | | ✓ | | |
|
||||
| cpp | ✓ | ✓ | ✓ | ✓ | `clangd` |
|
||||
| crystal | ✓ | ✓ | ✓ | ✓ | `crystalline`, `ameba-ls` |
|
||||
| css | ✓ | | ✓ | | `vscode-css-language-server` |
|
||||
| csv | ✓ | | | | |
|
||||
| cue | ✓ | | | | `cuelsp` |
|
||||
| cylc | ✓ | ✓ | ✓ | | |
|
||||
| d | ✓ | ✓ | ✓ | | `serve-d` |
|
||||
| dart | ✓ | ✓ | ✓ | | `dart` |
|
||||
| dbml | ✓ | | | | |
|
||||
| debian | ✓ | | | | |
|
||||
| devicetree | ✓ | | | | `dts-lsp` |
|
||||
| dhall | ✓ | ✓ | | | `dhall-lsp-server` |
|
||||
| diff | ✓ | | | | |
|
||||
| djot | ✓ | | | | |
|
||||
| docker-compose | ✓ | ✓ | ✓ | | `docker-compose-langserver`, `yaml-language-server` |
|
||||
| dockerfile | ✓ | ✓ | | | `docker-langserver` |
|
||||
| dot | ✓ | | | | `dot-language-server` |
|
||||
| dtd | ✓ | | | | |
|
||||
| dune | ✓ | | | | |
|
||||
| dunstrc | ✓ | | | | |
|
||||
| earthfile | ✓ | ✓ | ✓ | | `earthlyls` |
|
||||
| edoc | ✓ | | | | |
|
||||
| eex | ✓ | | | | |
|
||||
| ejs | ✓ | | | | |
|
||||
| elisp | ✓ | | | ✓ | |
|
||||
| elixir | ✓ | ✓ | ✓ | ✓ | `elixir-ls` |
|
||||
| elm | ✓ | ✓ | | ✓ | `elm-language-server` |
|
||||
| elvish | ✓ | | | | `elvish` |
|
||||
| env | ✓ | ✓ | | | |
|
||||
| erb | ✓ | | | | |
|
||||
| erlang | ✓ | ✓ | | ✓ | `erlang_ls`, `elp` |
|
||||
| esdl | ✓ | | | | |
|
||||
| fennel | ✓ | | | | `fennel-ls` |
|
||||
| fga | ✓ | ✓ | ✓ | | |
|
||||
| fidl | ✓ | | | | |
|
||||
| fish | ✓ | ✓ | ✓ | | `fish-lsp` |
|
||||
| forth | ✓ | | | | `forth-lsp` |
|
||||
| fortran | ✓ | | ✓ | | `fortls` |
|
||||
| fsharp | ✓ | | | | `fsautocomplete` |
|
||||
| gas | ✓ | ✓ | | | `asm-lsp` |
|
||||
| gdscript | ✓ | ✓ | ✓ | ✓ | |
|
||||
| gemini | ✓ | | | | |
|
||||
| gherkin | ✓ | | | | |
|
||||
| ghostty | ✓ | | | | |
|
||||
| git-attributes | ✓ | | | | |
|
||||
| git-commit | ✓ | ✓ | | | |
|
||||
| git-config | ✓ | ✓ | | | |
|
||||
| git-ignore | ✓ | | | | |
|
||||
| git-notes | ✓ | | | | |
|
||||
| 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` |
|
||||
| gren | ✓ | ✓ | | | |
|
||||
| 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` |
|
||||
| htmldjango | ✓ | | | | `djlsp`, `vscode-html-language-server`, `superhtml` |
|
||||
| hurl | ✓ | ✓ | ✓ | | |
|
||||
| hyprlang | ✓ | | ✓ | | `hyprls` |
|
||||
| idris | | | | | `idris2-lsp` |
|
||||
| iex | ✓ | | | | |
|
||||
| ini | ✓ | | | | |
|
||||
| ink | ✓ | | | | |
|
||||
| inko | ✓ | ✓ | ✓ | | |
|
||||
| janet | ✓ | | | | |
|
||||
| java | ✓ | ✓ | ✓ | | `jdtls` |
|
||||
| javascript | ✓ | ✓ | ✓ | ✓ | `typescript-language-server` |
|
||||
| jinja | ✓ | | | | |
|
||||
| jjconfig | ✓ | ✓ | ✓ | | `taplo`, `tombi` |
|
||||
| jjdescription | ✓ | | | | |
|
||||
| jjrevset | ✓ | | | | |
|
||||
| jjtemplate | ✓ | | | | |
|
||||
| jq | ✓ | ✓ | | | `jq-lsp` |
|
||||
| jsdoc | ✓ | | | | |
|
||||
| json | ✓ | ✓ | ✓ | | `vscode-json-language-server` |
|
||||
| json-ld | ✓ | ✓ | ✓ | | `vscode-json-language-server` |
|
||||
| json5 | ✓ | | | | |
|
||||
| jsonc | ✓ | | ✓ | | `vscode-json-language-server` |
|
||||
| jsonnet | ✓ | | | | `jsonnet-language-server` |
|
||||
| jsx | ✓ | ✓ | ✓ | ✓ | `typescript-language-server` |
|
||||
| julia | ✓ | ✓ | ✓ | | `julia` |
|
||||
| just | ✓ | ✓ | ✓ | | `just-lsp` |
|
||||
| kdl | ✓ | ✓ | ✓ | | |
|
||||
| koka | ✓ | | ✓ | | `koka` |
|
||||
| kotlin | ✓ | ✓ | ✓ | | `kotlin-language-server` |
|
||||
| koto | ✓ | ✓ | ✓ | | `koto-ls` |
|
||||
| latex | ✓ | ✓ | | | `texlab` |
|
||||
| ld | ✓ | | ✓ | | |
|
||||
| ldif | ✓ | | | | |
|
||||
| lean | ✓ | | | | `lean` |
|
||||
| ledger | ✓ | | | | |
|
||||
| llvm | ✓ | ✓ | ✓ | | |
|
||||
| llvm-mir | ✓ | ✓ | ✓ | | |
|
||||
| llvm-mir-yaml | ✓ | | ✓ | | |
|
||||
| log | ✓ | | | | |
|
||||
| lpf | ✓ | | | | |
|
||||
| lua | ✓ | ✓ | ✓ | | `lua-language-server` |
|
||||
| luau | ✓ | ✓ | ✓ | | `luau-lsp` |
|
||||
| mail | ✓ | ✓ | | | |
|
||||
| make | ✓ | | ✓ | | |
|
||||
| markdoc | ✓ | | | | `markdoc-ls` |
|
||||
| markdown | ✓ | | | ✓ | `marksman`, `markdown-oxide` |
|
||||
| markdown-rustdoc | ✓ | | | | |
|
||||
| markdown.inline | ✓ | | | | |
|
||||
| matlab | ✓ | ✓ | ✓ | | |
|
||||
| mermaid | ✓ | | | | |
|
||||
| meson | ✓ | | ✓ | | `mesonlsp` |
|
||||
| mint | | | | | `mint` |
|
||||
| mojo | ✓ | ✓ | ✓ | | `pixi` |
|
||||
| move | ✓ | | | | |
|
||||
| msbuild | ✓ | | ✓ | | |
|
||||
| nasm | ✓ | ✓ | | | `asm-lsp` |
|
||||
| nestedtext | ✓ | ✓ | ✓ | | |
|
||||
| nginx | ✓ | | | | |
|
||||
| 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 | ✓ | ✓ | ✓ | | `termux-language-server`, `bash-language-server` |
|
||||
| pkl | ✓ | | ✓ | | `pkl-lsp` |
|
||||
| po | ✓ | ✓ | | | |
|
||||
| pod | ✓ | | | | |
|
||||
| ponylang | ✓ | ✓ | ✓ | | |
|
||||
| powershell | ✓ | | | | |
|
||||
| prisma | ✓ | ✓ | | | `prisma-language-server` |
|
||||
| prolog | ✓ | | ✓ | | `swipl` |
|
||||
| properties | ✓ | ✓ | | | |
|
||||
| protobuf | ✓ | ✓ | ✓ | | `buf`, `pb`, `protols` |
|
||||
| prql | ✓ | | | | |
|
||||
| pug | ✓ | | | | |
|
||||
| purescript | ✓ | ✓ | | | `purescript-language-server` |
|
||||
| python | ✓ | ✓ | ✓ | ✓ | `ty`, `ruff`, `jedi-language-server`, `pylsp` |
|
||||
| qml | ✓ | ✓ | ✓ | | `qmlls` |
|
||||
| quarto | ✓ | | ✓ | | |
|
||||
| quint | ✓ | | | | `quint-language-server` |
|
||||
| r | ✓ | | | | `R` |
|
||||
| racket | ✓ | | ✓ | | `racket` |
|
||||
| regex | ✓ | | | | |
|
||||
| rego | ✓ | | | | `regols` |
|
||||
| rescript | ✓ | ✓ | | | `rescript-language-server` |
|
||||
| rmarkdown | ✓ | | ✓ | | `R` |
|
||||
| robot | ✓ | | | | `robotframework_ls` |
|
||||
| ron | ✓ | | ✓ | | |
|
||||
| rst | ✓ | | | | |
|
||||
| ruby | ✓ | ✓ | ✓ | ✓ | `ruby-lsp`, `solargraph` |
|
||||
| rust | ✓ | ✓ | ✓ | ✓ | `rust-analyzer` |
|
||||
| rust-format-args | ✓ | | | | |
|
||||
| rust-format-args-macro | ✓ | ✓ | ✓ | | |
|
||||
| sage | ✓ | ✓ | | | |
|
||||
| scala | ✓ | ✓ | ✓ | | `metals` |
|
||||
| scheme | ✓ | | ✓ | | |
|
||||
| scss | ✓ | | | | `vscode-css-language-server` |
|
||||
| slang | ✓ | ✓ | ✓ | | `slangd` |
|
||||
| slint | ✓ | ✓ | ✓ | | `slint-lsp` |
|
||||
| smali | ✓ | | ✓ | | |
|
||||
| smithy | ✓ | | | | `cs` |
|
||||
| sml | ✓ | | | | |
|
||||
| snakemake | ✓ | | ✓ | | `pylsp` |
|
||||
| solidity | ✓ | ✓ | | | `solc` |
|
||||
| sourcepawn | ✓ | ✓ | | | `sourcepawn-studio` |
|
||||
| spade | ✓ | | ✓ | | `spade-language-server` |
|
||||
| spicedb | ✓ | | | ✓ | |
|
||||
| sql | ✓ | ✓ | | | |
|
||||
| sshclientconfig | ✓ | | | | |
|
||||
| starlark | ✓ | ✓ | ✓ | | `starpls` |
|
||||
| strace | ✓ | | | | |
|
||||
| supercollider | ✓ | | | | |
|
||||
| svelte | ✓ | | ✓ | | `svelteserver` |
|
||||
| sway | ✓ | ✓ | ✓ | | `forc` |
|
||||
| swift | ✓ | ✓ | | | `sourcekit-lsp` |
|
||||
| systemd | ✓ | | | | `systemd-lsp` |
|
||||
| t32 | ✓ | | | | |
|
||||
| tablegen | ✓ | ✓ | ✓ | | |
|
||||
| tact | ✓ | ✓ | ✓ | | |
|
||||
| task | ✓ | | | | |
|
||||
| tcl | ✓ | | ✓ | | |
|
||||
| teal | ✓ | | | | `teal-language-server` |
|
||||
| templ | ✓ | | | | `templ` |
|
||||
| tera | ✓ | | | | |
|
||||
| textproto | ✓ | ✓ | ✓ | | |
|
||||
| tfvars | ✓ | | ✓ | | `terraform-ls` |
|
||||
| thrift | ✓ | | | | |
|
||||
| tlaplus | ✓ | | | | |
|
||||
| todotxt | ✓ | | | | |
|
||||
| toml | ✓ | ✓ | | | `taplo`, `tombi` |
|
||||
| tsq | ✓ | | | | `ts_query_ls` |
|
||||
| tsx | ✓ | ✓ | ✓ | ✓ | `typescript-language-server` |
|
||||
| twig | ✓ | | | | |
|
||||
| typescript | ✓ | ✓ | ✓ | ✓ | `typescript-language-server` |
|
||||
| typespec | ✓ | ✓ | ✓ | | `tsp-server` |
|
||||
| typst | ✓ | | | ✓ | `tinymist` |
|
||||
| ungrammar | ✓ | | | | |
|
||||
| unison | ✓ | ✓ | ✓ | | |
|
||||
| uxntal | ✓ | | | | |
|
||||
| v | ✓ | ✓ | ✓ | | `v-analyzer` |
|
||||
| vala | ✓ | ✓ | | | `vala-language-server` |
|
||||
| vento | ✓ | | | | |
|
||||
| verilog | ✓ | ✓ | | | `svlangserver` |
|
||||
| vhdl | ✓ | | | | `vhdl_ls` |
|
||||
| vhs | ✓ | | | | |
|
||||
| vue | ✓ | | | | `vue-language-server` |
|
||||
| wast | ✓ | | | | |
|
||||
| wat | ✓ | | | | `wat_server` |
|
||||
| webc | ✓ | | | | |
|
||||
| werk | ✓ | | | | |
|
||||
| wesl | ✓ | ✓ | | | |
|
||||
| wgsl | ✓ | | | | `wgsl-analyzer` |
|
||||
| wit | ✓ | | ✓ | | |
|
||||
| wren | ✓ | ✓ | ✓ | | |
|
||||
| xit | ✓ | | | | |
|
||||
| xml | ✓ | ✓ | ✓ | | |
|
||||
| xtc | ✓ | | | | |
|
||||
| yaml | ✓ | ✓ | ✓ | | `yaml-language-server`, `ansible-language-server` |
|
||||
| yara | ✓ | | | | `yls` |
|
||||
| yuck | ✓ | | | | |
|
||||
| zig | ✓ | ✓ | ✓ | | `zls` |
|
||||
|
|
|
@ -106,10 +106,14 @@
|
|||
| `code_action` | Perform code action | normal: `` <space>a ``, select: `` <space>a `` |
|
||||
| `buffer_picker` | Open buffer picker | normal: `` <space>b ``, select: `` <space>b `` |
|
||||
| `jumplist_picker` | Open jumplist picker | normal: `` <space>j ``, select: `` <space>j `` |
|
||||
| `symbol_picker` | Open symbol picker | normal: `` <space>s ``, select: `` <space>s `` |
|
||||
| `symbol_picker` | Open symbol picker | |
|
||||
| `syntax_symbol_picker` | Open symbol picker from syntax information | |
|
||||
| `lsp_or_syntax_symbol_picker` | Open symbol picker from LSP or syntax information | normal: `` <space>s ``, select: `` <space>s `` |
|
||||
| `changed_file_picker` | Open changed file picker | normal: `` <space>g ``, select: `` <space>g `` |
|
||||
| `select_references_to_symbol_under_cursor` | Select symbol references | normal: `` <space>h ``, select: `` <space>h `` |
|
||||
| `workspace_symbol_picker` | Open workspace symbol picker | normal: `` <space>S ``, select: `` <space>S `` |
|
||||
| `workspace_symbol_picker` | Open workspace symbol picker | |
|
||||
| `syntax_workspace_symbol_picker` | Open workspace symbol picker from syntax information | |
|
||||
| `lsp_or_syntax_workspace_symbol_picker` | Open workspace symbol picker from LSP or syntax information | normal: `` <space>S ``, select: `` <space>S `` |
|
||||
| `diagnostics_picker` | Open diagnostic picker | normal: `` <space>d ``, select: `` <space>d `` |
|
||||
| `workspace_diagnostics_picker` | Open workspace diagnostic picker | normal: `` <space>D ``, select: `` <space>D `` |
|
||||
| `last_picker` | Open last picker | normal: `` <space>' ``, select: `` <space>' `` |
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
## Adding tags queries
|
||||
|
||||
See tree-sitter's documentation on [Code Navigation Systems] for more
|
||||
background on tags queries.
|
||||
|
||||
Helix provides LSP-like features such as document and workspace symbol pickers
|
||||
out-of-the-box for languages with `tags.scm` queries based on syntax trees. To
|
||||
be analyzed a language must have a tree-sitter grammar and a `tags.scm` query
|
||||
file which pattern matches interesting nodes from syntax trees.
|
||||
|
||||
Query files should be placed in `runtime/queries/{language}/tags.scm`
|
||||
when contributing to Helix. You may place these under your local runtime
|
||||
directory (`~/.config/helix/runtime` in Linux for example) for the sake of
|
||||
testing.
|
||||
|
||||
The following [captures][tree-sitter-captures] are recognized:
|
||||
|
||||
| Capture name |
|
||||
|--- |
|
||||
| `definition.class` |
|
||||
| `definition.constant` |
|
||||
| `definition.function` |
|
||||
| `definition.interface` |
|
||||
| `definition.macro` |
|
||||
| `definition.module` |
|
||||
| `definition.struct` |
|
||||
| `definition.type` |
|
||||
|
||||
[Example query files][example-queries] can be found in the Helix GitHub
|
||||
repository.
|
||||
|
||||
[Code Navigation Systems]: https://tree-sitter.github.io/tree-sitter/4-code-navigation.html
|
||||
[tree-sitter-captures]: https://tree-sitter.github.io/tree-sitter/using-parsers/queries/index.html
|
||||
[example-queries]: https://github.com/search?q=repo%3Ahelix-editor%2Fhelix+path%3A%2A%2A/tags.scm&type=Code
|
|
@ -12,11 +12,17 @@ pub enum TsFeature {
|
|||
Highlight,
|
||||
TextObject,
|
||||
AutoIndent,
|
||||
Tags,
|
||||
}
|
||||
|
||||
impl TsFeature {
|
||||
pub fn all() -> &'static [Self] {
|
||||
&[Self::Highlight, Self::TextObject, Self::AutoIndent]
|
||||
&[
|
||||
Self::Highlight,
|
||||
Self::TextObject,
|
||||
Self::AutoIndent,
|
||||
Self::Tags,
|
||||
]
|
||||
}
|
||||
|
||||
pub fn runtime_filename(&self) -> &'static str {
|
||||
|
@ -24,6 +30,7 @@ impl TsFeature {
|
|||
Self::Highlight => "highlights.scm",
|
||||
Self::TextObject => "textobjects.scm",
|
||||
Self::AutoIndent => "indents.scm",
|
||||
Self::Tags => "tags.scm",
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -32,6 +39,7 @@ impl TsFeature {
|
|||
Self::Highlight => "Syntax Highlighting",
|
||||
Self::TextObject => "Treesitter Textobjects",
|
||||
Self::AutoIndent => "Auto Indent",
|
||||
Self::Tags => "Code Navigation Tags",
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -40,6 +48,7 @@ impl TsFeature {
|
|||
Self::Highlight => "Highlight",
|
||||
Self::TextObject => "Textobject",
|
||||
Self::AutoIndent => "Indent",
|
||||
Self::Tags => "Tags",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue