aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/lint.yml3
-rw-r--r--CONTRIBUTING.md4
-rw-r--r--README.md4
-rw-r--r--SUPPORTED_LANGUAGES.md561
-rw-r--r--lua/nvim-treesitter/health.lua10
-rw-r--r--lua/nvim-treesitter/install.lua44
-rw-r--r--lua/nvim-treesitter/parsers.lua327
-rw-r--r--plugin/nvim-treesitter.lua2
-rwxr-xr-xscripts/install-parsers.lua20
-rwxr-xr-xscripts/update-readme.lua11
10 files changed, 502 insertions, 484 deletions
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index e51833814..cd97cda06 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -40,12 +40,13 @@ jobs:
NVIM_TAG: nightly
steps:
- uses: actions/checkout@v4
+ - uses: tree-sitter/setup-action/cli@v1
- name: Prepare
run: |
bash ./scripts/ci-install.sh
- name: Lint
run: |
- nvim --headless -c "TSInstallSync query" -c "q"
+ nvim -l scripts/install-parsers.lua query
nvim -l scripts/format-queries.lua
git diff --exit-code
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c989b585c..d043e6b08 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -24,8 +24,8 @@ zimbu = {
branch = 'develop', -- only needed if different from default branch
location = 'parser', -- only needed if the parser is in subdirectory of a "monorepo"
revision = 'v2.1', -- tag or commit hash; bypasses automated updates
- requires_generate_from_grammar = true, -- only needed if repo does not contain pre-generated src/parser.c
- generate_requires_npm = true, -- only needed if parser has npm dependencies
+ generate = true, -- only needed if repo does not contain pre-generated src/parser.c
+ generate_from_json = true, -- only needed if grammar.js has npm-installed dependencies
},
maintainers = { '@me' }, -- the _query_ maintainers
tier = 3, -- community-contributed parser
diff --git a/README.md b/README.md
index 08794576c..6e3a52845 100644
--- a/README.md
+++ b/README.md
@@ -139,8 +139,8 @@ parser_config.zimbu = {
-- optional entries:
branch = 'develop', -- only needed if different from default branch
location= 'parser', -- only needed if the parser is in subdirectory of a "monorepo"
- requires_generate_from_grammar = true, -- only needed if repo does not contain pre-generated src/parser.c
- generate_requires_npm = true, -- only needed if parser has npm dependencies
+ generate = true, -- only needed if repo does not contain pre-generated src/parser.c
+ generate_from_json = true, -- only needed if parser has npm dependencies
},
}
```
diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md
index 3d559ab5e..a63f603e7 100644
--- a/SUPPORTED_LANGUAGES.md
+++ b/SUPPORTED_LANGUAGES.md
@@ -5,291 +5,290 @@ The following is a list of languages for which a parser can be installed through
Legend:
- **Tier:** _stable_, _core_, _community_, or _unsupported_
- **CLI:** `:TSInstall` requires `tree-sitter` CLI installed
-- **NPM:** `:TSInstallFromGrammar` requires `node` installed
- **Queries** available for **H**ighlights, **I**ndents, **F**olds, In**J**ections, **L**ocals
<!--This section of the README is automatically updated by a CI job-->
<!--parserinfo-->
-Language | Tier | Queries | CLI | NPM | Maintainer
--------- |:----:|:-------:|:---:|:---:| ----------
-[ada](https://github.com/briot/tree-sitter-ada) | community | `HF  L` | | | @briot
-[agda](https://github.com/tree-sitter/tree-sitter-agda) | community | `HF   ` | | | @Decodetalkers
-[angular](https://github.com/dlvandenberg/tree-sitter-angular) | unsupported | `HFIJL` | | ✓ | @dlvandenberg
-[apex](https://github.com/aheber/tree-sitter-sfapex) | community | `HF  L` | | | @aheber
-[arduino](https://github.com/ObserverOfTime/tree-sitter-arduino) | core | `HFIJL` | | | @ObserverOfTime
-[asm](https://github.com/RubixDev/tree-sitter-asm) | community | `H  J ` | | | @RubixDev
-[astro](https://github.com/virchau13/tree-sitter-astro) | community | `HFIJL` | | | @virchau13
-[authzed](https://github.com/mleonidas/tree-sitter-authzed) | community | `H  J ` | | | @mattpolzin
-[awk](https://github.com/Beaglefoot/tree-sitter-awk) | unsupported | `H  J ` | | |
-[bash](https://github.com/tree-sitter/tree-sitter-bash) | community | `HF JL` | | | @TravonteD
-[bass](https://github.com/vito/tree-sitter-bass) | core | `HFIJL` | | | @amaanq
-[beancount](https://github.com/polarmutex/tree-sitter-beancount) | community | `HF J ` | | | @polarmutex
-[bibtex](https://github.com/latex-lsp/tree-sitter-bibtex) | core | `HFI  ` | | | @theHamsta, @clason
-[bicep](https://github.com/amaanq/tree-sitter-bicep) | core | `HFIJL` | | | @amaanq
-[bitbake](https://github.com/amaanq/tree-sitter-bitbake) | core | `HFIJL` | | | @amaanq
-[blueprint](https://gitlab.com/gabmus/tree-sitter-blueprint.git) | unsupported | `H    ` | | | @gabmus
-[c](https://github.com/tree-sitter/tree-sitter-c) | stable | `HFIJL` | | | @amaanq
-[c_sharp](https://github.com/tree-sitter/tree-sitter-c-sharp) | community | `HF JL` | | | @Luxed
-[cairo](https://github.com/amaanq/tree-sitter-cairo) | core | `HFIJL` | | | @amaanq
-[capnp](https://github.com/amaanq/tree-sitter-capnp) | core | `HFIJL` | | | @amaanq
-[chatito](https://github.com/ObserverOfTime/tree-sitter-chatito) | core | `HFIJL` | | | @ObserverOfTime
-[clojure](https://github.com/sogaiu/tree-sitter-clojure) | community | `HF JL` | | | @NoahTheDuke
-[cmake](https://github.com/uyha/tree-sitter-cmake) | unsupported | `HFI  ` | | | @uyha
-[comment](https://github.com/stsewd/tree-sitter-comment) | core | `H    ` | | | @stsewd
-[commonlisp](https://github.com/theHamsta/tree-sitter-commonlisp) | core | `HF  L` | | ✓ | @theHamsta
-[cooklang](https://github.com/addcninblue/tree-sitter-cooklang) | community | `H    ` | | | @addcninblue
-[corn](https://github.com/jakestanger/tree-sitter-corn) | community | `HFI L` | | | @jakestanger
-[cpon](https://github.com/amaanq/tree-sitter-cpon) | core | `HFIJL` | | | @amaanq
-[cpp](https://github.com/tree-sitter/tree-sitter-cpp) | stable | `HFIJL` | | ✓ | @theHamsta
-[css](https://github.com/tree-sitter/tree-sitter-css) | community | `HFIJ ` | | | @TravonteD
-[csv](https://github.com/amaanq/tree-sitter-csv) | core | `H    ` | | | @amaanq
-[cuda](https://github.com/theHamsta/tree-sitter-cuda) | core | `HFIJL` | | ✓ | @theHamsta
-[cue](https://github.com/eonpatapon/tree-sitter-cue) | core | `HFIJL` | | | @amaanq
-[d](https://github.com/gdamore/tree-sitter-d) | core | `HFIJL` | | | @amaanq
-[dart](https://github.com/UserNobody14/tree-sitter-dart) | unsupported | `HFIJL` | | | @akinsho
-[devicetree](https://github.com/joelspadin/tree-sitter-devicetree) | community | `HFIJL` | | | @jedrzejboczar
-[dhall](https://github.com/jbellerb/tree-sitter-dhall) | core | `HF J ` | | | @amaanq
-[diff](https://github.com/the-mikedavis/tree-sitter-diff) | community | `H    ` | | | @gbprod
-[disassembly](https://github.com/ColinKennedy/tree-sitter-disassembly) | community | `H  J ` | | | @ColinKennedy
-[djot](https://github.com/treeman/tree-sitter-djot) | community | `HFIJL` | | | @NoahTheDuke
-[dockerfile](https://github.com/camdencheek/tree-sitter-dockerfile) | community | `H  J ` | | | @camdencheek
-[dot](https://github.com/rydesun/tree-sitter-dot) | community | `H IJ ` | | | @rydesun
-[doxygen](https://github.com/amaanq/tree-sitter-doxygen) | core | `H IJ ` | | | @amaanq
-[dtd](https://github.com/tree-sitter-grammars/tree-sitter-xml) | core | `HF JL` | | | @ObserverOfTime
-[earthfile](https://github.com/glehmann/tree-sitter-earthfile) | community | `H  J ` | | | @glehmann
-[ebnf](https://github.com/RubixDev/ebnf) | unsupported | `H    ` | | | @RubixDev
-ecma (queries only)[^ecma] | core | `HFIJL` | | | @steelsojka
-[eds](https://github.com/uyha/tree-sitter-eds) | community | `HF   ` | | | @uyha
-[eex](https://github.com/connorlay/tree-sitter-eex) | community | `H  J ` | | | @connorlay
-[elixir](https://github.com/elixir-lang/tree-sitter-elixir) | community | `HFIJL` | | | @connorlay
-[elm](https://github.com/elm-tooling/tree-sitter-elm) | unsupported | `H  J ` | | | @zweimach
-[elsa](https://github.com/glapa-grossklag/tree-sitter-elsa) | core | `HFIJL` | | | @glapa-grossklag, @amaanq
-[elvish](https://github.com/elves/tree-sitter-elvish) | community | `H  J ` | | | @elves
-[embedded_template](https://github.com/tree-sitter/tree-sitter-embedded-template) | unsupported | `H  J ` | | |
-[erlang](https://github.com/WhatsApp/tree-sitter-erlang) | community | `HF   ` | | | @filmor
-[facility](https://github.com/FacilityApi/tree-sitter-facility) | community | `HFIJ ` | | | @bryankenote
-[faust](https://github.com/khiner/tree-sitter-faust) | community | `H  J ` | | | @khiner
-[fennel](https://github.com/alexmozaidze/tree-sitter-fennel) | community | `HF JL` | | ✓ | @alexmozaidze
-[fidl](https://github.com/google/tree-sitter-fidl) | community | `HF J ` | | | @chaopeng
-[firrtl](https://github.com/amaanq/tree-sitter-firrtl) | core | `HFIJL` | | | @amaanq
-[fish](https://github.com/ram02z/tree-sitter-fish) | community | `HFIJL` | | | @ram02z
-[foam](https://github.com/FoamScience/tree-sitter-foam) | community | `HFIJL` | | | @FoamScience
-[forth](https://github.com/AlexanderBrevig/tree-sitter-forth) | core | `HFIJL` | | | @amaanq
-[fortran](https://github.com/stadelmanma/tree-sitter-fortran) | core | `HFI  ` | | | @amaanq
-[fsh](https://github.com/mgramigna/tree-sitter-fsh) | community | `H    ` | | | @mgramigna
-[func](https://github.com/amaanq/tree-sitter-func) | core | `H    ` | | | @amaanq
-[fusion](https://gitlab.com/jirgn/tree-sitter-fusion.git) | community | `HFI L` | | | @jirgn
-[gdscript](https://github.com/PrestonKnopp/tree-sitter-gdscript)[^gdscript] | community | `HFIJL` | | | @PrestonKnopp
-[gdshader](https://github.com/GodOfAvacyn/tree-sitter-gdshader) | community | `H  J ` | | | @godofavacyn
-[git_config](https://github.com/the-mikedavis/tree-sitter-git-config) | core | `HF J ` | | | @amaanq
-[git_rebase](https://github.com/the-mikedavis/tree-sitter-git-rebase) | community | `H  J ` | | | @gbprod
-[gitattributes](https://github.com/ObserverOfTime/tree-sitter-gitattributes) | core | `H  JL` | | | @ObserverOfTime
-[gitcommit](https://github.com/gbprod/tree-sitter-gitcommit) | community | `H  J ` | | | @gbprod
-[gitignore](https://github.com/shunsambongi/tree-sitter-gitignore) | core | `H    ` | | | @theHamsta
-[gleam](https://github.com/gleam-lang/tree-sitter-gleam) | core | `HFIJL` | | | @amaanq
-[glimmer](https://github.com/alexlafroscia/tree-sitter-glimmer)[^glimmer] | community | `HFI L` | | | @NullVoxPopuli
-[glsl](https://github.com/theHamsta/tree-sitter-glsl) | core | `HFIJL` | | ✓ | @theHamsta
-[gn](https://github.com/amaanq/tree-sitter-gn) | core | `HFIJL` | | | @amaanq
-[gnuplot](https://github.com/dpezto/tree-sitter-gnuplot) | community | `H  J ` | | | @dpezto
-[go](https://github.com/tree-sitter/tree-sitter-go) | stable | `HFIJL` | | | @theHamsta, @WinWisely268
-[godot_resource](https://github.com/PrestonKnopp/tree-sitter-godot-resource)[^godot_resource] | community | `HF JL` | | | @pierpo
-[gomod](https://github.com/camdencheek/tree-sitter-go-mod) | community | `H  J ` | | | @camdencheek
-[gosum](https://github.com/amaanq/tree-sitter-go-sum) | core | `H    ` | | | @amaanq
-[gotmpl](https://github.com/ngalaiko/tree-sitter-go-template) | community | `H  J ` | | | @qvalentin
-[gowork](https://github.com/omertuc/tree-sitter-go-work) | community | `H  J ` | | | @omertuc
-[gpg](https://github.com/ObserverOfTime/tree-sitter-gpg-config) | core | `H  J ` | | | @ObserverOfTime
-[graphql](https://github.com/bkegley/tree-sitter-graphql) | community | `H IJ ` | | | @bkegley
-[groovy](https://github.com/murtaza64/tree-sitter-groovy) | community | `HFIJL` | | | @murtaza64
-[gstlaunch](https://github.com/theHamsta/tree-sitter-gstlaunch) | core | `H    ` | | | @theHamsta
-[hack](https://github.com/slackhq/tree-sitter-hack) | unsupported | `H    ` | | |
-[hare](https://github.com/amaanq/tree-sitter-hare) | core | `HFIJL` | | | @amaanq
-[haskell](https://github.com/tree-sitter/tree-sitter-haskell) | community | `HF J ` | | | @mrcjkb
-[haskell_persistent](https://github.com/MercuryTechnologies/tree-sitter-haskell-persistent) | community | `HF   ` | | | @lykahb
-[hcl](https://github.com/MichaHoffmann/tree-sitter-hcl) | community | `HFIJ ` | | | @MichaHoffmann
-[heex](https://github.com/connorlay/tree-sitter-heex) | community | `HFIJL` | | | @connorlay
-[helm](https://github.com/ngalaiko/tree-sitter-go-template) | community | `H  J ` | | | @qvalentin
-[hjson](https://github.com/winston0410/tree-sitter-hjson) | community | `HFIJL` | | ✓ | @winston0410
-[hlsl](https://github.com/theHamsta/tree-sitter-hlsl) | core | `HFIJL` | | ✓ | @theHamsta
-[hlsplaylist](https://github.com/Freed-Wu/tree-sitter-hlsplaylist) | community | `H  J ` | | | @Freed-Wu
-[hocon](https://github.com/antosha417/tree-sitter-hocon) | unsupported | `HF J ` | | ✓ | @antosha417
-[hoon](https://github.com/urbit-pilled/tree-sitter-hoon) | unsupported | `HF  L` | | | @urbit-pilled
-[html](https://github.com/tree-sitter/tree-sitter-html) | community | `HFIJL` | | | @TravonteD
-html_tags (queries only)[^html_tags] | community | `H IJ ` | | | @TravonteD
-[htmldjango](https://github.com/interdependence/tree-sitter-htmldjango) | unsupported | `HFIJ ` | | | @ObserverOfTime
-[http](https://github.com/rest-nvim/tree-sitter-http) | core | `H  J ` | | | @amaanq, @NTBBloodbath
-[hurl](https://github.com/pfeiferj/tree-sitter-hurl) | community | `HFIJ ` | | | @pfeiferj
-[hyprlang](https://github.com/luckasRanarison/tree-sitter-hyprlang) | community | `HFIJ ` | | | @luckasRanarison
-[idl](https://github.com/cathaysia/tree-sitter-idl) | community | `H  J ` | | | @cathaysa
-[ini](https://github.com/justinmk/tree-sitter-ini) | unsupported | `HF   ` | | | @theHamsta
-[inko](https://github.com/inko-lang/tree-sitter-inko) | community | `HFIJL` | | | @yorickpeterse
-[ispc](https://github.com/fab4100/tree-sitter-ispc) | community | `HFIJL` | | ✓ | @fab4100
-[janet_simple](https://github.com/sogaiu/tree-sitter-janet-simple) | community | `HF JL` | | | @sogaiu
-[java](https://github.com/tree-sitter/tree-sitter-java) | community | `HFIJL` | | | @p00f
-[javascript](https://github.com/tree-sitter/tree-sitter-javascript) | core | `HFIJL` | | | @steelsojka
-[jq](https://github.com/flurie/tree-sitter-jq) | core | `H  JL` | | | @ObserverOfTime
-[jsdoc](https://github.com/tree-sitter/tree-sitter-jsdoc) | core | `H    ` | | | @steelsojka
-[json](https://github.com/tree-sitter/tree-sitter-json) | core | `HFI L` | | | @steelsojka
-[json5](https://github.com/Joakker/tree-sitter-json5) | community | `H  J ` | | | @Joakker
-[jsonc](https://gitlab.com/WhyNotHugo/tree-sitter-jsonc.git) | community | `HFIJL` | | ✓ | @WhyNotHugo
-[jsonnet](https://github.com/sourcegraph/tree-sitter-jsonnet) | community | `HF  L` | | | @nawordar
-jsx (queries only)[^jsx] | core | `HFIJ ` | | | @steelsojka
-[julia](https://github.com/tree-sitter/tree-sitter-julia) | core | `HFIJL` | | | @theHamsta
-[just](https://github.com/IndianBoy42/tree-sitter-just) | community | `HFIJL` | | | @Hubro
-[kconfig](https://github.com/amaanq/tree-sitter-kconfig) | core | `HFIJL` | | | @amaanq
-[kdl](https://github.com/amaanq/tree-sitter-kdl) | core | `HFIJL` | | | @amaanq
-[kotlin](https://github.com/fwcd/tree-sitter-kotlin) | community | `HF JL` | | | @SalBakraa
-[koto](https://github.com/koto-lang/tree-sitter-koto) | community | `HF JL` | | | @irh
-[kusto](https://github.com/Willem-J-an/tree-sitter-kusto) | community | `H  J ` | | | @Willem-J-an
-[lalrpop](https://github.com/traxys/tree-sitter-lalrpop) | community | `H  JL` | | | @traxys
-[latex](https://github.com/latex-lsp/tree-sitter-latex) | core | `HF J ` | | | @theHamsta, @clason
-[ledger](https://github.com/cbarrete/tree-sitter-ledger) | community | `HFIJ ` | | | @cbarrete
-[leo](https://github.com/r001/tree-sitter-leo) | community | `H IJ ` | | | @r001
-[linkerscript](https://github.com/amaanq/tree-sitter-linkerscript) | core | `HFIJL` | | | @amaanq
-[liquid](https://github.com/hankthetank27/tree-sitter-liquid) | community | `H  J ` | | | @hankthetank27
-[liquidsoap](https://github.com/savonet/tree-sitter-liquidsoap) | community | `HFI L` | | | @toots
-[llvm](https://github.com/benwilliamgraham/tree-sitter-llvm) | community | `H    ` | | | @benwilliamgraham
-[lua](https://github.com/MunifTanjim/tree-sitter-lua) | stable | `HFIJL` | | | @muniftanjim
-[luadoc](https://github.com/amaanq/tree-sitter-luadoc) | core | `H    ` | | | @amaanq
-[luap](https://github.com/amaanq/tree-sitter-luap)[^luap] | core | `H    ` | | | @amaanq
-[luau](https://github.com/amaanq/tree-sitter-luau) | core | `HFIJL` | | | @amaanq
-[m68k](https://github.com/grahambates/tree-sitter-m68k) | community | `HF JL` | | | @grahambates
-[make](https://github.com/alemuller/tree-sitter-make) | core | `HF J ` | | | @lewis6991
-[markdown](https://github.com/MDeiml/tree-sitter-markdown)[^markdown] | stable | `HFIJ ` | | | @MDeiml
-[markdown_inline](https://github.com/MDeiml/tree-sitter-markdown)[^markdown_inline] | stable | `H  J ` | | | @MDeiml
-[matlab](https://github.com/acristoffers/tree-sitter-matlab) | community | `HFIJL` | | | @acristoffers
-[menhir](https://github.com/Kerl13/tree-sitter-menhir) | community | `H  J ` | | | @Kerl13
-[mermaid](https://github.com/monaqa/tree-sitter-mermaid) | unsupported | `H    ` | | |
-[meson](https://github.com/Decodetalkers/tree-sitter-meson) | community | `HFIJ ` | | | @Decodetalkers
-[mlir](https://github.com/artagnon/tree-sitter-mlir) | unsupported | `H   L` | | | @artagnon
-[muttrc](https://github.com/neomutt/tree-sitter-muttrc) | community | `H  J ` | | | @Freed-Wu
-[nasm](https://github.com/naclsn/tree-sitter-nasm) | core | `H  J ` | | | @ObserverOfTime
-[nickel](https://github.com/nickel-lang/tree-sitter-nickel) | unsupported | `H I  ` | | |
-[nim](https://github.com/alaviss/tree-sitter-nim) | community | `HF JL` | | | @aMOPel
-[nim_format_string](https://github.com/aMOPel/tree-sitter-nim-format-string) | community | `H  J ` | | | @aMOPel
-[ninja](https://github.com/alemuller/tree-sitter-ninja) | community | `HFI  ` | | | @alemuller
-[nix](https://github.com/cstrahan/tree-sitter-nix) | community | `HF JL` | | | @leo60228
-[nqc](https://github.com/amaanq/tree-sitter-nqc) | core | `HFIJL` | | | @amaanq
-[objc](https://github.com/amaanq/tree-sitter-objc) | core | `HFIJL` | | | @amaanq
-[objdump](https://github.com/ColinKennedy/tree-sitter-objdump) | community | `H  J ` | | | @ColinKennedy
-[ocaml](https://github.com/tree-sitter/tree-sitter-ocaml) | community | `HFIJL` | | | @undu
-[ocaml_interface](https://github.com/tree-sitter/tree-sitter-ocaml) | community | `HFIJL` | | | @undu
-[ocamllex](https://github.com/atom-ocaml/tree-sitter-ocamllex) | community | `H  J ` | | | @undu
-[odin](https://github.com/amaanq/tree-sitter-odin) | core | `HFIJL` | | | @amaanq
-[org](https://github.com/milisims/tree-sitter-org) | unsupported | `     ` | | |
-[pascal](https://github.com/Isopod/tree-sitter-pascal.git) | community | `HFIJL` | | | @Isopod
-[passwd](https://github.com/ath3/tree-sitter-passwd) | community | `H    ` | | | @amaanq
-[pem](https://github.com/ObserverOfTime/tree-sitter-pem) | core | `HF J ` | | | @ObserverOfTime
-[perl](https://github.com/tree-sitter-perl/tree-sitter-perl) | community | `HF J ` | | | @RabbiVeesh, @LeoNerd
-[php](https://github.com/tree-sitter/tree-sitter-php)[^php] | community | `HFIJL` | | | @tk-shirasaka
-[php_only](https://github.com/tree-sitter/tree-sitter-php)[^php_only] | community | `HFIJL` | | | @tk-shirasaka
-[phpdoc](https://github.com/claytonrcarter/tree-sitter-phpdoc) | unsupported | `H    ` | | ✓ | @mikehaertl
-[pioasm](https://github.com/leo60228/tree-sitter-pioasm) | community | `H  J ` | | | @leo60228
-[po](https://github.com/erasin/tree-sitter-po) | core | `HF J ` | | | @amaanq
-[pod](https://github.com/tree-sitter-perl/tree-sitter-pod) | community | `H    ` | | | @RabbiVeesh, @LeoNerd
-[poe_filter](https://github.com/ObserverOfTime/tree-sitter-poe-filter)[^poe_filter] | unsupported | `HFIJ ` | | | @ObserverOfTime
-[pony](https://github.com/amaanq/tree-sitter-pony) | core | `HFIJL` | | | @amaanq, @mfelsche
-[printf](https://github.com/ObserverOfTime/tree-sitter-printf) | core | `H    ` | | | @ObserverOfTime
-[prisma](https://github.com/victorhqc/tree-sitter-prisma) | community | `HF   ` | | | @elianiva
-[promql](https://github.com/MichaHoffmann/tree-sitter-promql) | unsupported | `H  J ` | | | @MichaHoffmann
-[properties](https://github.com/ObserverOfTime/tree-sitter-properties)[^properties] | core | `H  JL` | | | @ObserverOfTime
-[proto](https://github.com/treywood/tree-sitter-proto) | community | `HF   ` | | | @treywood
-[prql](https://github.com/PRQL/tree-sitter-prql) | core | `H  J ` | | | @matthias-Q
-[psv](https://github.com/amaanq/tree-sitter-csv) | core | `H    ` | | | @amaanq
-[pug](https://github.com/zealot128/tree-sitter-pug) | unsupported | `H  J ` | | | @zealot128
-[puppet](https://github.com/amaanq/tree-sitter-puppet) | core | `HFIJL` | | | @amaanq
-[purescript](https://github.com/postsolar/tree-sitter-purescript) | community | `H  JL` | | | @postsolar
-[pymanifest](https://github.com/ObserverOfTime/tree-sitter-pymanifest) | core | `H  J ` | | | @ObserverOfTime
-[python](https://github.com/tree-sitter/tree-sitter-python) | stable | `HFIJL` | | | @stsewd, @theHamsta
-[ql](https://github.com/tree-sitter/tree-sitter-ql) | community | `HFIJL` | | | @pwntester
-[qmldir](https://github.com/Decodetalkers/tree-sitter-qmldir) | core | `H  J ` | | | @amaanq
-[qmljs](https://github.com/yuja/tree-sitter-qmljs) | community | `HF J ` | | | @Decodetalkers
-[query](https://github.com/nvim-treesitter/tree-sitter-query)[^query] | stable | `HFIJL` | | | @steelsojka
-[r](https://github.com/r-lib/tree-sitter-r) | community | `H IJL` | | | @echasnovski
-[racket](https://github.com/6cdh/tree-sitter-racket) | unsupported | `HF J ` | | |
-[rasi](https://github.com/Fymyte/tree-sitter-rasi) | community | `HFIJL` | | | @Fymyte
-[rbs](https://github.com/joker1007/tree-sitter-rbs) | community | `HFIJ ` | | | @joker1007
-[re2c](https://github.com/amaanq/tree-sitter-re2c) | core | `HFIJL` | | | @amaanq
-[readline](https://github.com/ribru17/tree-sitter-readline) | community | `HFIJ ` | | | @ribru17
-[regex](https://github.com/tree-sitter/tree-sitter-regex) | stable | `H    ` | | | @theHamsta
-[rego](https://github.com/FallenAngel97/tree-sitter-rego) | community | `H  J ` | | | @FallenAngel97
-[requirements](https://github.com/ObserverOfTime/tree-sitter-requirements) | core | `H  J ` | | | @ObserverOfTime
-[rnoweb](https://github.com/bamonroe/tree-sitter-rnoweb) | community | `HF J ` | | | @bamonroe
-[robot](https://github.com/Hubro/tree-sitter-robot) | community | `HFI  ` | | | @Hubro
-[roc](https://github.com/nat-418/tree-sitter-roc) | community | `H  JL` | | | @nat-418
-[ron](https://github.com/amaanq/tree-sitter-ron) | core | `HFIJL` | | | @amaanq
-[rst](https://github.com/stsewd/tree-sitter-rst) | core | `H  JL` | | | @stsewd
-[ruby](https://github.com/tree-sitter/tree-sitter-ruby) | community | `HFIJL` | | | @TravonteD
-[rust](https://github.com/tree-sitter/tree-sitter-rust) | core | `HFIJL` | | | @amaanq
-[scala](https://github.com/tree-sitter/tree-sitter-scala) | community | `HF JL` | | | @stevanmilic
-[scfg](https://git.sr.ht/~rockorager/tree-sitter-scfg) | community | `H  J ` | | | @WhyNotHugo
-[scheme](https://github.com/6cdh/tree-sitter-scheme) | unsupported | `HF J ` | | |
-[scss](https://github.com/serenadeai/tree-sitter-scss) | community | `HFI  ` | | | @elianiva
-[slang](https://github.com/theHamsta/tree-sitter-slang)[^slang] | unsupported | `HFIJL` | | ✓ | @theHamsta
-[slint](https://github.com/slint-ui/tree-sitter-slint) | community | `HFIJL` | | | @hunger
-[smali](https://github.com/tree-sitter-grammars/tree-sitter-smali) | core | `HFIJL` | | | @amaanq
-[smithy](https://github.com/indoorvivants/tree-sitter-smithy) | core | `H    ` | | | @amaanq, @keynmol
-[snakemake](https://github.com/osthomas/tree-sitter-snakemake) | unsupported | `HFIJL` | | |
-[solidity](https://github.com/JoranHonig/tree-sitter-solidity) | core | `HF   ` | | | @amaanq
-[soql](https://github.com/aheber/tree-sitter-sfapex) | community | `H    ` | | | @aheber
-[sosl](https://github.com/aheber/tree-sitter-sfapex) | community | `H    ` | | | @aheber
-[sourcepawn](https://github.com/nilshelmig/tree-sitter-sourcepawn) | community | `H  JL` | | | @Sarrus1
-[sparql](https://github.com/BonaBeavis/tree-sitter-sparql) | community | `HFIJL` | | | @BonaBeavis
-[sql](https://github.com/derekstride/tree-sitter-sql) | community | `H IJ ` | | | @derekstride
-[squirrel](https://github.com/amaanq/tree-sitter-squirrel) | core | `HFIJL` | | | @amaanq
-[ssh_config](https://github.com/ObserverOfTime/tree-sitter-ssh-config) | core | `HFIJL` | | | @ObserverOfTime
-[starlark](https://github.com/amaanq/tree-sitter-starlark) | core | `HFIJL` | | | @amaanq
-[strace](https://github.com/sigmaSd/tree-sitter-strace) | core | `H  J ` | | | @amaanq
-[styled](https://github.com/mskelton/tree-sitter-styled) | community | `HFIJ ` | | | @mskelton
-[supercollider](https://github.com/madskjeldgaard/tree-sitter-supercollider) | community | `HFIJL` | | | @madskjeldgaard
-[surface](https://github.com/connorlay/tree-sitter-surface) | community | `HFIJ ` | | | @connorlay
-[svelte](https://github.com/tree-sitter-grammars/tree-sitter-svelte) | core | `HFIJL` | | | @amaanq
-[swift](https://github.com/alex-pinkus/tree-sitter-swift) | community | `H I L` | | | @alex-pinkus
-[sxhkdrc](https://github.com/RaafatTurki/tree-sitter-sxhkdrc) | community | `HF J ` | | | @RaafatTurki
-[systemtap](https://github.com/ok-ryoko/tree-sitter-systemtap) | community | `HF JL` | | | @ok-ryoko
-[t32](https://gitlab.com/xasc/tree-sitter-t32.git) | community | `HFIJL` | | | @xasc
-[tablegen](https://github.com/amaanq/tree-sitter-tablegen) | core | `HFIJL` | | | @amaanq
-[tcl](https://github.com/tree-sitter-grammars/tree-sitter-tcl) | core | `HFI  ` | | | @lewis6991
-[teal](https://github.com/euclidianAce/tree-sitter-teal) | community | `HFIJL` | | | @euclidianAce
-[templ](https://github.com/vrischmann/tree-sitter-templ) | community | `H  J ` | | | @vrischmann
-[terraform](https://github.com/MichaHoffmann/tree-sitter-hcl) | community | `HFIJ ` | | | @MichaHoffmann
-[textproto](https://github.com/PorterAtGoogle/tree-sitter-textproto) | community | `HFI  ` | | | @Porter
-[thrift](https://github.com/duskmoon314/tree-sitter-thrift) | core | `HFIJL` | | | @amaanq, @duskmoon314
-[tiger](https://github.com/ambroisie/tree-sitter-tiger) | community | `HFIJL` | | | @ambroisie
-[tlaplus](https://github.com/tlaplus-community/tree-sitter-tlaplus) | community | `HF JL` | | | @ahelwer, @susliko
-[tmux](https://github.com/Freed-Wu/tree-sitter-tmux) | community | `H  J ` | | | @Freed-Wu
-[todotxt](https://github.com/arnarg/tree-sitter-todotxt.git) | unsupported | `H    ` | | | @arnarg
-[toml](https://github.com/tree-sitter-grammars/tree-sitter-toml) | community | `HFIJL` | | ✓ | @tk-shirasaka
-[tsv](https://github.com/amaanq/tree-sitter-csv) | core | `H    ` | | | @amaanq
-[tsx](https://github.com/tree-sitter/tree-sitter-typescript) | core | `HFIJL` | | ✓ | @steelsojka
-[turtle](https://github.com/BonaBeavis/tree-sitter-turtle) | community | `HFIJL` | | | @BonaBeavis
-[twig](https://github.com/gbprod/tree-sitter-twig) | community | `H  J ` | | | @gbprod
-[typescript](https://github.com/tree-sitter/tree-sitter-typescript) | core | `HFIJL` | | ✓ | @steelsojka
-[typoscript](https://github.com/Teddytrombone/tree-sitter-typoscript) | community | `HFIJ ` | | | @Teddytrombone
-[typst](https://github.com/uben0/tree-sitter-typst) | community | `HFIJ ` | | | @uben0, @RaafatTurki
-[udev](https://github.com/ObserverOfTime/tree-sitter-udev) | core | `H  JL` | | | @ObserverOfTime
-[ungrammar](https://github.com/Philipp-M/tree-sitter-ungrammar) | community | `HFIJL` | | | @Philipp-M, @amaanq
-[unison](https://github.com/kylegoetz/tree-sitter-unison) | unsupported | `H  J ` | | | @tapegram
-[usd](https://github.com/ColinKennedy/tree-sitter-usd) | community | `HFI L` | | | @ColinKennedy
-[uxntal](https://github.com/amaanq/tree-sitter-uxntal) | core | `HFIJL` | | | @amaanq
-[v](https://github.com/vlang/v-analyzer) | community | `HFIJL` | | | @kkharji, @amaanq
-[vala](https://github.com/vala-lang/tree-sitter-vala) | community | `HF   ` | | | @Prince781
-[vento](https://github.com/ventojs/tree-sitter-vento) | community | `H  J ` | | | @wrapperup, @oscarotero
-[verilog](https://github.com/tree-sitter/tree-sitter-verilog) | community | `HF JL` | | | @zegervdv
-[vhs](https://github.com/charmbracelet/tree-sitter-vhs) | community | `H    ` | | | @caarlos0
-[vim](https://github.com/neovim/tree-sitter-vim) | stable | `HF JL` | | | @clason
-[vimdoc](https://github.com/neovim/tree-sitter-vimdoc) | stable | `H  J ` | | | @clason
-[vue](https://github.com/tree-sitter-grammars/tree-sitter-vue) | core | `HFIJ ` | | | @WhyNotHugo, @lucario387
-[wgsl](https://github.com/szebniok/tree-sitter-wgsl) | community | `HFI  ` | | | @szebniok
-[wgsl_bevy](https://github.com/theHamsta/tree-sitter-wgsl-bevy) | core | `HFI  ` | | ✓ | @theHamsta
-[wing](https://github.com/winglang/tree-sitter-wing) | community | `HF  L` | | | @gshpychka, @MarkMcCulloh
-[wit](https://github.com/liamwh/tree-sitter-wit) | community | `H  J ` | | | @liamwh
-[xcompose](https://github.com/ObserverOfTime/tree-sitter-xcompose) | core | `H  JL` | | | @ObserverOfTime
-[xml](https://github.com/tree-sitter-grammars/tree-sitter-xml) | core | `HFIJL` | | | @ObserverOfTime
-[yaml](https://github.com/tree-sitter-grammars/tree-sitter-yaml) | core | `HFIJL` | | | @amaanq
-[yang](https://github.com/Hubro/tree-sitter-yang) | community | `HFIJ ` | | | @Hubro
-[yuck](https://github.com/Philipp-M/tree-sitter-yuck) | community | `HFIJL` | | | @Philipp-M, @amaanq
-[zathurarc](https://github.com/Freed-Wu/tree-sitter-zathurarc) | community | `H  J ` | | | @Freed-Wu
-[zig](https://github.com/maxxnino/tree-sitter-zig) | community | `HFIJL` | | | @maxxnino
+Language | Tier | Queries | CLI | Maintainer
+-------- |:----:|:-------:|:---:| ----------
+[ada](https://github.com/briot/tree-sitter-ada) | community | `HF  L` | | @briot
+[agda](https://github.com/tree-sitter/tree-sitter-agda) | core | `HF   ` | | @Decodetalkers
+[angular](https://github.com/dlvandenberg/tree-sitter-angular) | community | `HFIJL` | | @dlvandenberg
+[apex](https://github.com/aheber/tree-sitter-sfapex) | community | `HF  L` | | @aheber
+[arduino](https://github.com/tree-sitter-grammars/tree-sitter-arduino) | core | `HFIJL` | | @ObserverOfTime
+[asm](https://github.com/RubixDev/tree-sitter-asm) | community | `H  J ` | | @RubixDev
+[astro](https://github.com/virchau13/tree-sitter-astro) | community | `HFIJL` | | @virchau13
+[authzed](https://github.com/mleonidas/tree-sitter-authzed) | community | `H  J ` | | @mattpolzin
+[awk](https://github.com/Beaglefoot/tree-sitter-awk) | unsupported | `H  J ` | |
+[bash](https://github.com/tree-sitter/tree-sitter-bash) | stable | `HF JL` | | @TravonteD
+[bass](https://github.com/vito/tree-sitter-bass) | community | `HFIJL` | | @amaanq
+[beancount](https://github.com/polarmutex/tree-sitter-beancount) | community | `HF J ` | | @polarmutex
+[bibtex](https://github.com/latex-lsp/tree-sitter-bibtex) | community | `HFI  ` | | @theHamsta, @clason
+[bicep](https://github.com/tree-sitter-grammars/tree-sitter-bicep) | core | `HFIJL` | | @amaanq
+[bitbake](https://github.com/tree-sitter-grammars/tree-sitter-bitbake) | core | `HFIJL` | | @amaanq
+[blueprint](https://gitlab.com/gabmus/tree-sitter-blueprint.git) | unsupported | `H    ` | | @gabmus
+[c](https://github.com/tree-sitter/tree-sitter-c) | stable | `HFIJL` | | @amaanq
+[c_sharp](https://github.com/tree-sitter/tree-sitter-c-sharp) | core | `HF JL` | | @Luxed
+[cairo](https://github.com/tree-sitter-grammars/tree-sitter-cairo) | core | `HFIJL` | | @amaanq
+[capnp](https://github.com/tree-sitter-grammars/tree-sitter-capnp) | core | `HFIJL` | | @amaanq
+[chatito](https://github.com/tree-sitter-grammars/tree-sitter-chatito) | core | `HFIJL` | | @ObserverOfTime
+[clojure](https://github.com/sogaiu/tree-sitter-clojure) | community | `HF JL` | | @NoahTheDuke
+[cmake](https://github.com/uyha/tree-sitter-cmake) | community | `HFI  ` | | @uyha
+[comment](https://github.com/stsewd/tree-sitter-comment) | community | `H    ` | | @stsewd
+[commonlisp](https://github.com/tree-sitter-grammars/tree-sitter-commonlisp) | core | `HF  L` | | @theHamsta
+[cooklang](https://github.com/addcninblue/tree-sitter-cooklang) | community | `H    ` | | @addcninblue
+[corn](https://github.com/jakestanger/tree-sitter-corn) | community | `HFI L` | | @jakestanger
+[cpon](https://github.com/tree-sitter-grammars/tree-sitter-cpon) | core | `HFIJL` | | @amaanq
+[cpp](https://github.com/tree-sitter/tree-sitter-cpp) | core | `HFIJL` | | @theHamsta
+[css](https://github.com/tree-sitter/tree-sitter-css) | core | `HFIJ ` | | @TravonteD
+[csv](https://github.com/tree-sitter-grammars/tree-sitter-csv) | core | `H    ` | | @amaanq
+[cuda](https://github.com/tree-sitter-grammars/tree-sitter-cuda) | core | `HFIJL` | | @theHamsta
+[cue](https://github.com/eonpatapon/tree-sitter-cue) | community | `HFIJL` | | @amaanq
+[d](https://github.com/gdamore/tree-sitter-d) | community | `HFIJL` | | @amaanq
+[dart](https://github.com/UserNobody14/tree-sitter-dart) | community | `HFIJL` | | @akinsho
+[devicetree](https://github.com/joelspadin/tree-sitter-devicetree) | community | `HFIJL` | | @jedrzejboczar
+[dhall](https://github.com/jbellerb/tree-sitter-dhall) | community | `HF J ` | | @amaanq
+[diff](https://github.com/the-mikedavis/tree-sitter-diff) | community | `H    ` | | @gbprod
+[disassembly](https://github.com/ColinKennedy/tree-sitter-disassembly) | community | `H  J ` | | @ColinKennedy
+[djot](https://github.com/treeman/tree-sitter-djot) | community | `HFIJL` | | @NoahTheDuke
+[dockerfile](https://github.com/camdencheek/tree-sitter-dockerfile) | community | `H  J ` | | @camdencheek
+[dot](https://github.com/rydesun/tree-sitter-dot) | community | `H IJ ` | | @rydesun
+[doxygen](https://github.com/tree-sitter-grammars/tree-sitter-doxygen) | core | `H IJ ` | | @amaanq
+[dtd](https://github.com/tree-sitter-grammars/tree-sitter-xml) | core | `HF JL` | | @ObserverOfTime
+[earthfile](https://github.com/glehmann/tree-sitter-earthfile) | community | `H  J ` | | @glehmann
+[ebnf](https://github.com/RubixDev/ebnf) | community | `H    ` | | @RubixDev
+ecma (queries only)[^ecma] | community | `HFIJL` | | @steelsojka
+[eds](https://github.com/uyha/tree-sitter-eds) | community | `HF   ` | | @uyha
+[eex](https://github.com/connorlay/tree-sitter-eex) | community | `H  J ` | | @connorlay
+[elixir](https://github.com/elixir-lang/tree-sitter-elixir) | community | `HFIJL` | | @connorlay
+[elm](https://github.com/elm-tooling/tree-sitter-elm) | community | `H  J ` | | @zweimach
+[elsa](https://github.com/glapa-grossklag/tree-sitter-elsa) | community | `HFIJL` | | @glapa-grossklag, @amaanq
+[elvish](https://github.com/elves/tree-sitter-elvish) | community | `H  J ` | | @elves
+[embedded_template](https://github.com/tree-sitter/tree-sitter-embedded-template) | unsupported | `H  J ` | |
+[erlang](https://github.com/WhatsApp/tree-sitter-erlang) | community | `HF   ` | | @filmor
+[facility](https://github.com/FacilityApi/tree-sitter-facility) | community | `HFIJ ` | | @bryankenote
+[faust](https://github.com/khiner/tree-sitter-faust) | community | `H  J ` | | @khiner
+[fennel](https://github.com/alexmozaidze/tree-sitter-fennel) | community | `HF JL` | | @alexmozaidze
+[fidl](https://github.com/google/tree-sitter-fidl) | community | `HF J ` | | @chaopeng
+[firrtl](https://github.com/tree-sitter-grammars/tree-sitter-firrtl) | core | `HFIJL` | | @amaanq
+[fish](https://github.com/ram02z/tree-sitter-fish) | community | `HFIJL` | | @ram02z
+[foam](https://github.com/FoamScience/tree-sitter-foam) | community | `HFIJL` | | @FoamScience
+[forth](https://github.com/AlexanderBrevig/tree-sitter-forth) | community | `HFIJL` | | @amaanq
+[fortran](https://github.com/stadelmanma/tree-sitter-fortran) | community | `HFI  ` | | @amaanq
+[fsh](https://github.com/mgramigna/tree-sitter-fsh) | community | `H    ` | | @mgramigna
+[func](https://github.com/tree-sitter-grammars/tree-sitter-func) | core | `H    ` | | @amaanq
+[fusion](https://gitlab.com/jirgn/tree-sitter-fusion.git) | community | `HFI L` | | @jirgn
+[gdscript](https://github.com/PrestonKnopp/tree-sitter-gdscript)[^gdscript] | community | `HFIJL` | | @PrestonKnopp
+[gdshader](https://github.com/GodOfAvacyn/tree-sitter-gdshader) | community | `H  J ` | | @godofavacyn
+[git_config](https://github.com/the-mikedavis/tree-sitter-git-config) | community | `HF J ` | | @amaanq
+[git_rebase](https://github.com/the-mikedavis/tree-sitter-git-rebase) | community | `H  J ` | | @gbprod
+[gitattributes](https://github.com/tree-sitter-grammars/tree-sitter-gitattributes) | core | `H  JL` | | @ObserverOfTime
+[gitcommit](https://github.com/gbprod/tree-sitter-gitcommit) | community | `H  J ` | | @gbprod
+[gitignore](https://github.com/shunsambongi/tree-sitter-gitignore) | community | `H    ` | | @theHamsta
+[gleam](https://github.com/gleam-lang/tree-sitter-gleam) | community | `HFIJL` | | @amaanq
+[glimmer](https://github.com/alexlafroscia/tree-sitter-glimmer)[^glimmer] | community | `HFI L` | | @NullVoxPopuli
+[glsl](https://github.com/tree-sitter-grammars/tree-sitter-glsl) | core | `HFIJL` | | @theHamsta
+[gn](https://github.com/tree-sitter-grammars/tree-sitter-gn) | core | `HFIJL` | | @amaanq
+[gnuplot](https://github.com/dpezto/tree-sitter-gnuplot) | community | `H  J ` | | @dpezto
+[go](https://github.com/tree-sitter/tree-sitter-go) | core | `HFIJL` | | @theHamsta, @WinWisely268
+[godot_resource](https://github.com/PrestonKnopp/tree-sitter-godot-resource)[^godot_resource] | community | `HF JL` | | @pierpo
+[gomod](https://github.com/camdencheek/tree-sitter-go-mod) | community | `H  J ` | | @camdencheek
+[gosum](https://github.com/tree-sitter-grammars/tree-sitter-go-sum) | core | `H    ` | | @amaanq
+[gotmpl](https://github.com/ngalaiko/tree-sitter-go-template) | community | `H  J ` | | @qvalentin
+[gowork](https://github.com/omertuc/tree-sitter-go-work) | community | `H  J ` | | @omertuc
+[gpg](https://github.com/tree-sitter-grammars/tree-sitter-gpg-config) | core | `H  J ` | | @ObserverOfTime
+[graphql](https://github.com/bkegley/tree-sitter-graphql) | community | `H IJ ` | | @bkegley
+[groovy](https://github.com/murtaza64/tree-sitter-groovy) | community | `HFIJL` | | @murtaza64
+[gstlaunch](https://github.com/tree-sitter-grammars/tree-sitter-gstlaunch) | core | `H    ` | | @theHamsta
+[hack](https://github.com/slackhq/tree-sitter-hack) | unsupported | `H    ` | |
+[hare](https://github.com/tree-sitter-grammars/tree-sitter-hare) | core | `HFIJL` | | @amaanq
+[haskell](https://github.com/tree-sitter/tree-sitter-haskell) | core | `HF J ` | | @mrcjkb
+[haskell_persistent](https://github.com/MercuryTechnologies/tree-sitter-haskell-persistent) | community | `HF   ` | | @lykahb
+[hcl](https://github.com/tree-sitter-grammars/tree-sitter-hcl) | core | `HFIJ ` | | @MichaHoffmann
+[heex](https://github.com/connorlay/tree-sitter-heex) | community | `HFIJL` | | @connorlay
+[helm](https://github.com/ngalaiko/tree-sitter-go-template) | community | `H  J ` | | @qvalentin
+[hjson](https://github.com/winston0410/tree-sitter-hjson) | community | `HFIJL` | | @winston0410
+[hlsl](https://github.com/tree-sitter-grammars/tree-sitter-hlsl) | core | `HFIJL` | | @theHamsta
+[hlsplaylist](https://github.com/Freed-Wu/tree-sitter-hlsplaylist) | community | `H  J ` | | @Freed-Wu
+[hocon](https://github.com/antosha417/tree-sitter-hocon) | unsupported | `HF J ` | | @antosha417
+[hoon](https://github.com/urbit-pilled/tree-sitter-hoon) | community | `HF  L` | | @urbit-pilled
+[html](https://github.com/tree-sitter/tree-sitter-html) | core | `HFIJL` | | @TravonteD
+html_tags (queries only)[^html_tags] | community | `H IJ ` | | @TravonteD
+[htmldjango](https://github.com/interdependence/tree-sitter-htmldjango) | community | `HFIJ ` | | @ObserverOfTime
+[http](https://github.com/rest-nvim/tree-sitter-http) | community | `H  J ` | | @amaanq, @NTBBloodbath
+[hurl](https://github.com/pfeiferj/tree-sitter-hurl) | community | `HFIJ ` | | @pfeiferj
+[hyprlang](https://github.com/tree-sitter-grammars/tree-sitter-hyprlang) | core | `HFIJ ` | | @luckasRanarison
+[idl](https://github.com/cathaysia/tree-sitter-idl) | community | `H  J ` | | @cathaysa
+[ini](https://github.com/justinmk/tree-sitter-ini) | community | `HF   ` | | @theHamsta
+[inko](https://github.com/inko-lang/tree-sitter-inko) | community | `HFIJL` | | @yorickpeterse
+[ispc](https://github.com/tree-sitter-grammars/tree-sitter-ispc) | core | `HFIJL` | | @fab4100
+[janet_simple](https://github.com/sogaiu/tree-sitter-janet-simple) | community | `HF JL` | | @sogaiu
+[java](https://github.com/tree-sitter/tree-sitter-java) | core | `HFIJL` | | @p00f
+[javascript](https://github.com/tree-sitter/tree-sitter-javascript) | core | `HFIJL` | | @steelsojka
+[jq](https://github.com/flurie/tree-sitter-jq) | community | `H  JL` | | @ObserverOfTime
+[jsdoc](https://github.com/tree-sitter/tree-sitter-jsdoc) | core | `H    ` | | @steelsojka
+[json](https://github.com/tree-sitter/tree-sitter-json) | core | `HFI L` | | @steelsojka
+[json5](https://github.com/Joakker/tree-sitter-json5) | community | `H  J ` | | @Joakker
+[jsonc](https://gitlab.com/WhyNotHugo/tree-sitter-jsonc.git) | community | `HFIJL` | | @WhyNotHugo
+[jsonnet](https://github.com/sourcegraph/tree-sitter-jsonnet) | community | `HF  L` | | @nawordar
+jsx (queries only)[^jsx] | community | `HFIJ ` | | @steelsojka
+[julia](https://github.com/tree-sitter/tree-sitter-julia) | core | `HFIJL` | | @theHamsta
+[just](https://github.com/IndianBoy42/tree-sitter-just) | community | `HFIJL` | | @Hubro
+[kconfig](https://github.com/tree-sitter-grammars/tree-sitter-kconfig) | core | `HFIJL` | | @amaanq
+[kdl](https://github.com/tree-sitter-grammars/tree-sitter-kdl) | core | `HFIJL` | | @amaanq
+[kotlin](https://github.com/fwcd/tree-sitter-kotlin) | community | `HF JL` | | @SalBakraa
+[koto](https://github.com/koto-lang/tree-sitter-koto) | community | `HF JL` | | @irh
+[kusto](https://github.com/Willem-J-an/tree-sitter-kusto) | community | `H  J ` | | @Willem-J-an
+[lalrpop](https://github.com/traxys/tree-sitter-lalrpop) | community | `H  JL` | | @traxys
+[latex](https://github.com/latex-lsp/tree-sitter-latex) | community | `HF J ` | ✓ | @theHamsta, @clason
+[ledger](https://github.com/cbarrete/tree-sitter-ledger) | community | `HFIJ ` | | @cbarrete
+[leo](https://github.com/r001/tree-sitter-leo) | community | `H IJ ` | | @r001
+[linkerscript](https://github.com/tree-sitter-grammars/tree-sitter-linkerscript) | core | `HFIJL` | | @amaanq
+[liquid](https://github.com/hankthetank27/tree-sitter-liquid) | community | `H  J ` | | @hankthetank27
+[liquidsoap](https://github.com/savonet/tree-sitter-liquidsoap) | community | `HFI L` | | @toots
+[llvm](https://github.com/benwilliamgraham/tree-sitter-llvm) | community | `H    ` | | @benwilliamgraham
+[lua](https://github.com/tree-sitter-grammars/tree-sitter-lua) | stable | `HFIJL` | | @muniftanjim
+[luadoc](https://github.com/tree-sitter-grammars/tree-sitter-luadoc) | core | `H    ` | | @amaanq
+[luap](https://github.com/tree-sitter-grammars/tree-sitter-luap)[^luap] | core | `H    ` | | @amaanq
+[luau](https://github.com/tree-sitter-grammars/tree-sitter-luau) | core | `HFIJL` | | @amaanq
+[m68k](https://github.com/grahambates/tree-sitter-m68k) | community | `HF JL` | | @grahambates
+[make](https://github.com/alemuller/tree-sitter-make) | community | `HF J ` | | @lewis6991
+[markdown](https://github.com/tree-sitter-grammars/tree-sitter-markdown)[^markdown] | stable | `HFIJ ` | | @MDeiml
+[markdown_inline](https://github.com/tree-sitter-grammars/tree-sitter-markdown)[^markdown_inline] | stable | `H  J ` | | @MDeiml
+[matlab](https://github.com/acristoffers/tree-sitter-matlab) | community | `HFIJL` | | @acristoffers
+[menhir](https://github.com/Kerl13/tree-sitter-menhir) | community | `H  J ` | | @Kerl13
+[mermaid](https://github.com/monaqa/tree-sitter-mermaid) | unsupported | `H    ` | |
+[meson](https://github.com/tree-sitter-grammars/tree-sitter-meson) | core | `HFIJ ` | | @Decodetalkers
+[mlir](https://github.com/artagnon/tree-sitter-mlir) | community | `H   L` | ✓ | @artagnon
+[muttrc](https://github.com/neomutt/tree-sitter-muttrc) | community | `H  J ` | | @Freed-Wu
+[nasm](https://github.com/naclsn/tree-sitter-nasm) | community | `H  J ` | | @ObserverOfTime
+[nickel](https://github.com/nickel-lang/tree-sitter-nickel) | unsupported | `H I  ` | |
+[nim](https://github.com/alaviss/tree-sitter-nim) | community | `HF JL` | | @aMOPel
+[nim_format_string](https://github.com/aMOPel/tree-sitter-nim-format-string) | community | `H  J ` | | @aMOPel
+[ninja](https://github.com/alemuller/tree-sitter-ninja) | community | `HFI  ` | | @alemuller
+[nix](https://github.com/cstrahan/tree-sitter-nix) | community | `HF JL` | | @leo60228
+[nqc](https://github.com/tree-sitter-grammars/tree-sitter-nqc) | core | `HFIJL` | | @amaanq
+[objc](https://github.com/tree-sitter-grammars/tree-sitter-objc) | core | `HFIJL` | | @amaanq
+[objdump](https://github.com/ColinKennedy/tree-sitter-objdump) | community | `H  J ` | | @ColinKennedy
+[ocaml](https://github.com/tree-sitter/tree-sitter-ocaml) | core | `HFIJL` | | @undu
+[ocaml_interface](https://github.com/tree-sitter/tree-sitter-ocaml) | core | `HFIJL` | | @undu
+[ocamllex](https://github.com/atom-ocaml/tree-sitter-ocamllex) | community | `H  J ` | ✓ | @undu
+[odin](https://github.com/tree-sitter-grammars/tree-sitter-odin) | core | `HFIJL` | | @amaanq
+[org](https://github.com/milisims/tree-sitter-org) | unsupported | `     ` | |
+[pascal](https://github.com/Isopod/tree-sitter-pascal.git) | community | `HFIJL` | | @Isopod
+[passwd](https://github.com/ath3/tree-sitter-passwd) | community | `H    ` | | @amaanq
+[pem](https://github.com/tree-sitter-grammars/tree-sitter-pem) | core | `HF J ` | | @ObserverOfTime
+[perl](https://github.com/tree-sitter-perl/tree-sitter-perl) | community | `HF J ` | | @RabbiVeesh, @LeoNerd
+[php](https://github.com/tree-sitter/tree-sitter-php)[^php] | core | `HFIJL` | | @tk-shirasaka
+[php_only](https://github.com/tree-sitter/tree-sitter-php)[^php_only] | core | `HFIJL` | | @tk-shirasaka
+[phpdoc](https://github.com/claytonrcarter/tree-sitter-phpdoc) | community | `H    ` | | @mikehaertl
+[pioasm](https://github.com/leo60228/tree-sitter-pioasm) | community | `H  J ` | | @leo60228
+[po](https://github.com/tree-sitter-grammars/tree-sitter-po) | core | `HF J ` | | @amaanq
+[pod](https://github.com/tree-sitter-perl/tree-sitter-pod) | community | `H    ` | | @RabbiVeesh, @LeoNerd
+[poe_filter](https://github.com/tree-sitter-grammars/tree-sitter-poe-filter)[^poe_filter] | core | `HFIJ ` | | @ObserverOfTime
+[pony](https://github.com/tree-sitter-grammars/tree-sitter-pony) | core | `HFIJL` | | @amaanq, @mfelsche
+[printf](https://github.com/tree-sitter-grammars/tree-sitter-printf) | core | `H    ` | | @ObserverOfTime
+[prisma](https://github.com/victorhqc/tree-sitter-prisma) | community | `HF   ` | | @elianiva
+[promql](https://github.com/MichaHoffmann/tree-sitter-promql) | community | `H  J ` | | @MichaHoffmann
+[properties](https://github.com/tree-sitter-grammars/tree-sitter-properties)[^properties] | core | `H  JL` | | @ObserverOfTime
+[proto](https://github.com/treywood/tree-sitter-proto) | community | `HF   ` | | @treywood
+[prql](https://github.com/PRQL/tree-sitter-prql) | community | `H  J ` | | @matthias-Q
+[psv](https://github.com/tree-sitter-grammars/tree-sitter-csv) | core | `H    ` | | @amaanq
+[pug](https://github.com/zealot128/tree-sitter-pug) | community | `H  J ` | | @zealot128
+[puppet](https://github.com/tree-sitter-grammars/tree-sitter-puppet) | core | `HFIJL` | | @amaanq
+[purescript](https://github.com/postsolar/tree-sitter-purescript) | community | `H  JL` | | @postsolar
+[pymanifest](https://github.com/tree-sitter-grammars/tree-sitter-pymanifest) | core | `H  J ` | | @ObserverOfTime
+[python](https://github.com/tree-sitter/tree-sitter-python) | stable | `HFIJL` | | @stsewd, @theHamsta
+[ql](https://github.com/tree-sitter/tree-sitter-ql) | core | `HFIJL` | | @pwntester
+[qmldir](https://github.com/tree-sitter-grammars/tree-sitter-qmldir) | core | `H  J ` | | @amaanq
+[qmljs](https://github.com/yuja/tree-sitter-qmljs) | community | `HF J ` | | @Decodetalkers
+[query](https://github.com/tree-sitter-grammars/tree-sitter-query)[^query] | stable | `HFIJL` | | @steelsojka
+[r](https://github.com/r-lib/tree-sitter-r) | community | `H IJL` | | @echasnovski
+[racket](https://github.com/6cdh/tree-sitter-racket) | unsupported | `HF J ` | |
+[rasi](https://github.com/Fymyte/tree-sitter-rasi) | community | `HFIJL` | | @Fymyte
+[rbs](https://github.com/joker1007/tree-sitter-rbs) | community | `HFIJ ` | | @joker1007
+[re2c](https://github.com/tree-sitter-grammars/tree-sitter-re2c) | core | `HFIJL` | | @amaanq
+[readline](https://github.com/tree-sitter-grammars/tree-sitter-readline) | core | `HFIJ ` | | @ribru17
+[regex](https://github.com/tree-sitter/tree-sitter-regex) | core | `H    ` | | @theHamsta
+[rego](https://github.com/FallenAngel97/tree-sitter-rego) | community | `H  J ` | | @FallenAngel97
+[requirements](https://github.com/tree-sitter-grammars/tree-sitter-requirements) | core | `H  J ` | | @ObserverOfTime
+[rnoweb](https://github.com/bamonroe/tree-sitter-rnoweb) | community | `HF J ` | | @bamonroe
+[robot](https://github.com/Hubro/tree-sitter-robot) | community | `HFI  ` | | @Hubro
+[roc](https://github.com/nat-418/tree-sitter-roc) | community | `H  JL` | | @nat-418
+[ron](https://github.com/tree-sitter-grammars/tree-sitter-ron) | core | `HFIJL` | | @amaanq
+[rst](https://github.com/stsewd/tree-sitter-rst) | community | `H  JL` | | @stsewd
+[ruby](https://github.com/tree-sitter/tree-sitter-ruby) | core | `HFIJL` | | @TravonteD
+[rust](https://github.com/tree-sitter/tree-sitter-rust) | core | `HFIJL` | | @amaanq
+[scala](https://github.com/tree-sitter/tree-sitter-scala) | core | `HF JL` | | @stevanmilic
+[scfg](https://git.sr.ht/~rockorager/tree-sitter-scfg) | community | `H  J ` | ✓ | @WhyNotHugo
+[scheme](https://github.com/6cdh/tree-sitter-scheme) | unsupported | `HF J ` | |
+[scss](https://github.com/serenadeai/tree-sitter-scss) | community | `HFI  ` | | @elianiva
+[slang](https://github.com/tree-sitter-grammars/tree-sitter-slang)[^slang] | core | `HFIJL` | | @theHamsta
+[slint](https://github.com/slint-ui/tree-sitter-slint) | community | `HFIJL` | | @hunger
+[smali](https://github.com/tree-sitter-grammars/tree-sitter-smali) | core | `HFIJL` | | @amaanq
+[smithy](https://github.com/indoorvivants/tree-sitter-smithy) | community | `H    ` | | @amaanq, @keynmol
+[snakemake](https://github.com/osthomas/tree-sitter-snakemake) | community | `HFIJL` | | @osthomas
+[solidity](https://github.com/JoranHonig/tree-sitter-solidity) | community | `HF   ` | | @amaanq
+[soql](https://github.com/aheber/tree-sitter-sfapex) | community | `H    ` | | @aheber
+[sosl](https://github.com/aheber/tree-sitter-sfapex) | community | `H    ` | | @aheber
+[sourcepawn](https://github.com/nilshelmig/tree-sitter-sourcepawn) | community | `H  JL` | | @Sarrus1
+[sparql](https://github.com/BonaBeavis/tree-sitter-sparql) | community | `HFIJL` | | @BonaBeavis
+[sql](https://github.com/derekstride/tree-sitter-sql) | community | `H IJ ` | | @derekstride
+[squirrel](https://github.com/tree-sitter-grammars/tree-sitter-squirrel) | core | `HFIJL` | | @amaanq
+[ssh_config](https://github.com/tree-sitter-grammars/tree-sitter-ssh-config) | core | `HFIJL` | | @ObserverOfTime
+[starlark](https://github.com/tree-sitter-grammars/tree-sitter-starlark) | core | `HFIJL` | | @amaanq
+[strace](https://github.com/sigmaSd/tree-sitter-strace) | community | `H  J ` | | @amaanq
+[styled](https://github.com/mskelton/tree-sitter-styled) | community | `HFIJ ` | | @mskelton
+[supercollider](https://github.com/madskjeldgaard/tree-sitter-supercollider) | community | `HFIJL` | | @madskjeldgaard
+[surface](https://github.com/connorlay/tree-sitter-surface) | community | `HFIJ ` | | @connorlay
+[svelte](https://github.com/tree-sitter-grammars/tree-sitter-svelte) | core | `HFIJL` | | @amaanq
+[swift](https://github.com/alex-pinkus/tree-sitter-swift) | community | `H I L` | ✓ | @alex-pinkus
+[sxhkdrc](https://github.com/RaafatTurki/tree-sitter-sxhkdrc) | community | `HF J ` | | @RaafatTurki
+[systemtap](https://github.com/ok-ryoko/tree-sitter-systemtap) | community | `HF JL` | | @ok-ryoko
+[t32](https://gitlab.com/xasc/tree-sitter-t32.git) | community | `HFIJL` | | @xasc
+[tablegen](https://github.com/tree-sitter-grammars/tree-sitter-tablegen) | core | `HFIJL` | | @amaanq
+[tcl](https://github.com/tree-sitter-grammars/tree-sitter-tcl) | core | `HFI  ` | | @lewis6991
+[teal](https://github.com/euclidianAce/tree-sitter-teal) | community | `HFIJL` | ✓ | @euclidianAce
+[templ](https://github.com/vrischmann/tree-sitter-templ) | community | `H  J ` | | @vrischmann
+[terraform](https://github.com/MichaHoffmann/tree-sitter-hcl) | community | `HFIJ ` | | @MichaHoffmann
+[textproto](https://github.com/PorterAtGoogle/tree-sitter-textproto) | community | `HFI  ` | | @Porter
+[thrift](https://github.com/tree-sitter-grammars/tree-sitter-thrift) | core | `HFIJL` | | @amaanq, @duskmoon314
+[tiger](https://github.com/ambroisie/tree-sitter-tiger) | community | `HFIJL` | | @ambroisie
+[tlaplus](https://github.com/tlaplus-community/tree-sitter-tlaplus) | community | `HF JL` | | @ahelwer, @susliko
+[tmux](https://github.com/Freed-Wu/tree-sitter-tmux) | community | `H  J ` | | @Freed-Wu
+[todotxt](https://github.com/arnarg/tree-sitter-todotxt.git) | community | `H    ` | | @arnarg
+[toml](https://github.com/tree-sitter-grammars/tree-sitter-toml) | core | `HFIJL` | | @tk-shirasaka
+[tsv](https://github.com/tree-sitter-grammars/tree-sitter-csv) | core | `H    ` | | @amaanq
+[tsx](https://github.com/tree-sitter/tree-sitter-typescript) | core | `HFIJL` | | @steelsojka
+[turtle](https://github.com/BonaBeavis/tree-sitter-turtle) | community | `HFIJL` | | @BonaBeavis
+[twig](https://github.com/gbprod/tree-sitter-twig) | community | `H  J ` | | @gbprod
+[typescript](https://github.com/tree-sitter/tree-sitter-typescript) | core | `HFIJL` | | @steelsojka
+[typoscript](https://github.com/Teddytrombone/tree-sitter-typoscript) | community | `HFIJ ` | | @Teddytrombone
+[typst](https://github.com/uben0/tree-sitter-typst) | community | `HFIJ ` | | @uben0, @RaafatTurki
+[udev](https://github.com/tree-sitter-grammars/tree-sitter-udev) | core | `H  JL` | | @ObserverOfTime
+[ungrammar](https://github.com/tree-sitter-grammars/tree-sitter-ungrammar) | core | `HFIJL` | | @Philipp-M, @amaanq
+[unison](https://github.com/kylegoetz/tree-sitter-unison) | community | `H  J ` | ✓ | @tapegram
+[usd](https://github.com/ColinKennedy/tree-sitter-usd) | community | `HFI L` | | @ColinKennedy
+[uxntal](https://github.com/tree-sitter-grammars/tree-sitter-uxntal) | core | `HFIJL` | | @amaanq
+[v](https://github.com/vlang/v-analyzer) | community | `HFIJL` | | @kkharji, @amaanq
+[vala](https://github.com/vala-lang/tree-sitter-vala) | community | `HF   ` | | @Prince781
+[vento](https://github.com/ventojs/tree-sitter-vento) | community | `H  J ` | | @wrapperup, @oscarotero
+[verilog](https://github.com/tree-sitter/tree-sitter-verilog) | core | `HF JL` | | @zegervdv
+[vhs](https://github.com/charmbracelet/tree-sitter-vhs) | community | `H    ` | | @caarlos0
+[vim](https://github.com/tree-sitter-grammars/tree-sitter-vim) | stable | `HF JL` | | @clason
+[vimdoc](https://github.com/neovim/tree-sitter-vimdoc) | stable | `H  J ` | | @clason
+[vue](https://github.com/tree-sitter-grammars/tree-sitter-vue) | core | `HFIJ ` | | @WhyNotHugo, @lucario387
+[wgsl](https://github.com/szebniok/tree-sitter-wgsl) | community | `HFI  ` | | @szebniok
+[wgsl_bevy](https://github.com/tree-sitter-grammars/tree-sitter-wgsl-bevy) | core | `HFI  ` | | @theHamsta
+[wing](https://github.com/winglang/tree-sitter-wing) | community | `HF  L` | | @gshpychka, @MarkMcCulloh
+[wit](https://github.com/liamwh/tree-sitter-wit) | community | `H  J ` | | @liamwh
+[xcompose](https://github.com/tree-sitter-grammars/tree-sitter-xcompose) | core | `H  JL` | | @ObserverOfTime
+[xml](https://github.com/tree-sitter-grammars/tree-sitter-xml) | core | `HFIJL` | | @ObserverOfTime
+[yaml](https://github.com/tree-sitter-grammars/tree-sitter-yaml) | core | `HFIJL` | | @amaanq
+[yang](https://github.com/Hubro/tree-sitter-yang) | community | `HFIJ ` | | @Hubro
+[yuck](https://github.com/tree-sitter-grammars/tree-sitter-yuck) | core | `HFIJL` | | @Philipp-M, @amaanq
+[zathurarc](https://github.com/Freed-Wu/tree-sitter-zathurarc) | community | `H  J ` | | @Freed-Wu
+[zig](https://github.com/maxxnino/tree-sitter-zig) | community | `HFIJL` | | @maxxnino
[^ecma]: queries required by javascript, typescript, tsx, qmljs
[^gdscript]: Godot
[^glimmer]: Glimmer and Ember
diff --git a/lua/nvim-treesitter/health.lua b/lua/nvim-treesitter/health.lua
index 1d6400977..5d3a23300 100644
--- a/lua/nvim-treesitter/health.lua
+++ b/lua/nvim-treesitter/health.lua
@@ -37,16 +37,8 @@ local function install_health()
)
end
- if vim.fn.executable('node') == 0 then
- health.warn('`node` executable not found (only needed for `:TSInstallFromGrammar`.')
- else
- local result = assert(vim.system({ 'node', '--version' }):wait().stdout)
- local version = vim.split(result, '\n')[1]
- health.ok('`node` found ' .. version .. ' (only needed for `:TSInstallFromGrammar`)')
- end
-
if vim.fn.executable('git') == 0 then
- health.error(
+ health.warn(
'`git` executable not found.',
'Install it with your package manager and check that your `$PATH` is set correctly.'
)
diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua
index 57671d7d3..c501b0fa0 100644
--- a/lua/nvim-treesitter/install.lua
+++ b/lua/nvim-treesitter/install.lua
@@ -31,7 +31,7 @@ local M = {}
---@type table<string, LockfileInfo>
local lockfile = {}
-local max_jobs = 50
+local max_jobs = 10
local iswin = uv.os_uname().sysname == 'Windows_NT'
local ismac = uv.os_uname().sysname == 'Darwin'
@@ -145,24 +145,17 @@ end
--- @param repo InstallInfo
--- @param compile_location string
--- @return string? err
-local function do_generate_from_grammar(logger, repo, compile_location)
+local function do_generate(logger, repo, compile_location)
if not executable('tree-sitter') then
return logger:error('tree-sitter CLI not found: `tree-sitter` is not executable')
end
- if repo.generate_requires_npm then
- if not executable('npm') then
- return logger:error('NPM requires to be installed from grammar.js')
- end
-
- logger:info('Installing NPM dependencies')
- local r = system({ 'npm', 'install' }, { cwd = compile_location })
- if r.code > 0 then
- return logger:error('Error during `npm install`: %s', r.stderr)
- end
- end
-
- logger:info('Generating source files from grammar.js...')
+ logger:info(
+ string.format(
+ 'Generating parser.c from %s...',
+ repo.generate_from_json and 'grammar.json' or 'grammar.js'
+ )
+ )
local r = system({
fn.exepath('tree-sitter'),
@@ -170,6 +163,7 @@ local function do_generate_from_grammar(logger, repo, compile_location)
'--no-bindings',
'--abi',
tostring(vim.treesitter.language_version),
+ repo.generate_from_json and 'src/grammar.json',
}, { cwd = compile_location })
if r.code > 0 then
return logger:error('Error during "tree-sitter generate": %s', r.stderr)
@@ -262,6 +256,10 @@ end
---@param project_dir string
---@return string? err
local function do_download_git(logger, repo, project_name, cache_dir, revision, project_dir)
+ if not executable('git') then
+ return logger:error('git not found!')
+ end
+
logger:info('Downloading ' .. project_name .. '...')
local r = system({
@@ -386,7 +384,7 @@ end
---@param repo InstallInfo
---@param cc string
---@param compile_location string
---- @return string? err
+---@return string? err
local function do_compile(logger, repo, cc, compile_location)
local args = vim.tbl_flatten(select_compiler_args(repo, cc))
local cmd = vim.list_extend({ cc }, args)
@@ -442,7 +440,7 @@ local function install_lang0(lang, cache_dir, install_dir, generate)
do
if repo.generate or generate then
- local err = do_generate_from_grammar(logger, repo, compile_location)
+ local err = do_generate(logger, repo, compile_location)
if err then
return err
end
@@ -497,9 +495,9 @@ local INSTALL_TIMEOUT = 60000
---@param cache_dir string
---@param install_dir string
---@param force? boolean
----@param generate_from_grammar? boolean
+---@param generate? boolean
---@return InstallStatus status
-local function install_lang(lang, cache_dir, install_dir, force, generate_from_grammar)
+local function install_lang(lang, cache_dir, install_dir, force, generate)
if not force and vim.list_contains(config.installed_parsers(), lang) then
local yesno = fn.input(lang .. ' parser already available: would you like to reinstall ? y/n: ')
print('\n ')
@@ -518,7 +516,7 @@ local function install_lang(lang, cache_dir, install_dir, force, generate_from_g
end
else
install_status[lang] = 'installing'
- local err = install_lang0(lang, cache_dir, install_dir, generate_from_grammar)
+ local err = install_lang0(lang, cache_dir, install_dir, generate)
install_status[lang] = err and 'failed' or 'installed'
end
@@ -529,7 +527,7 @@ end
---@class InstallOptions
---@field force? boolean
----@field generate_from_grammar? boolean
+---@field generate? boolean
---@field skip? table
--- Install a parser
@@ -539,7 +537,7 @@ end
local function install(languages, options, _callback)
options = options or {}
local force = options.force
- local generate_from_grammar = options.generate_from_grammar
+ local generate = options.generate
local skip = options.skip
local cache_dir = vim.fs.normalize(fn.stdpath('cache'))
@@ -560,7 +558,7 @@ local function install(languages, options, _callback)
for _, lang in ipairs(languages) do
tasks[#tasks + 1] = a.sync(function()
a.main()
- local status = install_lang(lang, cache_dir, install_dir, force, generate_from_grammar)
+ local status = install_lang(lang, cache_dir, install_dir, force, generate)
if status ~= 'failed' then
done = done + 1
end
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index 6f5915da1..4e3222563 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -4,8 +4,8 @@
---@field branch? string
---@field revision? string
---@field files string[]
----@field generate_requires_npm? boolean
---@field generate? boolean
+---@field generate_from_json? boolean
---@field location? string
---@class ParserInfo
@@ -36,18 +36,18 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@Decodetalkers' },
- tier = 3,
+ tier = 2,
},
angular = {
install_info = {
url = 'https://github.com/dlvandenberg/tree-sitter-angular',
files = { 'src/parser.c', 'src/scanner.c' },
- generate_requires_npm = true,
+ generate_from_json = true,
},
maintainers = { '@dlvandenberg' },
requires = { 'html', 'html_tags' },
- tier = 4,
+ tier = 3,
},
apex = {
@@ -62,8 +62,9 @@ M.configs = {
arduino = {
install_info = {
- url = 'https://github.com/ObserverOfTime/tree-sitter-arduino',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-arduino',
files = { 'src/parser.c', 'src/scanner.c' },
+ generate_from_json = true,
},
maintainers = { '@ObserverOfTime' },
requires = { 'cpp' },
@@ -83,6 +84,7 @@ M.configs = {
install_info = {
url = 'https://github.com/virchau13/tree-sitter-astro',
files = { 'src/parser.c', 'src/scanner.c' },
+ generate_from_json = true,
},
maintainers = { '@virchau13' },
requires = { 'html', 'html_tags' },
@@ -112,7 +114,7 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@TravonteD' },
- tier = 3,
+ tier = 1,
},
bass = {
@@ -121,7 +123,7 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
- tier = 2,
+ tier = 3,
},
beancount = {
@@ -139,12 +141,12 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@theHamsta', '@clason' },
- tier = 2,
+ tier = 3,
},
bicep = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-bicep',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-bicep',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
@@ -153,7 +155,7 @@ M.configs = {
bitbake = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-bitbake',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-bitbake',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
@@ -209,12 +211,12 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
- tier = 3,
+ tier = 2,
},
cairo = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-cairo',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-cairo',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
@@ -232,7 +234,7 @@ M.configs = {
capnp = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-capnp',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-capnp',
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
@@ -241,7 +243,7 @@ M.configs = {
chatito = {
install_info = {
- url = 'https://github.com/ObserverOfTime/tree-sitter-chatito',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-chatito',
files = { 'src/parser.c' },
},
maintainers = { '@ObserverOfTime' },
@@ -272,7 +274,7 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@uyha' },
- tier = 4,
+ tier = 3,
},
comment = {
@@ -281,14 +283,14 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@stsewd' },
- tier = 2,
+ tier = 3,
},
commonlisp = {
install_info = {
- url = 'https://github.com/theHamsta/tree-sitter-commonlisp',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-commonlisp',
files = { 'src/parser.c' },
- generate_requires_npm = true,
+ generate_from_json = true,
},
maintainers = { '@theHamsta' },
tier = 2,
@@ -314,7 +316,7 @@ M.configs = {
cpon = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-cpon',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-cpon',
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
@@ -325,11 +327,11 @@ M.configs = {
install_info = {
url = 'https://github.com/tree-sitter/tree-sitter-cpp',
files = { 'src/parser.c', 'src/scanner.c' },
- generate_requires_npm = true,
+ generate_from_json = true,
},
maintainers = { '@theHamsta' },
requires = { 'c' },
- tier = 1,
+ tier = 2,
},
css = {
@@ -338,12 +340,12 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@TravonteD' },
- tier = 3,
+ tier = 2,
},
csv = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-csv',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-csv',
files = { 'src/parser.c' },
location = 'csv',
},
@@ -354,9 +356,9 @@ M.configs = {
cuda = {
install_info = {
- url = 'https://github.com/theHamsta/tree-sitter-cuda',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-cuda',
files = { 'src/parser.c', 'src/scanner.c' },
- generate_requires_npm = true,
+ generate_from_json = true,
},
maintainers = { '@theHamsta' },
requires = { 'cpp' },
@@ -369,7 +371,7 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
- tier = 2,
+ tier = 3,
},
cylc = {
@@ -386,7 +388,7 @@ M.configs = {
url = 'https://github.com/gdamore/tree-sitter-d',
files = { 'src/parser.c', 'src/scanner.c' },
},
- tier = 2,
+ tier = 3,
maintainers = { '@amaanq' },
},
@@ -396,7 +398,7 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@akinsho' },
- tier = 4,
+ tier = 3,
},
desktop = {
@@ -423,7 +425,7 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
- tier = 2,
+ tier = 3,
},
diff = {
@@ -473,7 +475,7 @@ M.configs = {
doxygen = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-doxygen',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-doxygen',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
@@ -498,6 +500,7 @@ M.configs = {
maintainers = { '@glehmann' },
tier = 3,
},
+
ebnf = {
install_info = {
url = 'https://github.com/RubixDev/ebnf',
@@ -505,13 +508,13 @@ M.configs = {
location = 'crates/tree-sitter-ebnf',
},
maintainers = { '@RubixDev' },
- tier = 4,
+ tier = 3,
},
ecma = {
maintainers = { '@steelsojka' },
readme_note = 'queries required by javascript, typescript, tsx, qmljs',
- tier = 2,
+ tier = 3,
},
editorconfig = {
@@ -556,7 +559,7 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@zweimach' },
- tier = 4,
+ tier = 3,
},
elsa = {
@@ -565,7 +568,7 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@glapa-grossklag', '@amaanq' },
- tier = 2,
+ tier = 3,
},
elvish = {
@@ -625,7 +628,7 @@ M.configs = {
install_info = {
url = 'https://github.com/alexmozaidze/tree-sitter-fennel',
files = { 'src/parser.c', 'src/scanner.c' },
- generate_requires_npm = true,
+ generate_from_json = true,
},
maintainers = { '@alexmozaidze' },
tier = 3,
@@ -642,7 +645,7 @@ M.configs = {
firrtl = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-firrtl',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-firrtl',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
@@ -673,7 +676,7 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
- tier = 2,
+ tier = 3,
},
fortran = {
@@ -682,7 +685,7 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
- tier = 2,
+ tier = 3,
},
fsh = {
@@ -706,7 +709,7 @@ M.configs = {
func = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-func',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-func',
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
@@ -773,7 +776,7 @@ M.configs = {
gitattributes = {
install_info = {
- url = 'https://github.com/ObserverOfTime/tree-sitter-gitattributes',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-gitattributes',
files = { 'src/parser.c' },
},
maintainers = { '@ObserverOfTime' },
@@ -795,7 +798,7 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
- tier = 2,
+ tier = 3,
},
gitignore = {
@@ -804,7 +807,7 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@theHamsta' },
- tier = 2,
+ tier = 3,
},
gleam = {
@@ -813,7 +816,7 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
- tier = 2,
+ tier = 3,
},
glimmer = {
@@ -850,9 +853,9 @@ M.configs = {
glsl = {
install_info = {
- url = 'https://github.com/theHamsta/tree-sitter-glsl',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-glsl',
files = { 'src/parser.c' },
- generate_requires_npm = true,
+ generate_from_json = true,
},
maintainers = { '@theHamsta' },
requires = { 'c' },
@@ -861,7 +864,7 @@ M.configs = {
gn = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-gn',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-gn',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
@@ -884,7 +887,7 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@theHamsta', '@WinWisely268' },
- tier = 1,
+ tier = 2,
},
goctl = {
@@ -917,7 +920,7 @@ M.configs = {
gosum = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-go-sum',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-go-sum',
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
@@ -953,7 +956,7 @@ M.configs = {
gpg = {
install_info = {
- url = 'https://github.com/ObserverOfTime/tree-sitter-gpg-config',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-gpg-config',
files = { 'src/parser.c' },
},
maintainers = { '@ObserverOfTime' },
@@ -980,7 +983,7 @@ M.configs = {
gstlaunch = {
install_info = {
- url = 'https://github.com/theHamsta/tree-sitter-gstlaunch',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-gstlaunch',
files = { 'src/parser.c' },
},
maintainers = { '@theHamsta' },
@@ -997,7 +1000,7 @@ M.configs = {
hare = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-hare',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-hare',
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
@@ -1010,7 +1013,7 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@mrcjkb' },
- tier = 3,
+ tier = 2,
},
haskell_persistent = {
@@ -1024,11 +1027,11 @@ M.configs = {
hcl = {
install_info = {
- url = 'https://github.com/MichaHoffmann/tree-sitter-hcl',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-hcl',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@MichaHoffmann' },
- tier = 3,
+ tier = 2,
},
heex = {
@@ -1054,7 +1057,7 @@ M.configs = {
install_info = {
url = 'https://github.com/winston0410/tree-sitter-hjson',
files = { 'src/parser.c' },
- generate_requires_npm = true,
+ generate_from_json = true,
},
maintainers = { '@winston0410' },
requires = { 'json' },
@@ -1063,9 +1066,9 @@ M.configs = {
hlsl = {
install_info = {
- url = 'https://github.com/theHamsta/tree-sitter-hlsl',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-hlsl',
files = { 'src/parser.c', 'src/scanner.c' },
- generate_requires_npm = true,
+ generate_from_json = true,
},
maintainers = { '@theHamsta' },
requires = { 'cpp' },
@@ -1085,7 +1088,7 @@ M.configs = {
install_info = {
url = 'https://github.com/antosha417/tree-sitter-hocon',
files = { 'src/parser.c' },
- generate_requires_npm = true,
+ generate_from_json = true,
},
maintainers = { '@antosha417' },
tier = 4,
@@ -1097,7 +1100,7 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@urbit-pilled' },
- tier = 4,
+ tier = 3,
},
html_tags = {
@@ -1113,7 +1116,7 @@ M.configs = {
},
maintainers = { '@TravonteD' },
requires = { 'html_tags' },
- tier = 3,
+ tier = 2,
},
htmldjango = {
@@ -1122,7 +1125,7 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@ObserverOfTime' },
- tier = 4,
+ tier = 3,
},
http = {
@@ -1131,7 +1134,7 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@amaanq', '@NTBBloodbath' },
- tier = 2,
+ tier = 3,
},
hurl = {
@@ -1145,11 +1148,11 @@ M.configs = {
hyprlang = {
install_info = {
- url = 'https://github.com/luckasRanarison/tree-sitter-hyprlang',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-hyprlang',
files = { 'src/parser.c' },
},
maintainers = { '@luckasRanarison' },
- tier = 3,
+ tier = 2,
},
idl = {
@@ -1176,7 +1179,7 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@theHamsta' },
- tier = 4,
+ tier = 3,
},
inko = {
@@ -1199,13 +1202,13 @@ M.configs = {
ispc = {
install_info = {
- url = 'https://github.com/fab4100/tree-sitter-ispc',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-ispc',
files = { 'src/parser.c' },
- generate_requires_npm = true,
+ generate_from_json = true,
},
maintainers = { '@fab4100' },
requires = { 'c' },
- tier = 3,
+ tier = 2,
},
janet_simple = {
@@ -1223,7 +1226,7 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@p00f' },
- tier = 3,
+ tier = 2,
},
javadoc = {
@@ -1273,7 +1276,7 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@ObserverOfTime' },
- tier = 2,
+ tier = 3,
},
jsdoc = {
@@ -1307,7 +1310,7 @@ M.configs = {
install_info = {
url = 'https://gitlab.com/WhyNotHugo/tree-sitter-jsonc.git',
files = { 'src/parser.c' },
- generate_requires_npm = true,
+ generate_from_json = true,
},
maintainers = { '@WhyNotHugo' },
requires = { 'json' },
@@ -1326,7 +1329,7 @@ M.configs = {
jsx = {
maintainers = { '@steelsojka' },
readme_note = 'queries required by javascript, tsx',
- tier = 2,
+ tier = 3,
},
julia = {
@@ -1358,7 +1361,7 @@ M.configs = {
kconfig = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-kconfig',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-kconfig',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
@@ -1367,7 +1370,7 @@ M.configs = {
kdl = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-kdl',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-kdl',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
@@ -1417,7 +1420,7 @@ M.configs = {
generate = true,
},
maintainers = { '@theHamsta', '@clason' },
- tier = 2,
+ tier = 3,
},
ledger = {
@@ -1449,7 +1452,7 @@ M.configs = {
linkerscript = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-linkerscript',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-linkerscript',
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
@@ -1476,7 +1479,7 @@ M.configs = {
lua = {
install_info = {
- url = 'https://github.com/MunifTanjim/tree-sitter-lua',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-lua',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@muniftanjim' },
@@ -1485,7 +1488,7 @@ M.configs = {
luadoc = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-luadoc',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-luadoc',
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
@@ -1494,7 +1497,7 @@ M.configs = {
luap = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-luap',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-luap',
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
@@ -1504,8 +1507,9 @@ M.configs = {
luau = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-luau',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-luau',
files = { 'src/parser.c', 'src/scanner.c' },
+ generate_from_json = true,
},
maintainers = { '@amaanq' },
requires = { 'lua' },
@@ -1527,12 +1531,12 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@lewis6991' },
- tier = 2,
+ tier = 3,
},
markdown = {
install_info = {
- url = 'https://github.com/MDeiml/tree-sitter-markdown',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-markdown',
location = 'tree-sitter-markdown',
files = { 'src/parser.c', 'src/scanner.c' },
},
@@ -1544,7 +1548,7 @@ M.configs = {
markdown_inline = {
install_info = {
- url = 'https://github.com/MDeiml/tree-sitter-markdown',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-markdown',
location = 'tree-sitter-markdown-inline',
files = { 'src/parser.c', 'src/scanner.c' },
},
@@ -1581,11 +1585,11 @@ M.configs = {
meson = {
install_info = {
- url = 'https://github.com/Decodetalkers/tree-sitter-meson',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-meson',
files = { 'src/parser.c' },
},
maintainers = { '@Decodetalkers' },
- tier = 3,
+ tier = 2,
},
mlir = {
@@ -1595,7 +1599,7 @@ M.configs = {
generate = true,
},
maintainers = { '@artagnon' },
- tier = 4,
+ tier = 3,
},
muttrc = {
@@ -1613,7 +1617,7 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@ObserverOfTime' },
- tier = 2,
+ tier = 3,
},
nginx = {
@@ -1672,8 +1676,9 @@ M.configs = {
nqc = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-nqc',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-nqc',
files = { 'src/parser.c' },
+ generate_from_json = true,
},
maintainers = { '@amaanq' },
tier = 2,
@@ -1690,8 +1695,9 @@ M.configs = {
objc = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-objc',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-objc',
files = { 'src/parser.c' },
+ generate_from_json = true,
},
maintainers = { '@amaanq' },
requires = { 'c' },
@@ -1714,7 +1720,7 @@ M.configs = {
location = 'grammars/ocaml',
},
maintainers = { '@undu' },
- tier = 3,
+ tier = 2,
},
ocaml_interface = {
@@ -1725,7 +1731,7 @@ M.configs = {
},
maintainers = { '@undu' },
requires = { 'ocaml' },
- tier = 3,
+ tier = 2,
},
ocamllex = {
@@ -1740,7 +1746,7 @@ M.configs = {
odin = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-odin',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-odin',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
@@ -1767,7 +1773,7 @@ M.configs = {
pem = {
install_info = {
- url = 'https://github.com/ObserverOfTime/tree-sitter-pem',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-pem',
files = { 'src/parser.c' },
},
maintainers = { '@ObserverOfTime' },
@@ -1779,6 +1785,7 @@ M.configs = {
url = 'https://github.com/tree-sitter-perl/tree-sitter-perl',
branch = 'release',
files = { 'src/parser.c', 'src/scanner.c' },
+ generate_from_json = true,
},
maintainers = { '@RabbiVeesh', '@LeoNerd' },
tier = 3,
@@ -1793,7 +1800,7 @@ M.configs = {
maintainers = { '@tk-shirasaka', '@calebdw' },
requires = { 'php_only' },
readme_note = 'PHP with embedded HTML',
- tier = 3,
+ tier = 2,
},
php_only = {
@@ -1804,17 +1811,17 @@ M.configs = {
},
maintainers = { '@tk-shirasaka', '@calebdw' },
readme_note = 'PHP without embedded HTML',
- tier = 3,
+ tier = 2,
},
phpdoc = {
install_info = {
url = 'https://github.com/claytonrcarter/tree-sitter-phpdoc',
files = { 'src/parser.c', 'src/scanner.c' },
- generate_requires_npm = true,
+ generate_from_json = true,
},
maintainers = { '@mikehaertl' },
- tier = 4,
+ tier = 3,
},
pioasm = {
@@ -1828,7 +1835,7 @@ M.configs = {
po = {
install_info = {
- url = 'https://github.com/erasin/tree-sitter-po',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-po',
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
@@ -1840,6 +1847,7 @@ M.configs = {
url = 'https://github.com/tree-sitter-perl/tree-sitter-pod',
files = { 'src/parser.c', 'src/scanner.c' },
branch = 'release',
+ generate_from_json = true,
},
maintainers = { '@RabbiVeesh', '@LeoNerd' },
tier = 3,
@@ -1847,17 +1855,17 @@ M.configs = {
poe_filter = {
install_info = {
- url = 'https://github.com/ObserverOfTime/tree-sitter-poe-filter',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-poe-filter',
files = { 'src/parser.c' },
},
maintainers = { '@ObserverOfTime' },
readme_note = 'Path of Exile item filter',
- tier = 4,
+ tier = 2,
},
pony = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-pony',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-pony',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq', '@mfelsche' },
@@ -1876,7 +1884,7 @@ M.configs = {
printf = {
install_info = {
- url = 'https://github.com/ObserverOfTime/tree-sitter-printf',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-printf',
files = { 'src/parser.c' },
},
maintainers = { '@ObserverOfTime' },
@@ -1915,7 +1923,7 @@ M.configs = {
properties = {
install_info = {
- url = 'https://github.com/ObserverOfTime/tree-sitter-properties',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-properties',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@ObserverOfTime' },
@@ -1938,7 +1946,7 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@MichaHoffmann' },
- tier = 4,
+ tier = 3,
},
prql = {
@@ -1947,12 +1955,12 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@matthias-Q' },
- tier = 2,
+ tier = 3,
},
psv = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-csv',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-csv',
files = { 'src/parser.c' },
location = 'psv',
},
@@ -1967,12 +1975,12 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@zealot128' },
- tier = 4,
+ tier = 3,
},
puppet = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-puppet',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-puppet',
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
@@ -1990,7 +1998,7 @@ M.configs = {
pymanifest = {
install_info = {
- url = 'https://github.com/ObserverOfTime/tree-sitter-pymanifest',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-pymanifest',
files = { 'src/parser.c' },
},
maintainers = { '@ObserverOfTime' },
@@ -2013,12 +2021,12 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@pwntester' },
- tier = 3,
+ tier = 2,
},
qmldir = {
install_info = {
- url = 'https://github.com/Decodetalkers/tree-sitter-qmldir',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-qmldir',
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
@@ -2029,6 +2037,7 @@ M.configs = {
install_info = {
url = 'https://github.com/yuja/tree-sitter-qmljs',
files = { 'src/parser.c', 'src/scanner.c' },
+ generate_from_json = true,
},
maintainers = { '@Decodetalkers' },
requires = { 'ecma' },
@@ -2037,7 +2046,7 @@ M.configs = {
query = {
install_info = {
- url = 'https://github.com/nvim-treesitter/tree-sitter-query',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-query',
files = { 'src/parser.c' },
},
maintainers = { '@steelsojka' },
@@ -2082,6 +2091,8 @@ M.configs = {
razor = {
install_info = {
+ generate_from_json = true,
+ revision = 'a47cd8ca148685629739a4ab69f58864800fbdab',
url = 'https://github.com/tris203/tree-sitter-razor',
files = { 'src/parser.c', 'src/scanner.c' },
},
@@ -2100,7 +2111,7 @@ M.configs = {
re2c = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-re2c',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-re2c',
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
@@ -2109,11 +2120,11 @@ M.configs = {
readline = {
install_info = {
- url = 'https://github.com/ribru17/tree-sitter-readline',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-readline',
files = { 'src/parser.c' },
},
maintainers = { '@ribru17' },
- tier = 3,
+ tier = 2,
},
regex = {
@@ -2122,7 +2133,7 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@theHamsta' },
- tier = 1,
+ tier = 2,
},
rego = {
@@ -2136,7 +2147,7 @@ M.configs = {
requirements = {
install_info = {
- url = 'https://github.com/ObserverOfTime/tree-sitter-requirements',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-requirements',
files = { 'src/parser.c' },
},
maintainers = { '@ObserverOfTime' },
@@ -2191,7 +2202,7 @@ M.configs = {
ron = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-ron',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-ron',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
@@ -2204,7 +2215,7 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@stsewd' },
- tier = 2,
+ tier = 3,
},
ruby = {
@@ -2213,7 +2224,7 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@TravonteD' },
- tier = 3,
+ tier = 2,
},
runescript = {
@@ -2240,7 +2251,7 @@ M.configs = {
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@stevanmilic' },
- tier = 3,
+ tier = 2,
},
scfg = {
@@ -2283,13 +2294,13 @@ M.configs = {
},
slang = {
install_info = {
- url = 'https://github.com/theHamsta/tree-sitter-slang',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-slang',
files = { 'src/parser.c', 'src/scanner.c' },
- generate_requires_npm = true,
+ generate_from_json = true,
},
readme_note = 'Shader Slang',
maintainers = { '@theHamsta' },
- tier = 4,
+ tier = 2,
},
slim = {
@@ -2323,9 +2334,10 @@ M.configs = {
install_info = {
url = 'https://github.com/osthomas/tree-sitter-snakemake',
files = { 'src/parser.c', 'src/scanner.c' },
+ generate_from_json = true,
},
- maintainer = { '@osthomas' },
- tier = 4,
+ maintainers = { '@osthomas' },
+ tier = 3,
},
smithy = {
@@ -2334,7 +2346,7 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@amaanq', '@keynmol' },
- tier = 2,
+ tier = 3,
},
solidity = {
@@ -2343,7 +2355,7 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
- tier = 2,
+ tier = 3,
},
soql = {
@@ -2379,6 +2391,7 @@ M.configs = {
install_info = {
url = 'https://github.com/GordianDziwis/tree-sitter-sparql',
files = { 'src/parser.c' },
+ generate_from_json = true,
},
maintainers = { '@GordianDziwis' },
tier = 3,
@@ -2389,6 +2402,7 @@ M.configs = {
url = 'https://github.com/derekstride/tree-sitter-sql',
files = { 'src/parser.c', 'src/scanner.c' },
branch = 'gh-pages',
+ generate_from_json = true,
},
maintainers = { '@derekstride' },
tier = 3,
@@ -2396,7 +2410,7 @@ M.configs = {
squirrel = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-squirrel',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-squirrel',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
@@ -2405,7 +2419,7 @@ M.configs = {
ssh_config = {
install_info = {
- url = 'https://github.com/ObserverOfTime/tree-sitter-ssh-config',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-ssh-config',
files = { 'src/parser.c' },
},
maintainers = { '@ObserverOfTime' },
@@ -2414,8 +2428,9 @@ M.configs = {
starlark = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-starlark',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-starlark',
files = { 'src/parser.c', 'src/scanner.c' },
+ generate_from_json = true,
},
maintainers = { '@amaanq' },
tier = 2,
@@ -2427,13 +2442,14 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@amaanq' },
- tier = 2,
+ tier = 3,
},
styled = {
install_info = {
url = 'https://github.com/mskelton/tree-sitter-styled',
files = { 'src/parser.c', 'src/scanner.c' },
+ generate_from_json = true,
},
maintainers = { '@mskelton' },
tier = 3,
@@ -2471,6 +2487,7 @@ M.configs = {
install_info = {
url = 'https://github.com/tree-sitter-grammars/tree-sitter-svelte',
files = { 'src/parser.c', 'src/scanner.c' },
+ generate_from_json = true,
},
maintainers = { '@amaanq' },
requires = { 'html_tags' },
@@ -2525,7 +2542,7 @@ M.configs = {
tablegen = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-tablegen',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-tablegen',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
@@ -2555,6 +2572,7 @@ M.configs = {
install_info = {
url = 'https://github.com/vrischmann/tree-sitter-templ',
files = { 'src/parser.c', 'src/scanner.c' },
+ generate_from_json = true,
},
maintainers = { '@vrischmann' },
tier = 3,
@@ -2600,7 +2618,7 @@ M.configs = {
thrift = {
install_info = {
- url = 'https://github.com/duskmoon314/tree-sitter-thrift',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-thrift',
files = { 'src/parser.c' },
},
maintainers = { '@amaanq', '@duskmoon314' },
@@ -2640,22 +2658,22 @@ M.configs = {
files = { 'src/parser.c' },
},
maintainers = { '@arnarg' },
- tier = 4,
+ tier = 3,
},
toml = {
install_info = {
url = 'https://github.com/tree-sitter-grammars/tree-sitter-toml',
files = { 'src/parser.c', 'src/scanner.c' },
- generate_requires_npm = true,
+ generate_from_json = true,
},
maintainers = { '@tk-shirasaka' },
- tier = 3,
+ tier = 2,
},
tsv = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-csv',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-csv',
files = { 'src/parser.c' },
location = 'tsv',
},
@@ -2668,7 +2686,7 @@ M.configs = {
url = 'https://github.com/tree-sitter/tree-sitter-typescript',
files = { 'src/parser.c', 'src/scanner.c' },
location = 'tsx',
- generate_requires_npm = true,
+ generate_from_json = true,
},
maintainers = { '@steelsojka' },
requires = { 'ecma', 'jsx', 'typescript' },
@@ -2698,7 +2716,7 @@ M.configs = {
url = 'https://github.com/tree-sitter/tree-sitter-typescript',
files = { 'src/parser.c', 'src/scanner.c' },
location = 'typescript',
- generate_requires_npm = true,
+ generate_from_json = true,
},
maintainers = { '@steelsojka' },
requires = { 'ecma' },
@@ -2734,7 +2752,7 @@ M.configs = {
udev = {
install_info = {
- url = 'https://github.com/ObserverOfTime/tree-sitter-udev',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-udev',
files = { 'src/parser.c' },
},
maintainers = { '@ObserverOfTime' },
@@ -2743,11 +2761,11 @@ M.configs = {
ungrammar = {
install_info = {
- url = 'https://github.com/Philipp-M/tree-sitter-ungrammar',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-ungrammar',
files = { 'src/parser.c' },
},
maintainers = { '@Philipp-M', '@amaanq' },
- tier = 3,
+ tier = 2,
},
unison = {
@@ -2757,7 +2775,7 @@ M.configs = {
generate = true,
},
maintainers = { '@tapegram' },
- tier = 4,
+ tier = 3,
},
usd = {
@@ -2771,7 +2789,7 @@ M.configs = {
uxntal = {
install_info = {
- url = 'https://github.com/amaanq/tree-sitter-uxntal',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-uxntal',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@amaanq' },
@@ -2835,7 +2853,7 @@ M.configs = {
vim = {
install_info = {
- url = 'https://github.com/neovim/tree-sitter-vim',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-vim',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@clason' },
@@ -2865,6 +2883,7 @@ M.configs = {
url = 'https://github.com/tree-sitter-grammars/tree-sitter-vue',
files = { 'src/parser.c', 'src/scanner.c' },
branch = 'main',
+ generate_from_json = true,
},
maintainers = { '@WhyNotHugo', '@lucario387' },
requires = { 'html_tags' },
@@ -2891,9 +2910,9 @@ M.configs = {
wgsl_bevy = {
install_info = {
- url = 'https://github.com/theHamsta/tree-sitter-wgsl-bevy',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-wgsl-bevy',
files = { 'src/parser.c', 'src/scanner.c' },
- generate_requires_npm = true,
+ generate_from_json = true,
},
maintainers = { '@theHamsta' },
tier = 2,
@@ -2907,9 +2926,10 @@ M.configs = {
maintainers = { '@liamwh' },
tier = 3,
},
+
xcompose = {
install_info = {
- url = 'https://github.com/ObserverOfTime/tree-sitter-xcompose',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-xcompose',
files = { 'src/parser.c' },
},
maintainers = { '@ObserverOfTime' },
@@ -2957,11 +2977,11 @@ M.configs = {
yuck = {
install_info = {
- url = 'https://github.com/Philipp-M/tree-sitter-yuck',
+ url = 'https://github.com/tree-sitter-grammars/tree-sitter-yuck',
files = { 'src/parser.c', 'src/scanner.c' },
},
maintainers = { '@Philipp-M', '@amaanq' },
- tier = 3,
+ tier = 2,
},
zathurarc = {
@@ -3019,12 +3039,11 @@ function M.get_available(tier)
parsers
)
end
- if vim.fn.executable('tree-sitter') == 0 or vim.fn.executable('node') == 0 then
+ if vim.fn.executable('tree-sitter') == 0 then
parsers = vim.tbl_filter(
--- @param p string
function(p)
- return M.configs[p].install_info ~= nil
- and not M.configs[p].install_info.requires_generate_from_grammar
+ return M.configs[p].install_info ~= nil and not M.configs[p].install_info.generate
end,
parsers
)
diff --git a/plugin/nvim-treesitter.lua b/plugin/nvim-treesitter.lua
index 751e8aad1..32f3db311 100644
--- a/plugin/nvim-treesitter.lua
+++ b/plugin/nvim-treesitter.lua
@@ -38,7 +38,7 @@ end, {
api.nvim_create_user_command('TSInstallFromGrammar', function(args)
require('nvim-treesitter.install').install(args.fargs, {
- generate_from_grammar = true,
+ generate = true,
force = args.bang,
})
end, {
diff --git a/scripts/install-parsers.lua b/scripts/install-parsers.lua
index ab06e538f..c607e51f4 100755
--- a/scripts/install-parsers.lua
+++ b/scripts/install-parsers.lua
@@ -1,14 +1,28 @@
#!/usr/bin/env -S nvim -l
+local generate = false
+local parsers = {}
+for i = 1, #_G.arg do
+ if _G.arg[i] == '--generate' then
+ generate = true
+ else
+ parsers[#parsers + 1] = _G.arg[i]
+ end
+end
+
vim.opt.runtimepath:append('.')
-- needed on CI
vim.fn.mkdir(vim.fn.stdpath('cache'), 'p')
local done = false
-require('nvim-treesitter.install').install('all', {}, function()
- done = true
-end)
+require('nvim-treesitter.install').install(
+ #parsers > 0 and parsers or 'all',
+ { force = true, generate = generate },
+ function()
+ done = true
+ end
+)
vim.wait(6000000, function()
return done
diff --git a/scripts/update-readme.lua b/scripts/update-readme.lua
index fb9a9b32c..f8346bf4d 100755
--- a/scripts/update-readme.lua
+++ b/scripts/update-readme.lua
@@ -15,8 +15,8 @@ table.sort(sorted_parsers, function(a, b)
end)
local generated_text = [[
-Language | Tier | Queries | CLI | NPM | Maintainer
--------- |:----:|:-------:|:---:|:---:| ----------
+Language | Tier | Queries | CLI | Maintainer
+-------- |:----:|:-------:|:---:| ----------
]]
local footnotes = ''
@@ -59,12 +59,7 @@ for _, v in ipairs(sorted_parsers) do
-- CLI
generated_text = generated_text
- .. (p.install_info and p.install_info.requires_generate_from_grammar and '✓' or '')
- .. ' | '
-
- -- NPM
- generated_text = generated_text
- .. (p.install_info and p.install_info.generate_requires_npm and '✓' or '')
+ .. (p.install_info and p.install_info.generate and '✓' or '')
.. ' | '
-- Maintainer