From 0ce8619a25d3e1c0b76dddf51d8acd795e79bb0f Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 10 Jun 2023 17:12:35 +0200 Subject: [PATCH] feat: add parser tiers Tier 1: Stable Tier 2: Core (maintained by org members) Tier 3: Community (maintained by external contributors, to varying degree) Tier 4: Unsupported (lacking active maintainer or declared experimental); skipped in lockfile update and ignored for automatic install by default --- README.md | 4 +- SUPPORTED_LANGUAGES.md | 423 ++++++++++++++++---------------- TODO.md | 4 +- lua/nvim-treesitter/config.lua | 2 +- lua/nvim-treesitter/install.lua | 7 +- lua/nvim-treesitter/parsers.lua | 184 ++++++++++++-- plugin/filetypes.lua | 1 + scripts/update-lockfile.lua | 7 +- 8 files changed, 390 insertions(+), 242 deletions(-) diff --git a/README.md b/README.md index 83e8650e1..15a2300bb 100644 --- a/README.md +++ b/README.md @@ -53,11 +53,11 @@ require('lazy').setup( ```lua require'nvim-treesitter'.setup { - -- A list of parser names or tiers ('core', 'stable', 'community', 'unstable') + -- A list of parser names or tiers ('stable', 'core', 'community', 'unsupported') ensure_install = { }, -- List of parsers to ignore installing - ignore_install = { }, + ignore_install = { 'unsupported' }, -- Automatically install missing parsers when entering buffer auto_install = false, diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md index 6464873fe..2e8b960fb 100644 --- a/SUPPORTED_LANGUAGES.md +++ b/SUPPORTED_LANGUAGES.md @@ -3,7 +3,7 @@ The following is a list of languages for which a parser can be installed through `:TSInstall`. Legend: -- **Tier:** _core_, _stable_, _community_, or _unstable_ +- **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 @@ -12,228 +12,227 @@ Legend: Language | Tier | Queries | CLI | NPM | Maintainer -------- |:----:|:-------:|:---:|:---:| ---------- -[ada](https://github.com/briot/tree-sitter-ada) | | `HF  L` | | | @briot -[agda](https://github.com/AusCyberman/tree-sitter-agda) | | `HF   ` | | | @Decodetalkers -[arduino](https://github.com/ObserverOfTime/tree-sitter-arduino) | | `HFIJL` | | | @ObserverOfTime -[astro](https://github.com/virchau13/tree-sitter-astro) | | `HFIJL` | | | @virchau13 -[awk](https://github.com/Beaglefoot/tree-sitter-awk) | | `H  J ` | | | -[bash](https://github.com/tree-sitter/tree-sitter-bash) | | `HF JL` | | | @TravonteD -[bass](https://github.com/amaanq/tree-sitter-bass) | | `HFIJL` | | | @amaanq -[beancount](https://github.com/polarmutex/tree-sitter-beancount) | | `HF   ` | | | @polarmutex -[bibtex](https://github.com/latex-lsp/tree-sitter-bibtex) | community | `HFI  ` | | | @theHamsta, @clason -[bicep](https://github.com/amaanq/tree-sitter-bicep) | | `HFIJL` | | | @amaanq -[bitbake](https://github.com/amaanq/tree-sitter-bitbake) | stable | `HFIJL` | | | @amaanq -[blueprint](https://gitlab.com/gabmus/tree-sitter-blueprint.git) | unstable | `H    ` | | | @gabmus -[c](https://github.com/tree-sitter/tree-sitter-c) | core | `HFIJL` | | | @amaanq -[c_sharp](https://github.com/tree-sitter/tree-sitter-c-sharp) | | `HF JL` | | | @Luxed -[cairo](https://github.com/amaanq/tree-sitter-cairo) | stable | `HFIJL` | | | @amaanq -[capnp](https://github.com/amaanq/tree-sitter-capnp) | | `HFIJL` | | | @amaanq -[chatito](https://github.com/ObserverOfTime/tree-sitter-chatito) | | `HFIJL` | | | @ObserverOfTime -[clojure](https://github.com/sogaiu/tree-sitter-clojure) | | `HF JL` | | | @sogaiu -[cmake](https://github.com/uyha/tree-sitter-cmake) | | `HFI  ` | | | @uyha -[comment](https://github.com/stsewd/tree-sitter-comment) | stable | `H    ` | | | @stsewd -[commonlisp](https://github.com/theHamsta/tree-sitter-commonlisp) | | `HF  L` | | ✓ | @theHamsta -[cooklang](https://github.com/addcninblue/tree-sitter-cooklang) | | `H    ` | | | @addcninblue +[ada](https://github.com/briot/tree-sitter-ada) | community | `HF  L` | | | @briot +[agda](https://github.com/AusCyberman/tree-sitter-agda) | community | `HF   ` | | | @Decodetalkers +[arduino](https://github.com/ObserverOfTime/tree-sitter-arduino) | core | `HFIJL` | | | @ObserverOfTime +[astro](https://github.com/virchau13/tree-sitter-astro) | community | `HFIJL` | | | @virchau13 +[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/amaanq/tree-sitter-bass) | core | `HFIJL` | | | @amaanq +[beancount](https://github.com/polarmutex/tree-sitter-beancount) | community | `HF   ` | | | @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` | | | @sogaiu +[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) | | `HFIJL` | | | @amaanq -[cpp](https://github.com/tree-sitter/tree-sitter-cpp) | | `HFIJL` | | ✓ | @theHamsta -[css](https://github.com/tree-sitter/tree-sitter-css) | | `HFIJ ` | | | @TravonteD -[csv](https://github.com/amaanq/tree-sitter-csv) | stable | `H    ` | | | @amaanq -[cuda](https://github.com/theHamsta/tree-sitter-cuda) | | `HFIJL` | | ✓ | @theHamsta -[cue](https://github.com/eonpatapon/tree-sitter-cue) | | `HFIJL` | | | @amaanq -[d](https://github.com/CyberShadow/tree-sitter-d) | unstable | `HFIJ ` | ✓ | | @nawordar -[dart](https://github.com/UserNobody14/tree-sitter-dart) | | `HFIJL` | | | @akinsho -[devicetree](https://github.com/joelspadin/tree-sitter-devicetree) | | `HFIJL` | | | @jedrzejboczar -[dhall](https://github.com/jbellerb/tree-sitter-dhall) | | `HF J ` | | | @amaanq -[diff](https://github.com/the-mikedavis/tree-sitter-diff) | | `H    ` | | | @gbprod -[dockerfile](https://github.com/camdencheek/tree-sitter-dockerfile) | | `H  J ` | | | @camdencheek -[dot](https://github.com/rydesun/tree-sitter-dot) | | `H  J ` | | | @rydesun -[doxygen](https://github.com/amaanq/tree-sitter-doxygen) | stable | `H IJ ` | | | @amaanq -[dtd](https://github.com/ObserverOfTime/tree-sitter-xml) | stable | `HF J ` | | | @ObserverOfTime -[ebnf](https://github.com/RubixDev/ebnf) | unstable | `H    ` | | | @RubixDev -ecma (queries only)[^ecma] | | `HFIJL` | | | @steelsojka -[eex](https://github.com/connorlay/tree-sitter-eex) | | `H  J ` | | | @connorlay -[elixir](https://github.com/elixir-lang/tree-sitter-elixir) | | `HFIJL` | | | @connorlay -[elm](https://github.com/elm-tooling/tree-sitter-elm) | | `H  J ` | | | @zweimach -[elsa](https://github.com/glapa-grossklag/tree-sitter-elsa) | | `HFIJL` | | | @glapa-grossklag, @amaanq -[elvish](https://github.com/elves/tree-sitter-elvish) | | `H  J ` | | | @elves -[embedded_template](https://github.com/tree-sitter/tree-sitter-embedded-template) | unstable | `H  J ` | | | -[erlang](https://github.com/WhatsApp/tree-sitter-erlang) | | `HF   ` | | | @filmor -[fennel](https://github.com/travonted/tree-sitter-fennel) | | `HF JL` | | | @TravonteD -[firrtl](https://github.com/amaanq/tree-sitter-firrtl) | | `HFIJL` | | | @amaanq -[fish](https://github.com/ram02z/tree-sitter-fish) | | `HFIJL` | | | @ram02z -[foam](https://github.com/FoamScience/tree-sitter-foam) | unstable | `HFIJL` | | | @FoamScience -[forth](https://github.com/AlexanderBrevig/tree-sitter-forth) | stable | `HFIJL` | | | @amaanq -[fortran](https://github.com/stadelmanma/tree-sitter-fortran) | | `HFI  ` | | | @amaanq -[fsh](https://github.com/mgramigna/tree-sitter-fsh) | | `H    ` | | | @mgramigna -[func](https://github.com/amaanq/tree-sitter-func) | | `H    ` | | | @amaanq -[fusion](https://gitlab.com/jirgn/tree-sitter-fusion.git) | | `HFI L` | | | @jirgn -[gdscript](https://github.com/PrestonKnopp/tree-sitter-gdscript)[^gdscript] | | `HFIJL` | | | @PrestonKnopp -[git_config](https://github.com/the-mikedavis/tree-sitter-git-config)[^git_config] | | `HF   ` | | | @amaanq -[git_rebase](https://github.com/the-mikedavis/tree-sitter-git-rebase) | | `H  J ` | | | @gbprod -[gitattributes](https://github.com/ObserverOfTime/tree-sitter-gitattributes) | | `H  J ` | | | @ObserverOfTime -[gitcommit](https://github.com/gbprod/tree-sitter-gitcommit) | | `H  J ` | | | @gbprod -[gitignore](https://github.com/shunsambongi/tree-sitter-gitignore) | | `H    ` | | | @theHamsta -[gleam](https://github.com/gleam-lang/tree-sitter-gleam) | | `HFIJL` | | | @amaanq -[glimmer](https://github.com/alexlafroscia/tree-sitter-glimmer)[^glimmer] | | `HFI L` | | | @NullVoxPopuli -[glsl](https://github.com/theHamsta/tree-sitter-glsl) | | `HFIJL` | | ✓ | @theHamsta -[go](https://github.com/tree-sitter/tree-sitter-go) | | `HFIJL` | | | @theHamsta, @WinWisely268 -[godot_resource](https://github.com/PrestonKnopp/tree-sitter-godot-resource)[^godot_resource] | | `HF  L` | | | @pierpo -[gomod](https://github.com/camdencheek/tree-sitter-go-mod) | | `H  J ` | | | @camdencheek -[gosum](https://github.com/amaanq/tree-sitter-go-sum) | | `H    ` | | | @amaanq -[gowork](https://github.com/omertuc/tree-sitter-go-work) | | `H  J ` | | | @omertuc -[gpg](https://github.com/ObserverOfTime/tree-sitter-gpg-config) | stable | `H  J ` | | | @ObserverOfTime -[graphql](https://github.com/bkegley/tree-sitter-graphql) | | `H IJ ` | | | @bkegley +[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/CyberShadow/tree-sitter-d) | unsupported | `HFIJ ` | ✓ | | @nawordar +[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 +[dockerfile](https://github.com/camdencheek/tree-sitter-dockerfile) | community | `H  J ` | | | @camdencheek +[dot](https://github.com/rydesun/tree-sitter-dot) | community | `H  J ` | | | @rydesun +[doxygen](https://github.com/amaanq/tree-sitter-doxygen) | core | `H IJ ` | | | @amaanq +[dtd](https://github.com/ObserverOfTime/tree-sitter-xml) | core | `HF J ` | | | @ObserverOfTime +[ebnf](https://github.com/RubixDev/ebnf) | unsupported | `H    ` | | | @RubixDev +ecma (queries only)[^ecma] | core | `HFIJL` | | | @steelsojka +[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 +[fennel](https://github.com/travonted/tree-sitter-fennel) | community | `HF JL` | | | @TravonteD +[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 +[git_config](https://github.com/the-mikedavis/tree-sitter-git-config) | core | `HF   ` | | | @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  J ` | | | @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 +[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  L` | | | @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 +[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/Decodetalkers/tree-sitter-groovy) | community | `H  J ` | | | @Decodetalkers -[hack](https://github.com/slackhq/tree-sitter-hack) | unstable | `H    ` | | | -[hare](https://github.com/amaanq/tree-sitter-hare) | | `HFIJL` | | | @amaanq -[haskell](https://github.com/tree-sitter/tree-sitter-haskell) | unstable | `HF J ` | | | -[haskell_persistent](https://github.com/MercuryTechnologies/tree-sitter-haskell-persistent) | | `HF   ` | | | @lykahb -[hcl](https://github.com/MichaHoffmann/tree-sitter-hcl) | | `HFIJ ` | | | @MichaHoffmann -[heex](https://github.com/connorlay/tree-sitter-heex) | | `HFIJL` | | | @connorlay -[hjson](https://github.com/winston0410/tree-sitter-hjson) | | `HFIJL` | | ✓ | @winston0410 -[hlsl](https://github.com/theHamsta/tree-sitter-hlsl) | | `HFIJL` | | ✓ | @theHamsta -[hocon](https://github.com/antosha417/tree-sitter-hocon) | | `H  J ` | | ✓ | @antosha417 -[hoon](https://github.com/urbit-pilled/tree-sitter-hoon) | unstable | `HF  L` | | | @urbit-pilled -[html](https://github.com/tree-sitter/tree-sitter-html) | | `HFIJL` | | | @TravonteD -html_tags (queries only)[^html_tags] | | `H IJ ` | | | @TravonteD -[htmldjango](https://github.com/interdependence/tree-sitter-htmldjango) | unstable | `HFIJ ` | | | @ObserverOfTime -[http](https://github.com/rest-nvim/tree-sitter-http) | | `H  J ` | | ✓ | @amaanq +[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) | unsupported | `HF J ` | | | +[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 +[hjson](https://github.com/winston0410/tree-sitter-hjson) | community | `HFIJL` | | ✓ | @winston0410 +[hlsl](https://github.com/theHamsta/tree-sitter-hlsl) | core | `HFIJL` | | ✓ | @theHamsta +[hocon](https://github.com/antosha417/tree-sitter-hocon) | unsupported | `H  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 [hurl](https://github.com/pfeiferj/tree-sitter-hurl) | community | `HFIJ ` | | | @pfeiferj -[ini](https://github.com/justinmk/tree-sitter-ini) | unstable | `HF   ` | | | @theHamsta -[ispc](https://github.com/fab4100/tree-sitter-ispc) | | `HFIJL` | | ✓ | @fab4100 -[janet_simple](https://github.com/sogaiu/tree-sitter-janet-simple) | | `HF JL` | | | @sogaiu -[java](https://github.com/tree-sitter/tree-sitter-java) | | `HFIJL` | | | @p00f -[javascript](https://github.com/tree-sitter/tree-sitter-javascript) | | `HFIJL` | | | @steelsojka -[jq](https://github.com/flurie/tree-sitter-jq) | | `H  J ` | | | @ObserverOfTime -[jsdoc](https://github.com/tree-sitter/tree-sitter-jsdoc) | | `H    ` | | | @steelsojka -[json](https://github.com/tree-sitter/tree-sitter-json) | | `HFI L` | | | @steelsojka -[json5](https://github.com/Joakker/tree-sitter-json5) | | `H  J ` | | | @Joakker -[jsonc](https://gitlab.com/WhyNotHugo/tree-sitter-jsonc.git) | | `HFIJL` | | ✓ | @WhyNotHugo -[jsonnet](https://github.com/sourcegraph/tree-sitter-jsonnet) | | `HF  L` | | | @nawordar -jsx (queries only)[^jsx] | | `HFIJ ` | | | @steelsojka -[julia](https://github.com/tree-sitter/tree-sitter-julia) | community | `HFIJL` | | | @theHamsta -[kconfig](https://github.com/amaanq/tree-sitter-kconfig) | stable | `HFIJL` | | | @amaanq -[kdl](https://github.com/amaanq/tree-sitter-kdl) | | `HFIJL` | | | @amaanq -[kotlin](https://github.com/fwcd/tree-sitter-kotlin) | | `HF JL` | | | @SalBakraa -[lalrpop](https://github.com/traxys/tree-sitter-lalrpop) | | `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) | | `HFIJ ` | | | @cbarrete -[llvm](https://github.com/benwilliamgraham/tree-sitter-llvm) | | `H    ` | | | @benwilliamgraham -[lua](https://github.com/MunifTanjim/tree-sitter-lua) | core | `HFIJL` | | | @muniftanjim -[luadoc](https://github.com/amaanq/tree-sitter-luadoc) | | `H    ` | | | @amaanq -[luap](https://github.com/amaanq/tree-sitter-luap)[^luap] | | `H    ` | | | @amaanq -[luau](https://github.com/amaanq/tree-sitter-luau) | | `HFIJL` | | | @amaanq -[m68k](https://github.com/grahambates/tree-sitter-m68k) | | `HF JL` | | | @grahambates -[make](https://github.com/alemuller/tree-sitter-make) | | `HF J ` | | | @lewis6991 -[markdown](https://github.com/MDeiml/tree-sitter-markdown)[^markdown] | core | `HFIJ ` | | | @MDeiml -[markdown_inline](https://github.com/MDeiml/tree-sitter-markdown)[^markdown_inline] | core | `H  J ` | | | @MDeiml -[matlab](https://github.com/acristoffers/tree-sitter-matlab) | | `HFIJL` | | | @acristoffers -[menhir](https://github.com/Kerl13/tree-sitter-menhir) | | `H  J ` | | | @Kerl13 -[mermaid](https://github.com/monaqa/tree-sitter-mermaid) | unstable | `H    ` | | | -[meson](https://github.com/Decodetalkers/tree-sitter-meson) | | `HF J ` | | | @Decodetalkers -[mlir](https://github.com/artagnon/tree-sitter-mlir) | unstable | `H   L` | ✓ | | @artagnon -[nickel](https://github.com/nickel-lang/tree-sitter-nickel) | unstable | `H I  ` | | | -[ninja](https://github.com/alemuller/tree-sitter-ninja) | | `HFI  ` | | | @alemuller -[nix](https://github.com/cstrahan/tree-sitter-nix) | | `HF JL` | | | @leo60228 -[nqc](https://github.com/amaanq/tree-sitter-nqc) | stable | `HFIJL` | | | @amaanq -[objc](https://github.com/amaanq/tree-sitter-objc) | | `HFIJL` | | | @amaanq -[ocaml](https://github.com/tree-sitter/tree-sitter-ocaml) | | `HFIJL` | | | @undu -[ocaml_interface](https://github.com/tree-sitter/tree-sitter-ocaml) | | `HFIJL` | | | @undu -[ocamllex](https://github.com/atom-ocaml/tree-sitter-ocamllex) | | `H  J ` | ✓ | | @undu -[odin](https://github.com/amaanq/tree-sitter-odin) | | `HFIJL` | | | @amaanq -[org](https://github.com/milisims/tree-sitter-org) | unstable | `     ` | | | -[pascal](https://github.com/Isopod/tree-sitter-pascal.git) | | `HFIJL` | | | @Isopod -[passwd](https://github.com/ath3/tree-sitter-passwd) | | `H    ` | | | @amaanq -[pem](https://github.com/ObserverOfTime/tree-sitter-pem) | stable | `HF J ` | | | @ObserverOfTime -[perl](https://github.com/ganezdragon/tree-sitter-perl) | | `HF J ` | | | @lcrownover -[php](https://github.com/tree-sitter/tree-sitter-php) | | `HFIJL` | | | @tk-shirasaka -[phpdoc](https://github.com/claytonrcarter/tree-sitter-phpdoc) | unstable | `H    ` | | ✓ | @mikehaertl -[pioasm](https://github.com/leo60228/tree-sitter-pioasm) | | `H  J ` | | | @leo60228 -[po](https://github.com/erasin/tree-sitter-po) | | `HF J ` | | | @amaanq -[poe_filter](https://github.com/ObserverOfTime/tree-sitter-poe-filter)[^poe_filter] | unstable | `HFIJ ` | | | @ObserverOfTime -[pony](https://github.com/amaanq/tree-sitter-pony) | | `HFIJL` | | | @amaanq, @mfelsche -[prisma](https://github.com/victorhqc/tree-sitter-prisma) | | `H    ` | | | @elianiva -[promql](https://github.com/MichaHoffmann/tree-sitter-promql) | unstable | `H  J ` | | | @MichaHoffmann -[proto](https://github.com/treywood/tree-sitter-proto) | | `HF   ` | | | @treywood -[prql](https://github.com/PRQL/tree-sitter-prql) | | `H  J ` | | | @matthias-Q -[psv](https://github.com/amaanq/tree-sitter-csv) | stable | `H    ` | | | @amaanq -[pug](https://github.com/zealot128/tree-sitter-pug) | unstable | `H  J ` | | | @zealot128 -[puppet](https://github.com/amaanq/tree-sitter-puppet) | | `HFIJL` | | | @amaanq -[pymanifest](https://github.com/ObserverOfTime/tree-sitter-pymanifest) | stable | `H  J ` | | | @ObserverOfTime -[python](https://github.com/tree-sitter/tree-sitter-python) | | `HFIJL` | | | @stsewd, @theHamsta -[ql](https://github.com/tree-sitter/tree-sitter-ql) | | `HFIJL` | | | @pwntester -[qmldir](https://github.com/Decodetalkers/tree-sitter-qmldir) | | `H  J ` | | | @amaanq -[qmljs](https://github.com/yuja/tree-sitter-qmljs) | | `HF   ` | | | @Decodetalkers -[query](https://github.com/nvim-treesitter/tree-sitter-query)[^query] | core | `HFIJL` | | | @steelsojka -[r](https://github.com/r-lib/tree-sitter-r) | | `H IJL` | | | @echasnovski -[racket](https://github.com/6cdh/tree-sitter-racket) | unstable | `HF J ` | | | -[rasi](https://github.com/Fymyte/tree-sitter-rasi) | | `HFI L` | | | @Fymyte -[re2c](https://github.com/amaanq/tree-sitter-re2c) | stable | `HFIJL` | | | @amaanq -[regex](https://github.com/tree-sitter/tree-sitter-regex) | | `H    ` | | | @theHamsta -[rego](https://github.com/FallenAngel97/tree-sitter-rego) | | `H  J ` | | | @FallenAngel97 -[requirements](https://github.com/ObserverOfTime/tree-sitter-requirements) | stable | `H  J ` | | | @ObserverOfTime -[rnoweb](https://github.com/bamonroe/tree-sitter-rnoweb) | | `HF J ` | | | @bamonroe +[ini](https://github.com/justinmk/tree-sitter-ini) | unsupported | `HF   ` | | | @theHamsta +[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  J ` | | | @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 +[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 +[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 +[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 | `HF J ` | | | @Decodetalkers +[mlir](https://github.com/artagnon/tree-sitter-mlir) | unsupported | `H   L` | ✓ | | @artagnon +[nickel](https://github.com/nickel-lang/tree-sitter-nickel) | unsupported | `H I  ` | | | +[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 +[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/ganezdragon/tree-sitter-perl) | unsupported | `HF J ` | | | +[php](https://github.com/tree-sitter/tree-sitter-php) | 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 +[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 +[prisma](https://github.com/victorhqc/tree-sitter-prisma) | community | `H    ` | | | @elianiva +[promql](https://github.com/MichaHoffmann/tree-sitter-promql) | unsupported | `H  J ` | | | @MichaHoffmann +[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 +[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   ` | | | @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 | `HFI L` | | | @Fymyte +[re2c](https://github.com/amaanq/tree-sitter-re2c) | core | `HFIJL` | | | @amaanq +[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 -[ron](https://github.com/amaanq/tree-sitter-ron) | | `HFIJL` | | | @amaanq -[rst](https://github.com/stsewd/tree-sitter-rst) | | `H  JL` | | | @stsewd -[ruby](https://github.com/tree-sitter/tree-sitter-ruby) | | `HFIJL` | | | @TravonteD -[rust](https://github.com/tree-sitter/tree-sitter-rust) | | `HFIJL` | | | @amaanq -[scala](https://github.com/tree-sitter/tree-sitter-scala) | | `HF JL` | | | @stevanmilic +[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) | unstable | `HF J ` | | | +[scheme](https://github.com/6cdh/tree-sitter-scheme) | unsupported | `HF J ` | | | [scss](https://github.com/serenadeai/tree-sitter-scss) | community | `HFI  ` | | | @elianiva -[slint](https://github.com/jrmoulton/tree-sitter-slint) | unstable | `H I  ` | | | @jrmoulton -[smali](https://git.sr.ht/~yotam/tree-sitter-smali) | | `HFIJL` | | | @amaanq -[smithy](https://github.com/indoorvivants/tree-sitter-smithy) | | `H    ` | | | @amaanq, @keynmol -[solidity](https://github.com/JoranHonig/tree-sitter-solidity) | | `H    ` | | | @amaanq -[sparql](https://github.com/BonaBeavis/tree-sitter-sparql) | | `HFIJL` | | | @BonaBeavis -[sql](https://github.com/derekstride/tree-sitter-sql) | | `H IJ ` | | | @derekstride -[squirrel](https://github.com/amaanq/tree-sitter-squirrel) | | `HFIJL` | | | @amaanq -[starlark](https://github.com/amaanq/tree-sitter-starlark) | | `HFIJL` | | | @amaanq -[strace](https://github.com/sigmaSd/tree-sitter-strace) | stable | `H  J ` | | | @amaanq -[supercollider](https://github.com/madskjeldgaard/tree-sitter-supercollider) | | `HFIJL` | | | @madskjeldgaard -[surface](https://github.com/connorlay/tree-sitter-surface) | | `HFIJ ` | | | @connorlay -[svelte](https://github.com/Himujjal/tree-sitter-svelte) | | `HFIJ ` | | | @elianiva -[swift](https://github.com/alex-pinkus/tree-sitter-swift) | | `H I L` | ✓ | | @alex-pinkus -[sxhkdrc](https://github.com/RaafatTurki/tree-sitter-sxhkdrc) | | `HF J ` | | | @RaafatTurki +[slint](https://github.com/jrmoulton/tree-sitter-slint) | unsupported | `H I  ` | | | @jrmoulton +[smali](https://git.sr.ht/~yotam/tree-sitter-smali) | core | `HFIJL` | | | @amaanq +[smithy](https://github.com/indoorvivants/tree-sitter-smithy) | core | `H    ` | | | @amaanq, @keynmol +[solidity](https://github.com/JoranHonig/tree-sitter-solidity) | core | `H    ` | | | @amaanq +[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 +[starlark](https://github.com/amaanq/tree-sitter-starlark) | core | `HFIJL` | | | @amaanq +[strace](https://github.com/sigmaSd/tree-sitter-strace) | core | `H  J ` | | | @amaanq +[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/Himujjal/tree-sitter-svelte) | community | `HFIJ ` | | | @elianiva +[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) | | `HFIJL` | | | @amaanq -[teal](https://github.com/euclidianAce/tree-sitter-teal) | | `HFIJL` | ✓ | | @euclidianAce +[tablegen](https://github.com/amaanq/tree-sitter-tablegen) | core | `HFIJL` | | | @amaanq +[teal](https://github.com/euclidianAce/tree-sitter-teal) | community | `HFIJL` | ✓ | | @euclidianAce [terraform](https://github.com/MichaHoffmann/tree-sitter-hcl) | community | `HFIJ ` | | | @MichaHoffmann -[thrift](https://github.com/duskmoon314/tree-sitter-thrift) | | `HFIJL` | | | @amaanq, @duskmoon314 -[tiger](https://github.com/ambroisie/tree-sitter-tiger) | | `HFIJL` | | | @ambroisie -[tlaplus](https://github.com/tlaplus-community/tree-sitter-tlaplus) | | `HF JL` | | | @ahelwer, @susliko -[todotxt](https://github.com/arnarg/tree-sitter-todotxt.git) | unstable | `H    ` | | | @arnarg -[toml](https://github.com/ikatyang/tree-sitter-toml) | | `HFIJL` | | ✓ | @tk-shirasaka -[tsv](https://github.com/amaanq/tree-sitter-csv) | stable | `H    ` | | | @amaanq -[tsx](https://github.com/tree-sitter/tree-sitter-typescript) | | `HFIJL` | | ✓ | @steelsojka -[turtle](https://github.com/BonaBeavis/tree-sitter-turtle) | | `HFIJL` | | | @BonaBeavis -[twig](https://github.com/gbprod/tree-sitter-twig) | | `H  J ` | | | @gbprod -[typescript](https://github.com/tree-sitter/tree-sitter-typescript) | | `HFIJL` | | ✓ | @steelsojka -[ungrammar](https://github.com/Philipp-M/tree-sitter-ungrammar) | | `HFIJL` | | | @Philipp-M, @amaanq -[unison](https://github.com/kylegoetz/tree-sitter-unison) | unstable | `H  J ` | ✓ | | @tapegram -[usd](https://github.com/ColinKennedy/tree-sitter-usd) | | `HFI L` | | | @ColinKennedy -[uxntal](https://github.com/amaanq/tree-sitter-uxntal)[^uxntal] | | `HFIJL` | | | @amaanq -[v](https://github.com/v-analyzer/v-analyzer) | | `HFIJL` | | | @kkharji, @amaanq -[vala](https://github.com/vala-lang/tree-sitter-vala) | | `HF   ` | | | @Prince781 -[verilog](https://github.com/tree-sitter/tree-sitter-verilog) | | `HF JL` | | | @zegervdv -[vhs](https://github.com/charmbracelet/tree-sitter-vhs) | | `H    ` | | | @caarlos0 -[vim](https://github.com/neovim/tree-sitter-vim) | core | `HF JL` | | | @clason -[vimdoc](https://github.com/neovim/tree-sitter-vimdoc) | core | `H  J ` | | | @clason -[vue](https://github.com/ikatyang/tree-sitter-vue) | | `HFIJ ` | | | @WhyNotHugo -[wgsl](https://github.com/szebniok/tree-sitter-wgsl) | | `HFI  ` | | | @szebniok -[wgsl_bevy](https://github.com/theHamsta/tree-sitter-wgsl-bevy) | | `HFI  ` | | ✓ | @theHamsta -[wing](https://github.com/winglang/wing) | unstable | `HF  L` | ✓ | | @gshpychka -[xml](https://github.com/ObserverOfTime/tree-sitter-xml) | stable | `HFIJ ` | | | @ObserverOfTime -[yaml](https://github.com/ikatyang/tree-sitter-yaml) | | `HFIJL` | | | @stsewd -[yang](https://github.com/Hubro/tree-sitter-yang) | | `HFIJ ` | | | @Hubro -[yuck](https://github.com/Philipp-M/tree-sitter-yuck) | | `HFIJL` | | | @Philipp-M, @amaanq -[zig](https://github.com/maxxnino/tree-sitter-zig) | | `HFIJL` | | | @maxxnino +[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 +[todotxt](https://github.com/arnarg/tree-sitter-todotxt.git) | unsupported | `H    ` | | | @arnarg +[toml](https://github.com/ikatyang/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 +[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)[^uxntal] | core | `HFIJL` | | | @amaanq +[v](https://github.com/v-analyzer/v-analyzer) | community | `HFIJL` | | | @kkharji, @amaanq +[vala](https://github.com/vala-lang/tree-sitter-vala) | community | `HF   ` | | | @Prince781 +[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/ikatyang/tree-sitter-vue) | community | `HFIJ ` | | | @WhyNotHugo +[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/wing) | unsupported | `HF  L` | ✓ | | @gshpychka +[xml](https://github.com/ObserverOfTime/tree-sitter-xml) | core | `HFIJ ` | | | @ObserverOfTime +[yaml](https://github.com/ikatyang/tree-sitter-yaml) | core | `HFIJL` | | | @stsewd +[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 +[zig](https://github.com/maxxnino/tree-sitter-zig) | community | `HFIJL` | | | @maxxnino [^ecma]: queries required by javascript, typescript, tsx, qmljs [^gdscript]: Godot -[^git_config]: git_config [^glimmer]: Glimmer and Ember [^godot_resource]: Godot Resources [^html_tags]: queries required by html, astro, vue, svelte diff --git a/TODO.md b/TODO.md index bf817fc4b..094d4329b 100644 --- a/TODO.md +++ b/TODO.md @@ -4,12 +4,10 @@ This document lists the planned and finished changes in this rewrite towards [Nv ## TODO -- [ ] **`query_predicates.lua`:** upstream/remove -- [ ] **`parsers.lua`:** assign tiers -- [ ] **`parsers.lua`:** modularize? - [ ] **`locals.lua`:** move to `nvim-treesitter-refactor`? - [ ] **update-lockfile:** allow specifying version in addition to commit hash (for Tier 1) - [ ] **update-lockfile:** one commit per parser/tier? +- [ ] **tests:** fix, update, extend (cover all Tier 1 languages) - [ ] **documentation:** consolidate, autogenerate? - [ ] **documentation:** migration guide - [ ] **textobjects:** include simple(!) function, queries? (check Helix) diff --git a/lua/nvim-treesitter/config.lua b/lua/nvim-treesitter/config.lua index 5a7c8e8ec..7ffb23a46 100644 --- a/lua/nvim-treesitter/config.lua +++ b/lua/nvim-treesitter/config.lua @@ -10,7 +10,7 @@ local M = {} local config = { auto_install = false, ensure_install = {}, - ignore_install = {}, + ignore_install = { 'unsupported' }, install_dir = vim.fs.joinpath(vim.fn.stdpath('data'), 'site'), } diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua index ce293dfc8..a8dcc1e6d 100644 --- a/lua/nvim-treesitter/install.lua +++ b/lua/nvim-treesitter/install.lua @@ -95,11 +95,6 @@ local function get_target_revision(lang) lockfile = vim.json.decode(util.read_file(filename)) --[[@as table]] end - local install_info = get_parser_install_info(lang) - if install_info.revision then - return install_info.revision - end - if lockfile[lang] then return lockfile[lang].revision end @@ -434,7 +429,7 @@ local function install_lang(lang, cache_dir, install_dir, force, generate_from_g logger:error('Node JS not found: `node` is not executable') end - local revision = repo.revision or get_target_revision(lang) + local revision = get_target_revision(lang) local maybe_local_path = fs.normalize(repo.url) local from_local_path = vim.fn.isdirectory(maybe_local_path) == 1 diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 72b8350f9..ca5c61fde 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1,23 +1,22 @@ ---@class InstallInfo ---@field url string ---@field branch string|nil ----@field revision string|nil ---@field files string[] ---@field generate_requires_npm boolean|nil ---@field requires_generate_from_grammar boolean|nil ---@field location string|nil ---@class ParserInfo ----@field install_info InstallInfo ----@field filetype string[] ----@field maintainers string[] ----@field requires string[] +---@field install_info InstallInfo? +---@field filetype string[]? +---@field maintainers string[]? +---@field requires string[]? ---@field tier integer|nil ----@field readme_note string|nil +---@field readme_note string|nil? local M = {} -M.tiers = { 'core', 'stable', 'community', 'unstable' } +M.tiers = { 'stable', 'core', 'community', 'unsupported' } ---@type table M.configs = { @@ -27,6 +26,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@briot' }, + tier = 3, }, agda = { @@ -35,6 +35,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.cc' }, }, maintainers = { '@Decodetalkers' }, + tier = 3, }, arduino = { @@ -44,6 +45,7 @@ M.configs = { }, maintainers = { '@ObserverOfTime' }, requires = { 'cpp' }, + tier = 2, }, astro = { @@ -53,6 +55,7 @@ M.configs = { }, maintainers = { '@virchau13' }, requires = { 'html', 'html_tags' }, + tier = 3, }, awk = { @@ -60,6 +63,7 @@ M.configs = { url = 'https://github.com/Beaglefoot/tree-sitter-awk', files = { 'src/parser.c', 'src/scanner.c' }, }, + tier = 4, }, bash = { @@ -68,6 +72,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@TravonteD' }, + tier = 3, }, bass = { @@ -76,6 +81,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, beancount = { @@ -84,6 +90,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.cc' }, }, maintainers = { '@polarmutex' }, + tier = 3, }, bibtex = { @@ -92,7 +99,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@theHamsta', '@clason' }, - tier = 3, + tier = 2, }, bicep = { @@ -101,6 +108,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, bitbake = { install_info = { @@ -134,6 +142,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@Luxed' }, + tier = 3, }, cairo = { @@ -151,6 +160,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, chatito = { @@ -159,6 +169,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@ObserverOfTime' }, + tier = 2, }, clojure = { @@ -167,6 +178,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@sogaiu' }, + tier = 3, }, cmake = { @@ -175,6 +187,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@uyha' }, + tier = 4, }, comment = { @@ -193,6 +206,7 @@ M.configs = { generate_requires_npm = true, }, maintainers = { '@theHamsta' }, + tier = 2, }, cooklang = { @@ -201,6 +215,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.cc' }, }, maintainers = { '@addcninblue' }, + tier = 3, }, corn = { @@ -218,6 +233,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, cpp = { @@ -228,6 +244,7 @@ M.configs = { }, maintainers = { '@theHamsta' }, requires = { 'c' }, + tier = 1, }, css = { @@ -236,6 +253,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@TravonteD' }, + tier = 3, }, csv = { @@ -257,6 +275,7 @@ M.configs = { }, maintainers = { '@theHamsta' }, requires = { 'cpp' }, + tier = 2, }, cue = { @@ -265,6 +284,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, d = { @@ -273,8 +293,8 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.cc' }, requires_generate_from_grammar = true, }, - tier = 4, maintainers = { '@nawordar' }, + tier = 4, }, dart = { @@ -283,6 +303,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@akinsho' }, + tier = 4, }, devicetree = { @@ -291,6 +312,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@jedrzejboczar' }, + tier = 3, }, dhall = { @@ -299,6 +321,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, diff = { @@ -307,6 +330,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@gbprod' }, + tier = 3, }, dockerfile = { @@ -315,6 +339,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@camdencheek' }, + tier = 3, }, dot = { @@ -323,6 +348,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@rydesun' }, + tier = 3, }, doxygen = { @@ -357,6 +383,7 @@ M.configs = { ecma = { maintainers = { '@steelsojka' }, readme_note = 'queries required by javascript, typescript, tsx, qmljs', + tier = 2, }, eex = { @@ -365,6 +392,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@connorlay' }, + tier = 3, }, elixir = { @@ -373,6 +401,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@connorlay' }, + tier = 3, }, elm = { @@ -381,6 +410,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@zweimach' }, + tier = 4, }, elsa = { @@ -389,6 +419,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@glapa-grossklag', '@amaanq' }, + tier = 2, }, elvish = { @@ -397,6 +428,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@elves' }, + tier = 3, }, embedded_template = { @@ -413,6 +445,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@filmor' }, + tier = 3, }, fennel = { @@ -421,6 +454,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@TravonteD' }, + tier = 3, }, firrtl = { @@ -429,6 +463,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, fish = { @@ -437,6 +472,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@ram02z' }, + tier = 3, }, foam = { @@ -445,7 +481,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@FoamScience' }, - tier = 4, + tier = 3, }, forth = { @@ -463,6 +499,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, fsh = { @@ -471,6 +508,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@mgramigna' }, + tier = 3, }, func = { @@ -479,6 +517,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, fusion = { @@ -487,6 +526,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@jirgn' }, + tier = 3, }, gdscript = { @@ -496,6 +536,7 @@ M.configs = { }, maintainers = { '@PrestonKnopp' }, readme_note = 'Godot', + tier = 3, }, git_rebase = { @@ -504,6 +545,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@gbprod' }, + tier = 3, }, gitattributes = { @@ -512,6 +554,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@ObserverOfTime' }, + tier = 2, }, gitcommit = { @@ -520,6 +563,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@gbprod' }, + tier = 3, }, git_config = { @@ -528,7 +572,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@amaanq' }, - readme_note = 'git_config', + tier = 2, }, gitignore = { @@ -537,6 +581,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@theHamsta' }, + tier = 2, }, gleam = { @@ -545,6 +590,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, glimmer = { @@ -554,6 +600,7 @@ M.configs = { }, maintainers = { '@NullVoxPopuli' }, readme_note = 'Glimmer and Ember', + tier = 3, }, glsl = { @@ -564,6 +611,7 @@ M.configs = { }, maintainers = { '@theHamsta' }, requires = { 'c' }, + tier = 2, }, go = { @@ -572,6 +620,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@theHamsta', '@WinWisely268' }, + tier = 1, }, godot_resource = { @@ -581,6 +630,7 @@ M.configs = { }, maintainers = { '@pierpo' }, readme_note = 'Godot Resources', + tier = 3, }, gomod = { @@ -589,6 +639,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@camdencheek' }, + tier = 3, }, gosum = { @@ -597,6 +648,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, gowork = { @@ -605,6 +657,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@omertuc' }, + tier = 3, }, graphql = { @@ -613,6 +666,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@bkegley' }, + tier = 3, }, gpg = { @@ -647,6 +701,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, haskell = { @@ -662,8 +717,8 @@ M.configs = { url = 'https://github.com/MercuryTechnologies/tree-sitter-haskell-persistent', files = { 'src/parser.c', 'src/scanner.cc' }, }, - filetype = 'haskell.persistent', maintainers = { '@lykahb' }, + tier = 3, }, hcl = { @@ -672,6 +727,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@MichaHoffmann' }, + tier = 3, }, heex = { @@ -680,6 +736,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@connorlay' }, + tier = 3, }, hjson = { @@ -690,6 +747,7 @@ M.configs = { }, maintainers = { '@winston0410' }, requires = { 'json' }, + tier = 3, }, hlsl = { @@ -700,6 +758,7 @@ M.configs = { }, maintainers = { '@theHamsta' }, requires = { 'cpp' }, + tier = 2, }, hocon = { @@ -709,6 +768,7 @@ M.configs = { generate_requires_npm = true, }, maintainers = { '@antosha417' }, + tier = 4, }, hoon = { @@ -723,6 +783,7 @@ M.configs = { html_tags = { maintainers = { '@TravonteD' }, readme_note = 'queries required by html, astro, vue, svelte', + tier = 3, }, html = { @@ -732,6 +793,7 @@ M.configs = { }, maintainers = { '@TravonteD' }, requires = { 'html_tags' }, + tier = 3, }, htmldjango = { @@ -750,6 +812,7 @@ M.configs = { generate_requires_npm = true, }, maintainers = { '@amaanq' }, + tier = 2, }, hurl = { @@ -778,6 +841,7 @@ M.configs = { }, maintainers = { '@fab4100' }, requires = { 'c' }, + tier = 3, }, janet_simple = { @@ -786,6 +850,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@sogaiu' }, + tier = 3, }, java = { @@ -794,6 +859,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@p00f' }, + tier = 3, }, javascript = { @@ -803,6 +869,7 @@ M.configs = { }, maintainers = { '@steelsojka' }, requires = { 'ecma', 'jsx' }, + tier = 2, }, jq = { @@ -811,6 +878,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@ObserverOfTime' }, + tier = 2, }, jsdoc = { @@ -819,6 +887,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@steelsojka' }, + tier = 2, }, json = { @@ -827,6 +896,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@steelsojka' }, + tier = 2, }, json5 = { @@ -835,6 +905,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@Joakker' }, + tier = 3, }, jsonc = { @@ -845,6 +916,7 @@ M.configs = { }, maintainers = { '@WhyNotHugo' }, requires = { 'json' }, + tier = 3, }, jsonnet = { @@ -853,11 +925,13 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@nawordar' }, + tier = 3, }, jsx = { maintainers = { '@steelsojka' }, readme_note = 'queries required by javascript, tsx', + tier = 2, }, julia = { @@ -866,7 +940,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@theHamsta' }, - tier = 3, + tier = 2, }, kconfig = { @@ -884,6 +958,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, kotlin = { @@ -892,6 +967,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@SalBakraa' }, + tier = 3, }, lalrpop = { @@ -900,6 +976,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@traxys' }, + tier = 3, }, latex = { @@ -908,7 +985,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@theHamsta', '@clason' }, - tier = 3, + tier = 2, }, ledger = { @@ -917,6 +994,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@cbarrete' }, + tier = 3, }, llvm = { @@ -925,6 +1003,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@benwilliamgraham' }, + tier = 3, }, lua = { @@ -942,6 +1021,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, luap = { @@ -951,6 +1031,7 @@ M.configs = { }, maintainers = { '@amaanq' }, readme_note = 'Lua patterns', + tier = 2, }, luau = { @@ -960,6 +1041,7 @@ M.configs = { }, maintainers = { '@amaanq' }, requires = { 'lua' }, + tier = 2, }, m68k = { @@ -968,6 +1050,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@grahambates' }, + tier = 3, }, make = { @@ -976,6 +1059,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@lewis6991' }, + tier = 2, }, markdown = { @@ -1007,6 +1091,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@acristoffers' }, + tier = 3, }, menhir = { @@ -1015,6 +1100,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@Kerl13' }, + tier = 3, }, mermaid = { @@ -1031,6 +1117,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@Decodetalkers' }, + tier = 3, }, mlir = { @@ -1057,6 +1144,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@alemuller' }, + tier = 3, }, nix = { @@ -1065,6 +1153,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@leo60228' }, + tier = 3, }, nqc = { @@ -1083,6 +1172,7 @@ M.configs = { }, maintainers = { '@amaanq' }, requires = { 'c' }, + tier = 2, }, ocaml = { @@ -1092,6 +1182,7 @@ M.configs = { location = 'ocaml', }, maintainers = { '@undu' }, + tier = 3, }, ocaml_interface = { @@ -1102,6 +1193,7 @@ M.configs = { }, maintainers = { '@undu' }, requires = { 'ocaml' }, + tier = 3, }, ocamllex = { @@ -1111,6 +1203,7 @@ M.configs = { requires_generate_from_grammar = true, }, maintainers = { '@undu' }, + tier = 3, }, odin = { @@ -1119,6 +1212,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, org = { @@ -1135,6 +1229,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@Isopod' }, + tier = 3, }, passwd = { @@ -1143,6 +1238,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@amaanq' }, + tier = 3, }, pem = { @@ -1159,7 +1255,7 @@ M.configs = { url = 'https://github.com/ganezdragon/tree-sitter-perl', files = { 'src/parser.c', 'src/scanner.cc' }, }, - maintainers = { '@lcrownover' }, + tier = 4, }, php = { @@ -1168,6 +1264,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@tk-shirasaka' }, + tier = 3, }, phpdoc = { @@ -1186,6 +1283,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@leo60228' }, + tier = 3, }, po = { @@ -1194,6 +1292,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, poe_filter = { @@ -1212,6 +1311,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@amaanq', '@mfelsche' }, + tier = 2, }, prisma = { @@ -1220,6 +1320,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@elianiva' }, + tier = 3, }, proto = { @@ -1228,6 +1329,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@treywood' }, + tier = 3, }, promql = { @@ -1245,6 +1347,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@matthias-Q' }, + tier = 2, }, psv = { @@ -1273,6 +1376,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, pymanifest = { @@ -1291,6 +1395,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@stsewd', '@theHamsta' }, + tier = 1, }, ql = { @@ -1299,6 +1404,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@pwntester' }, + tier = 3, }, qmldir = { @@ -1307,6 +1413,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, qmljs = { @@ -1316,6 +1423,7 @@ M.configs = { }, maintainers = { '@Decodetalkers' }, requires = { 'ecma' }, + tier = 3, }, query = { @@ -1334,6 +1442,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@echasnovski' }, + tier = 3, }, racket = { @@ -1350,6 +1459,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@Fymyte' }, + tier = 3, }, re2c = { @@ -1367,6 +1477,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@theHamsta' }, + tier = 1, }, rego = { @@ -1375,6 +1486,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@FallenAngel97' }, + tier = 3, }, requirements = { @@ -1393,6 +1505,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@bamonroe' }, + tier = 3, }, robot = { @@ -1410,6 +1523,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, rst = { @@ -1418,6 +1532,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@stsewd' }, + tier = 2, }, ruby = { @@ -1426,6 +1541,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.cc' }, }, maintainers = { '@TravonteD' }, + tier = 3, }, rust = { @@ -1434,6 +1550,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, scala = { @@ -1442,6 +1559,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@stevanmilic' }, + tier = 3, }, scfg = { @@ -1487,6 +1605,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, smithy = { @@ -1495,6 +1614,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@amaanq', '@keynmol' }, + tier = 2, }, solidity = { @@ -1503,6 +1623,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, sparql = { @@ -1511,6 +1632,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@BonaBeavis' }, + tier = 3, }, sql = { @@ -1520,6 +1642,7 @@ M.configs = { branch = 'gh-pages', }, maintainers = { '@derekstride' }, + tier = 3, }, squirrel = { @@ -1528,6 +1651,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, starlark = { @@ -1536,6 +1660,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, strace = { @@ -1553,6 +1678,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@madskjeldgaard' }, + tier = 3, }, surface = { @@ -1561,6 +1687,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@connorlay' }, + tier = 3, }, svelte = { @@ -1570,6 +1697,7 @@ M.configs = { }, maintainers = { '@elianiva' }, requires = { 'html_tags' }, + tier = 3, }, swift = { @@ -1579,6 +1707,7 @@ M.configs = { requires_generate_from_grammar = true, }, maintainers = { '@alex-pinkus' }, + tier = 3, }, sxhkdrc = { @@ -1587,6 +1716,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@RaafatTurki' }, + tier = 3, }, systemtap = { @@ -1613,6 +1743,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@amaanq' }, + tier = 2, }, teal = { @@ -1622,6 +1753,7 @@ M.configs = { requires_generate_from_grammar = true, }, maintainers = { '@euclidianAce' }, + tier = 3, }, terraform = { @@ -1641,6 +1773,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@amaanq', '@duskmoon314' }, + tier = 2, }, tiger = { @@ -1649,6 +1782,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@ambroisie' }, + tier = 3, }, tlaplus = { @@ -1657,6 +1791,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.cc' }, }, maintainers = { '@ahelwer', '@susliko' }, + tier = 3, }, todotxt = { @@ -1675,6 +1810,7 @@ M.configs = { generate_requires_npm = true, }, maintainers = { '@tk-shirasaka' }, + tier = 3, }, tsv = { @@ -1696,6 +1832,7 @@ M.configs = { }, maintainers = { '@steelsojka' }, requires = { 'ecma', 'jsx', 'typescript' }, + tier = 2, }, turtle = { @@ -1704,6 +1841,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@BonaBeavis' }, + tier = 3, }, twig = { @@ -1712,6 +1850,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@gbprod' }, + tier = 3, }, typescript = { @@ -1723,6 +1862,7 @@ M.configs = { }, maintainers = { '@steelsojka' }, requires = { 'ecma' }, + tier = 2, }, ungrammar = { @@ -1731,6 +1871,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@Philipp-M', '@amaanq' }, + tier = 3, }, unison = { @@ -1749,6 +1890,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@ColinKennedy' }, + tier = 3, }, uxntal = { @@ -1758,6 +1900,7 @@ M.configs = { }, maintainers = { '@amaanq' }, readme_note = 'uxn tal', + tier = 2, }, v = { @@ -1767,6 +1910,7 @@ M.configs = { location = 'tree_sitter_v', }, maintainers = { '@kkharji', '@amaanq' }, + tier = 3, }, vala = { @@ -1775,6 +1919,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@Prince781' }, + tier = 3, }, verilog = { @@ -1783,6 +1928,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@zegervdv' }, + tier = 3, }, vhs = { @@ -1791,6 +1937,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@caarlos0' }, + tier = 3, }, vim = { @@ -1818,6 +1965,7 @@ M.configs = { }, maintainers = { '@WhyNotHugo' }, requires = { 'html_tags' }, + tier = 3, }, wing = { @@ -1837,6 +1985,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@szebniok' }, + tier = 3, }, wgsl_bevy = { @@ -1846,6 +1995,7 @@ M.configs = { generate_requires_npm = true, }, maintainers = { '@theHamsta' }, + tier = 2, }, xml = { @@ -1865,6 +2015,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.cc' }, }, maintainers = { '@stsewd' }, + tier = 2, }, yang = { @@ -1873,6 +2024,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@Hubro' }, + tier = 3, }, yuck = { @@ -1881,6 +2033,7 @@ M.configs = { files = { 'src/parser.c', 'src/scanner.c' }, }, maintainers = { '@Philipp-M', '@amaanq' }, + tier = 3, }, zig = { @@ -1889,6 +2042,7 @@ M.configs = { files = { 'src/parser.c' }, }, maintainers = { '@maxxnino' }, + tier = 3, }, } diff --git a/plugin/filetypes.lua b/plugin/filetypes.lua index a7cbc21ca..8617964c5 100644 --- a/plugin/filetypes.lua +++ b/plugin/filetypes.lua @@ -11,6 +11,7 @@ local filetypes = { git_rebase = { 'gitrebase' }, glimmer = { 'handlebars', 'html.handlebars' }, godot_resource = { 'gdresource' }, + haskell_persistent = { 'haskellpersistent' }, html = { 'html_tags' }, janet_simple = { 'janet' }, javascript = { 'javascript', 'javascriptreact', 'ecma', 'jsx' }, diff --git a/scripts/update-lockfile.lua b/scripts/update-lockfile.lua index e07cf416f..0c9288b6a 100755 --- a/scripts/update-lockfile.lua +++ b/scripts/update-lockfile.lua @@ -4,7 +4,7 @@ local util = require('nvim-treesitter.util') -- Load previous lockfile local filename = require('nvim-treesitter.install').get_package_path('lockfile.json') --- local old_lockfile = vim.json.decode(util.read_file(filename)) --[[@as table]] +local old_lockfile = vim.json.decode(util.read_file(filename)) --[[@as table]] ---@type table local new_lockfile = {} @@ -15,9 +15,10 @@ local jobs = {} --- @type table -- check for new revisions for k, p in pairs(parsers) do - if not p.install_info then + if p.tier == 4 then + new_lockfile[k] = old_lockfile[k] print('Skipping ' .. k) - else + elseif p.install_info then jobs[k] = vim.system({ 'git', 'ls-remote', p.install_info.url }) end