Merge branch 'main' of github.com:nvim-treesitter/nvim-treesitter into zsh-builtin-highlights

This commit is contained in:
George Harker 2026-03-16 10:24:22 -07:00
commit 19c865eb9b
110 changed files with 2064 additions and 984 deletions

25
.emmyrc.json Normal file
View file

@ -0,0 +1,25 @@
{
"$schema": "https://raw.githubusercontent.com/EmmyLuaLs/emmylua-analyzer-rust/refs/heads/main/crates/emmylua_code_analysis/resources/schema.json",
"format": {
"externalTool": {
"program": "stylua",
"args": [
"-",
"--stdin-filepath",
"${file}"
]
}
},
"diagnostics": {
"disable": [
"unnecessary-if"
]
},
"codeAction": {
"insertSpace": true
},
"strict": {
"typeCall": true,
"arrayIndex": true
}
}

2
.github/FUNDING.yml vendored
View file

@ -1,2 +0,0 @@
open_collective: "nvim-treesitter"
github: "nvim-treesitter"

16
.github/dependabot.yml vendored Normal file
View file

@ -0,0 +1,16 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
cooldown:
default-days: 3
commit-message:
prefix: "ci"
labels:
- "CI"
groups:
actions:
patterns: ["*"]

View file

@ -8,6 +8,10 @@ on:
- "lua/nvim-treesitter/parsers.lua"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
test-downstream:
name: Check downstream queries
@ -15,8 +19,8 @@ jobs:
env:
NVIM: "nvim"
steps:
- uses: actions/checkout@v5
- uses: tree-sitter/setup-action/cli@v1
- uses: actions/checkout@v6
- uses: tree-sitter/setup-action/cli@v2
- name: Install and prepare Neovim
env:
@ -31,7 +35,7 @@ jobs:
run: curl -fL https://github.com/ribru17/ts_query_ls/releases/latest/download/ts_query_ls-x86_64-unknown-linux-gnu.tar.gz | tar -xz
- name: Clone textobjects
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
repository: nvim-treesitter/nvim-treesitter-textobjects
ref: main
@ -44,7 +48,7 @@ jobs:
- name: Clone context
if: always()
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
repository: nvim-treesitter/nvim-treesitter-context
ref: master

View file

@ -12,9 +12,9 @@ on:
jobs:
lua:
name: Lint Lua files
runs-on: ubuntu-latest
runs-on: ubuntu-slim
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Format
run: |
@ -26,9 +26,9 @@ jobs:
queries:
name: Lint query files
runs-on: ubuntu-latest
runs-on: ubuntu-slim
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Format
run: |
@ -40,9 +40,9 @@ jobs:
readme:
name: Lint docs
runs-on: ubuntu-latest
runs-on: ubuntu-slim
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Check SUPPORTED_LANGUAGES
run: |

View file

@ -21,8 +21,8 @@ jobs:
env:
NVIM: ${{ matrix.os == 'windows-latest' && 'nvim-win64\\bin\\nvim.exe' || 'nvim' }}
steps:
- uses: actions/checkout@v5
- uses: tree-sitter/setup-action/cli@v1
- uses: actions/checkout@v6
- uses: tree-sitter/setup-action/cli@v2
- uses: ilammy/msvc-dev-cmd@v1
- name: Install and prepare Neovim

View file

@ -15,9 +15,9 @@ jobs:
matrix:
tier: [1, 2]
name: Update parsers tier ${{ matrix.tier }}
runs-on: ubuntu-latest
runs-on: ubuntu-slim
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
ref: main
@ -42,7 +42,7 @@ jobs:
run: ./scripts/update-parsers.lua --tier=${{ matrix.tier }}
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
uses: peter-evans/create-pull-request@v8
with:
add-paths: lua/nvim-treesitter/parsers.lua
token: ${{ steps.app-token.outputs.token }}

View file

@ -14,6 +14,21 @@ Before describing these in detail, some general advice:
## Parsers
>[!IMPORTANT]
> To qualify for inclusion, a parser must meet the following criteria:
> * correspond to a filetype detected by Neovim (nightly)
> * feature complete, tested by users, and actively maintained (according to maintainer discretion)
> * hosted or mirrored on Github (other codeforges are not reliable enough for CI)
> * covered by CI using [upstream workflows](https://github.com/tree-sitter/workflows)
> * provide reference queries covered by a [`ts_query_ls` workflow](https://github.com/tree-sitter-grammars/template/blob/9c46d09d688d27c7aef31c2b32f50260de4e7906/.github/workflows/ci.yml#L69-L86)
> * if the repo contains a `src/parser.c`, it must support the latest ABI
> * if the repo does _not_ contain a `src/parser.c`, it must contain an up-to-date `src/grammar.json`
> * if the repo contains an external scanner, it must be written in C99
>
> Tier 1 parsers (preferred) in addition need to
> * make regular releases following semver (_patch_ for fixes not affecting queries; _minor_ for changes introducing new nodes or patterns; _major_ for changes removing nodes or previously valid patterns)
> * provide WASM release artifacts
To add a new parser, edit the following files:
1. In `lua/parsers.lua`, add an entry to the returned table of the following form:
@ -36,27 +51,15 @@ zimbu = {
}
```
>[!IMPORTANT]
> If the repo does not contain a pre-generated `src/parser.c`, it **must** at least contain `src/grammar.json` so that the parser can be generated without having `node` installed.
>[!IMPORTANT]
> The "maintainers" here refers to the person maintaining the **queries** in `nvim-treesitter`, not the parser maintainers (who likely don't use Neovim). The maintainers' duty is to review issues and PRs related to the query and to keep them updated with respect to parser changes.
>[!NOTE]
> To qualify for Tier 1 ("stable"), a parser needs to
> * make releases following semver (_patch_ for fixes not affecting queries; _minor_ for changes introducing new nodes or patterns; _major_ for changes removing nodes or previously valid patterns);
> * provide WASM release artifacts;
> * include and maintain reference queries.
2. If the parser name is not the same as the Vim filetype, add an entry to the `filetypes` table in `plugin/filetypes.lua`:
```lua
zimbu = { 'zu' },
```
>[!IMPORTANT]
> Only external scanners written in C are supported for portability reasons.
3. Update the list of [supported languages] by running `make docs` (or `./scripts/update-readme.lua` if on Windows).
4. Test if both `:TSInstall zimbu` and `:TSInstallFromGrammar zimbu` work without errors (`:checkhealth treesitter` or `./scripts/check-parsers.lua zimbu`).

View file

@ -1,5 +1,5 @@
NVIM_VERSION ?= nightly
LUALS_VERSION := 3.15.0
LUALS_VERSION := 3.17.1
DEPDIR ?= .test-deps
CURL ?= curl -sL --create-dirs

View file

@ -10,52 +10,47 @@ The `nvim-treesitter` plugin provides
For details on these and how to help improving them, see [CONTRIBUTING.md](./CONTRIBUTING.md).
>[!CAUTION]
> This is a full, incompatible, rewrite. If you can't or don't want to update, check out the [`master` branch](https://github.com/nvim-treesitter/nvim-treesitter/blob/master/README.md) (which is locked but will remain available for backward compatibility).
> This is a full, incompatible, rewrite. If you can't or don't want to update, specify the [`master` branch](https://github.com/nvim-treesitter/nvim-treesitter/blob/master/README.md) (which is locked but will remain available for backward compatibility).
# Quickstart
## Requirements
- Neovim 0.11.0 or later (nightly)
- Neovim 0.12.0 or later (nightly)
- `tar` and `curl` in your path
- [`tree-sitter-cli`](https://github.com/tree-sitter/tree-sitter/blob/master/crates/cli/README.md) (0.25.0 or later)
- [`tree-sitter-cli`](https://github.com/tree-sitter/tree-sitter/blob/master/crates/cli/README.md) (0.26.1 or later, installed via your package manager, **not npm**)
- a C compiler in your path (see <https://docs.rs/cc/latest/cc/#compile-time-requirements>)
>[!IMPORTANT]
> The **support policy** for Neovim is
> 1. the _latest_ [stable release](https://github.com/neovim/neovim/releases/tag/stable);
> 2. the _latest_ [nightly prerelease](https://github.com/neovim/neovim/releases/tag/nightly).
> Other versions may work but are neither tested nor considered for fixes. In general, compatibility with Nvim 0.X is removed after the release of Nvim 0.(X+1).1.
> The current **support policy** for Neovim is
> * the _latest_ [nightly prerelease](https://github.com/neovim/neovim/releases/tag/nightly).
> Other versions may work but are neither tested nor considered for fixes. Once this plugin is [considered stable](https://github.com/nvim-treesitter/nvim-treesitter/issues/4767), support will be added for the latest release.
## Installation
You can install `nvim-treesitter` with your favorite package manager (or using the native `package` feature of vim, see `:h packages`).
This plugin is only guaranteed to work with specific versions of language parsers** (as specified in the `parser.lua` table). **When upgrading the plugin, you must make sure that all installed parsers are updated to the latest version** via `:TSUpdate`.
It is strongly recommended to automate this; e.g., using [lazy.nvim](https://github.com/folke/lazy.nvim)
It is strongly recommended to automate this; e.g., using the following spec with [lazy.nvim](https://github.com/folke/lazy.nvim):
```lua
require('lazy').setup({
{
'nvim-treesitter/nvim-treesitter',
lazy = false,
branch = 'main',
build = ':TSUpdate'
})
}
```
>[!IMPORTANT]
> This plugin does not support lazy-loading.
>[!IMPORTANT]
> Make sure to specify the `main` branch since (for now) the default branch is [`master`](https://github.com/nvim-treesitter/nvim-treesitter/blob/master/README.md).
## Setup
`nvim-treesitter` can be configured by calling `setup`. The following snippet lists the available options and their default values. **You do not need to call `setup` for `nvim-treesitter` to work using default values.**
`nvim-treesitter` can be configured by calling `setup`. **You do not need to call `setup` for `nvim-treesitter` to work using default values.**
```lua
require'nvim-treesitter'.setup {
-- Directory to install parsers and queries to
require('nvim-treesitter').setup {
-- Directory to install parsers and queries to (prepended to `runtimepath` to have priority)
install_dir = vim.fn.stdpath('data') .. '/site'
}
```
@ -63,7 +58,7 @@ require'nvim-treesitter'.setup {
Parsers and queries can then be installed with
```lua
require'nvim-treesitter'.install { 'rust', 'javascript', 'zig' }
require('nvim-treesitter').install { 'rust', 'javascript', 'zig' }
```
(This is a no-op if the parsers are already installed.) Note that this function runs asynchronously; for synchronous installation in a script context ("bootstrapping"), you need to `wait()` for it to finish:
@ -100,7 +95,8 @@ vim.api.nvim_create_autocmd('FileType', {
Treesitter-based folding is provided by Neovim. To enable it, put the following in your `ftplugin` or `FileType` autocommand:
```lua
vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
vim.wo[0][0].foldexpr = 'v:lua.vim.treesitter.foldexpr()'
vim.wo[0][0].foldmethod = 'expr'
```
## Indentation
@ -140,7 +136,7 @@ callback = function()
branch = 'develop', -- only needed if different from default branch
location = 'parser', -- only needed if the parser is in subdirectory of a "monorepo"
generate = true, -- only needed if repo does not contain pre-generated `src/parser.c`
generate_from_json = false, -- only needed if repo does not contain `src/grammar.json` either -- WARNING: requires `node` for tree-sitter-cli <0.26.0!
generate_from_json = false, -- only needed if repo does not contain `src/grammar.json` either
queries = 'queries/neovim', -- also install queries from given directory
},
}
@ -172,7 +168,7 @@ If Neovim does not detect your language's filetype by default, you can use [Neov
3. Start `nvim` and `:TSInstall zimbu`.
>[!IMPORTANT]
> Parsers using external scanner need to be written in C.
> If the parser requires an external scanner, this must be written in C.
### Modifying parsers

42
SUPPORTED_LANGUAGES.md generated
View file

@ -4,8 +4,7 @@ The following is a list of languages for which a parser can be installed through
Legend:
- **Tier:** _stable_ (updates follow semver releases), _unstable_ (updates follow HEAD), _unmaintained_ (no automatic updates), or _unsupported_ (known to be broken, cannot be installed)
- **Queries** available for **H**ighlights, **I**ndents, **F**olds, In**J**ections, **L**ocals
- **Node:** Parser requires `node` for installation
- **Queries** available for **H**ighlights, **F**olds, **I**ndents, In**J**ections, **L**ocals
- **Maintainer** of queries in nvim-treesitter (may be different from parser maintainer!)
<!--This section of the README is automatically updated by a CI job-->
@ -21,20 +20,20 @@ Language | Tier | Queries | Maintainer
[astro](https://github.com/virchau13/tree-sitter-astro) | unstable | `HFIJL` | @virchau13
[authzed](https://github.com/mleonidas/tree-sitter-authzed) | unstable | `H  J ` | @mattpolzin
[awk](https://github.com/Beaglefoot/tree-sitter-awk) | unstable | `H  J ` |
[bash](https://github.com/tree-sitter/tree-sitter-bash) | unstable | `HF JL` | @TravonteD
[bash](https://github.com/tree-sitter/tree-sitter-bash) | unstable | `HFIJL` | @TravonteD
[bass](https://github.com/vito/tree-sitter-bass) | unstable | `HFIJL` | @amaanq
[beancount](https://github.com/polarmutex/tree-sitter-beancount) | unstable | `HF J ` | @polarmutex
[bibtex](https://github.com/latex-lsp/tree-sitter-bibtex) | unstable | `HFIJ ` | @theHamsta, @clason
[bicep](https://github.com/tree-sitter-grammars/tree-sitter-bicep) | unstable | `HFIJL` | @amaanq
[bitbake](https://github.com/tree-sitter-grammars/tree-sitter-bitbake) | unstable | `HFIJL` | @amaanq
[blade](https://github.com/EmranMR/tree-sitter-blade) | unstable | `HFIJ ` | @calebdw
[blueprint](https://gitlab.com/gabmus/tree-sitter-blueprint) | unstable | `H  J ` | @gabmus
[bp](https://github.com/ambroisie/tree-sitter-bp)[^bp] | unstable | `HFIJL` | @ambroisie
[bpftrace](https://github.com/sgruszka/tree-sitter-bpftrace) | unstable | `H  J ` | @sgruszka
[brightscript](https://github.com/ajdelcimmuto/tree-sitter-brightscript) | unstable | `HFIJ ` | @ajdelcimmuto
[c](https://github.com/tree-sitter/tree-sitter-c) | unstable | `HFIJL` | @amaanq
[c3](https://github.com/c3lang/tree-sitter-c3) | unstable | `HFIJ ` | @cbuttner
[c_sharp](https://github.com/tree-sitter/tree-sitter-c-sharp) | unstable | `HF JL` | @amaanq
[caddy](https://github.com/opa-oz/tree-sitter-caddy) | unmaintained | `HFIJ ` | @opa-oz
[caddy](https://github.com/opa-oz/tree-sitter-caddy) | unmaintained | `HFIJ ` |
[cairo](https://github.com/tree-sitter-grammars/tree-sitter-cairo) | unstable | `HFIJL` | @amaanq
[capnp](https://github.com/tree-sitter-grammars/tree-sitter-capnp) | unstable | `HFIJL` | @amaanq
[chatito](https://github.com/tree-sitter-grammars/tree-sitter-chatito) | unstable | `HFIJL` | @ObserverOfTime
@ -54,7 +53,7 @@ Language | Tier | Queries | Maintainer
[cylc](https://github.com/elliotfontaine/tree-sitter-cylc) | unstable | `HFIJ ` | @elliotfontaine
[d](https://github.com/gdamore/tree-sitter-d) | unstable | `HFIJL` | @amaanq
[dart](https://github.com/UserNobody14/tree-sitter-dart) | unstable | `HFIJL` | @akinsho
[desktop](https://github.com/ValdezFOmar/tree-sitter-desktop) | unstable | `HF J ` | @ValdezFOmar
[desktop](https://github.com/ValdezFOmar/tree-sitter-desktop) | stable | `HF J ` | @ValdezFOmar
[devicetree](https://github.com/joelspadin/tree-sitter-devicetree) | unstable | `HFIJL` | @jedrzejboczar
[dhall](https://github.com/jbellerb/tree-sitter-dhall) | unstable | `HF J ` | @amaanq
[diff](https://github.com/tree-sitter-grammars/tree-sitter-diff) | unstable | `HF J ` | @gbprod
@ -67,7 +66,7 @@ Language | Tier | Queries | Maintainer
[earthfile](https://github.com/glehmann/tree-sitter-earthfile) | unstable | `H  J ` | @glehmann
[ebnf](https://github.com/RubixDev/ebnf) | unstable | `H  J ` | @RubixDev
ecma (queries only)[^ecma] | unstable | `HFIJL` | @steelsojka
[editorconfig](https://github.com/ValdezFOmar/tree-sitter-editorconfig) | unstable | `HF J ` | @ValdezFOmar
[editorconfig](https://github.com/ValdezFOmar/tree-sitter-editorconfig) | stable | `HF J ` | @ValdezFOmar
[eds](https://github.com/uyha/tree-sitter-eds) | unstable | `HF   ` | @uyha
[eex](https://github.com/connorlay/tree-sitter-eex) | unstable | `H  J ` | @connorlay
[elixir](https://github.com/elixir-lang/tree-sitter-elixir) | unstable | `HFIJL` | @connorlay
@ -89,7 +88,6 @@ ecma (queries only)[^ecma] | unstable | `HFIJL` | @steelsojka
[fsh](https://github.com/mgramigna/tree-sitter-fsh) | unstable | `H  J ` | @mgramigna
[fsharp](https://github.com/ionide/tree-sitter-fsharp) | unstable | `H  J ` | @nsidorenco
[func](https://github.com/tree-sitter-grammars/tree-sitter-func) | unstable | `H  J ` | @amaanq
[fusion](https://gitlab.com/jirgn/tree-sitter-fusion) | unstable | `HFIJL` | @jirgn
[gap](https://github.com/gap-system/tree-sitter-gap)[^gap] | unstable | `HF JL` | @reiniscirpons
[gaptst](https://github.com/gap-system/tree-sitter-gaptst)[^gaptst] | unstable | `HF J ` | @reiniscirpons
[gdscript](https://github.com/PrestonKnopp/tree-sitter-gdscript)[^gdscript] | unmaintained | `HFIJL` |
@ -140,7 +138,7 @@ html_tags (queries only)[^html_tags] | unstable | `H IJ ` | @TravonteD
[idl](https://github.com/cathaysia/tree-sitter-idl) | unstable | `H IJ ` | @cathaysia
[idris](https://github.com/kayhide/tree-sitter-idris) | unstable | `HF JL` |
[ini](https://github.com/justinmk/tree-sitter-ini) | unstable | `HF J ` | @theHamsta
[inko](https://github.com/inko-lang/tree-sitter-inko) | unstable | `HFIJL` | @yorickpeterse
[inko](https://github.com/inko-lang/tree-sitter-inko) | stable | `HFIJL` | @yorickpeterse
[ispc](https://github.com/tree-sitter-grammars/tree-sitter-ispc) | unstable | `HFIJL` | @fab4100
[janet_simple](https://github.com/sogaiu/tree-sitter-janet-simple) | unstable | `HF JL` | @sogaiu
[java](https://github.com/tree-sitter/tree-sitter-java) | unstable | `HFIJL` | @p00f
@ -150,9 +148,8 @@ html_tags (queries only)[^html_tags] | unstable | `H IJ ` | @TravonteD
[jinja_inline](https://github.com/cathaysia/tree-sitter-jinja)[^jinja_inline] | unstable | `H  J ` | @cathaysia
[jq](https://github.com/flurie/tree-sitter-jq) | unstable | `H  JL` | @ObserverOfTime
[jsdoc](https://github.com/tree-sitter/tree-sitter-jsdoc) | unstable | `H    ` | @steelsojka
[json](https://github.com/tree-sitter/tree-sitter-json) | unstable | `HFI L` | @steelsojka
[json](https://github.com/tree-sitter/tree-sitter-json) | unstable | `HFIJL` | @steelsojka
[json5](https://github.com/Joakker/tree-sitter-json5) | unstable | `H  J ` | @Joakker
[jsonc](https://gitlab.com/WhyNotHugo/tree-sitter-jsonc) | unstable | `HFIJL` | @WhyNotHugo
[jsonnet](https://github.com/sourcegraph/tree-sitter-jsonnet) | unstable | `HF JL` | @nawordar
jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka
[julia](https://github.com/tree-sitter-grammars/tree-sitter-julia) | unstable | `HFIJL` | @clason
@ -161,7 +158,8 @@ jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka
[kconfig](https://github.com/tree-sitter-grammars/tree-sitter-kconfig) | unstable | `HFIJL` | @amaanq
[kdl](https://github.com/tree-sitter-grammars/tree-sitter-kdl) | unstable | `HFIJL` | @amaanq
[kitty](https://github.com/OXY2DEV/tree-sitter-kitty) | unstable | `H  J ` | @OXY2DEV
[kotlin](https://github.com/fwcd/tree-sitter-kotlin) | unstable | `HF JL` | @SalBakraa
[kos](https://github.com/kos-lang/tree-sitter-kos) | unstable | `HF JL` | @cdragan
[kotlin](https://github.com/fwcd/tree-sitter-kotlin) | unstable | `HF JL` |
[koto](https://github.com/koto-lang/tree-sitter-koto) | unstable | `HF JL` | @irh
[kusto](https://github.com/Willem-J-an/tree-sitter-kusto) | unstable | `H  J ` | @Willem-J-an
[lalrpop](https://github.com/traxys/tree-sitter-lalrpop) | unstable | `HF JL` | @traxys
@ -177,7 +175,7 @@ jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka
[luap](https://github.com/tree-sitter-grammars/tree-sitter-luap)[^luap] | unstable | `H    ` | @amaanq
[luau](https://github.com/tree-sitter-grammars/tree-sitter-luau) | unstable | `HFIJL` | @amaanq
[m68k](https://github.com/grahambates/tree-sitter-m68k) | unstable | `HF JL` | @grahambates
[make](https://github.com/alemuller/tree-sitter-make) | unstable | `HF J ` | @lewis6991
[make](https://github.com/tree-sitter-grammars/tree-sitter-make) | unstable | `HF J ` | @lewis6991
[markdown](https://github.com/tree-sitter-grammars/tree-sitter-markdown)[^markdown] | unstable | `HFIJ ` | @MDeiml
[markdown_inline](https://github.com/tree-sitter-grammars/tree-sitter-markdown)[^markdown_inline] | unstable | `H  J ` | @MDeiml
[matlab](https://github.com/acristoffers/tree-sitter-matlab) | unstable | `HFIJL` | @acristoffers
@ -192,7 +190,7 @@ jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka
[nim](https://github.com/alaviss/tree-sitter-nim) | unstable | `HF JL` | @aMOPel
[nim_format_string](https://github.com/aMOPel/tree-sitter-nim-format-string) | unstable | `H  J ` | @aMOPel
[ninja](https://github.com/alemuller/tree-sitter-ninja) | unstable | `HFIJ ` | @alemuller
[nix](https://github.com/nix-community/tree-sitter-nix) | unstable | `HFIJL` | @leo60228, @zimbatm
[nix](https://github.com/nix-community/tree-sitter-nix) | unstable | `HFIJL` | @leo60228, @mrcjkb, @zimbatm
[nqc](https://github.com/tree-sitter-grammars/tree-sitter-nqc) | unstable | `HFIJL` | @amaanq
[nu](https://github.com/nushell/tree-sitter-nu) | unstable | `HFIJ ` | @abhisheksingh0x558
[objc](https://github.com/tree-sitter-grammars/tree-sitter-objc) | unstable | `HFIJL` | @amaanq
@ -221,7 +219,7 @@ jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka
[prolog](https://github.com/foxyseta/tree-sitter-prolog) | unstable | `HFIJ ` | @foxyseta
[promql](https://github.com/MichaHoffmann/tree-sitter-promql) | unstable | `H  J ` | @MichaHoffmann
[properties](https://github.com/tree-sitter-grammars/tree-sitter-properties)[^properties] | unstable | `H  JL` | @ObserverOfTime
[proto](https://github.com/treywood/tree-sitter-proto) | unstable | `HFIJ ` | @treywood
[proto](https://github.com/coder3101/tree-sitter-proto) | unstable | `HFIJ ` | @stefanvanburen
[prql](https://github.com/PRQL/tree-sitter-prql) | unstable | `H  J ` | @matthias-Q
[psv](https://github.com/tree-sitter-grammars/tree-sitter-csv) | unstable | `H    ` | @amaanq
[pug](https://github.com/zealot128/tree-sitter-pug) | unstable | `H  J ` | @zealot128
@ -247,9 +245,9 @@ jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka
[rescript](https://github.com/rescript-lang/tree-sitter-rescript) | unstable | `HFIJL` | @ribru17
[rifleconf](https://github.com/purarue/tree-sitter-rifleconf) | unstable | `H  J ` | @purarue
[rnoweb](https://github.com/bamonroe/tree-sitter-rnoweb) | unstable | `HF J ` | @bamonroe
[robot](https://github.com/Hubro/tree-sitter-robot) | unstable | `HFIJ ` | @Hubro
[robots](https://github.com/opa-oz/tree-sitter-robots-txt) | unstable | `H  J ` | @opa-oz
[roc](https://github.com/faldor20/tree-sitter-roc) | unstable | `H IJL` | @nat-418
[robot](https://github.com/Hubro/tree-sitter-robot) | unmaintained | `HFIJ ` |
[robots_txt](https://github.com/opa-oz/tree-sitter-robots-txt) | unstable | `H  J ` | @opa-oz
[roc](https://github.com/faldor20/tree-sitter-roc) | unmaintained | `H IJL` |
[ron](https://github.com/tree-sitter-grammars/tree-sitter-ron) | unstable | `HFIJL` | @amaanq
[rst](https://github.com/stsewd/tree-sitter-rst) | unstable | `H  JL` | @stsewd
[ruby](https://github.com/tree-sitter/tree-sitter-ruby) | unstable | `HFIJL` | @TravonteD
@ -279,7 +277,7 @@ jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka
[starlark](https://github.com/tree-sitter-grammars/tree-sitter-starlark) | unstable | `HFIJL` | @amaanq
[strace](https://github.com/sigmaSd/tree-sitter-strace) | unstable | `H  J ` | @amaanq
[styled](https://github.com/mskelton/tree-sitter-styled) | unstable | `HFIJ ` | @mskelton
[supercollider](https://github.com/madskjeldgaard/tree-sitter-supercollider) | unstable | `HFIJL` | @madskjeldgaard
[supercollider](https://github.com/madskjeldgaard/tree-sitter-supercollider) | unstable | `HFIJL` | @madskjeldgaard, @elgiano
[superhtml](https://github.com/kristoff-it/superhtml) | unstable | `H  J ` | @rockorager
[surface](https://github.com/connorlay/tree-sitter-surface) | unstable | `HFIJ ` | @connorlay
[svelte](https://github.com/tree-sitter-grammars/tree-sitter-svelte) | unstable | `HFIJL` | @amaanq
@ -318,7 +316,7 @@ jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka
[uxntal](https://github.com/tree-sitter-grammars/tree-sitter-uxntal) | unstable | `HFIJL` | @amaanq
[v](https://github.com/vlang/v-analyzer) | unstable | `HFIJL` | @kkharji, @amaanq
[vala](https://github.com/vala-lang/tree-sitter-vala) | unstable | `HF J ` | @Prince781
[vento](https://github.com/ventojs/tree-sitter-vento) | unstable | `H  J ` | @wrapperup, @oscarotero
[vento](https://github.com/ventojs/tree-sitter-vento) | unmaintained | `H  J ` |
[vhdl](https://github.com/jpt13653903/tree-sitter-vhdl) | unstable | `HF J ` | @jpt13653903
[vhs](https://github.com/charmbracelet/tree-sitter-vhs) | unstable | `H  J ` | @caarlos0
[vim](https://github.com/tree-sitter-grammars/tree-sitter-vim) | unstable | `HF JL` | @clason
@ -332,7 +330,7 @@ jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka
[wxml](https://github.com/BlockLune/tree-sitter-wxml) | unstable | `HFIJ ` | @BlockLune
[xcompose](https://github.com/tree-sitter-grammars/tree-sitter-xcompose) | unstable | `H  JL` | @ObserverOfTime
[xml](https://github.com/tree-sitter-grammars/tree-sitter-xml) | unstable | `HFIJL` | @ObserverOfTime
[xresources](https://github.com/ValdezFOmar/tree-sitter-xresources) | unstable | `HF JL` | @ValdezFOmar
[xresources](https://github.com/ValdezFOmar/tree-sitter-xresources) | stable | `HF JL` | @ValdezFOmar
[yaml](https://github.com/tree-sitter-grammars/tree-sitter-yaml) | unstable | `HFIJL` | @amaanq
[yang](https://github.com/Hubro/tree-sitter-yang) | unstable | `HFIJ ` | @Hubro
[yuck](https://github.com/tree-sitter-grammars/tree-sitter-yuck) | unstable | `HFIJL` | @Philipp-M, @amaanq
@ -340,7 +338,7 @@ jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka
[zig](https://github.com/tree-sitter-grammars/tree-sitter-zig) | unstable | `HFIJL` | @amaanq
[ziggy](https://github.com/kristoff-it/ziggy) | unmaintained | `H I  ` |
[ziggy_schema](https://github.com/kristoff-it/ziggy) | unmaintained | `H I  ` |
[zsh](https://github.com/georgeharker/tree-sitter-zsh) | stable | `HF JL` | @georgeharker
[zsh](https://github.com/georgeharker/tree-sitter-zsh) | unstable | `HF JL` | @georgeharker
[^bp]: Android Blueprint
[^ecma]: queries required by javascript, typescript, tsx, qmljs
[^gap]: GAP system

View file

@ -45,6 +45,7 @@ Treesitter features for installed languages need to be enabled manually in a
vim.treesitter.start()
-- folds, provided by Neovim
vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
vim.wo.foldmethod = 'expr'
-- indentation, provided by nvim-treesitter
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
end,

View file

@ -3,7 +3,7 @@ error('Cannot require a meta file')
---@class InstallInfo
---
---URL of parser repo (Github/Gitlab)
---URL of parser repo (Github)
---@field url string
---
---Commit hash of parser to download (compatible with queries)

View file

@ -7,7 +7,7 @@ M.tiers = { 'stable', 'unstable', 'unmaintained', 'unsupported' }
---@type TSConfig
local config = {
install_dir = vim.fs.joinpath(vim.fn.stdpath('data'), 'site'),
install_dir = vim.fs.joinpath(vim.fn.stdpath('data') --[[@as string]], 'site'),
}
---Setup call for users to override configuration configurations.
@ -16,7 +16,7 @@ function M.setup(user_data)
if user_data then
if user_data.install_dir then
user_data.install_dir = vim.fs.normalize(user_data.install_dir)
vim.opt.runtimepath:prepend(user_data.install_dir)
vim.o.rtp = user_data.install_dir .. ',' .. vim.o.rtp
end
config = vim.tbl_deep_extend('force', config, user_data)
end
@ -140,8 +140,12 @@ function M.norm_languages(languages, skip)
languages = vim.tbl_filter(
--- @param v string
function(v)
-- TODO(lewis6991): warn of any unknown parsers?
return parsers[v] ~= nil
if parsers[v] ~= nil then
return true
else
require('nvim-treesitter.log').warn('skipping unsupported language: ' .. v)
return false
end
end,
languages
)

View file

@ -7,7 +7,7 @@ local health = vim.health
local M = {}
local NVIM_TREESITTER_MINIMUM_ABI = 13
local TREE_SITTER_MIN_VER = { 0, 25, 0 }
local TREE_SITTER_MIN_VER = { 0, 26, 1 }
---@param name string
---@return table?
@ -95,11 +95,7 @@ local function install_health()
else
health.error('is not writable.')
end
if
vim.iter(vim.api.nvim_list_runtime_paths()):any(function(p)
return installdir == vim.fs.normalize(p) .. '/'
end)
then
if vim.list_contains(vim.api.nvim_list_runtime_paths(), installdir) then
health.ok('is in runtimepath.')
else
health.error('is not in runtimepath.')
@ -148,7 +144,7 @@ function M.check()
end
health.info(vim.fn.trim(out, ' ', 2))
end
health.start(' Legend: H[ighlights], L[ocals], F[olds], I[ndents], In[J]ections')
health.start(' Legend: [H]ighlights, [L]ocals, [F]olds, [I]ndents, In[J]ections')
if #error_collection > 0 then
health.start('The following errors have been detected in query files:')

View file

@ -97,7 +97,31 @@ end
local function system(cmd, opts)
local cwd = opts and opts.cwd or uv.cwd()
log.trace('running job: (cwd=%s) %s', cwd, table.concat(cmd, ' '))
local r = a.await(3, vim.system, cmd, opts) --[[@as vim.SystemCompleted]]
---vim.system throws an error when uv.spawn fails, in particular if cmd or cwd
---does not exist. This kills the coroutine, so the async'ed call simply hangs.
---Instead, we pass a wrapper that catches errors and propagates them as a proper
---`SystemObj`.
---TODO(clason): remove when https://github.com/neovim/neovim/issues/38257 is resolved.
---@param _cmd string[]
---@param _opts vim.SystemOpts
---@param on_exit fun(result: vim.SystemCompleted)
---@return vim.SystemObj?
local function system_wrap(_cmd, _opts, on_exit)
local ok, ret = pcall(vim.system, _cmd, _opts, on_exit)
if not ok then
on_exit({
code = 125,
signal = 0,
stdout = '',
stderr = ret --[[@as string]],
})
return nil
end
return ret --[[@as vim.SystemObj]]
end
local r = a.await(3, system_wrap, cmd, opts) --[[@as vim.SystemCompleted]]
a.schedule()
if r.stdout and r.stdout ~= '' then
log.trace('stdout -> %s', r.stdout)
@ -197,17 +221,13 @@ end
---@param output_dir string
---@return string? err
local function do_download(logger, url, project_name, cache_dir, revision, output_dir)
local is_gitlab = url:find('gitlab.com', 1, true)
local tmp = output_dir .. '-tmp'
rmpath(tmp)
a.schedule()
url = url:gsub('.git$', '')
local target = is_gitlab
and string.format('%s/-/archive/%s/%s-%s.tar.gz', url, revision, project_name, revision)
or string.format('%s/archive/%s.tar.gz', url, revision)
local target = string.format('%s/archive/%s.tar.gz', url, revision)
local tarball_path = fs.joinpath(cache_dir, project_name .. '.tar.gz')
@ -218,6 +238,8 @@ local function do_download(logger, url, project_name, cache_dir, revision, outpu
'--silent',
'--fail',
'--show-error',
'--retry',
'7',
'-L', -- follow redirects
target,
'--output',
@ -304,6 +326,8 @@ local function do_install(logger, compile_location, target_location)
local tempfile = target_location .. tostring(uv.hrtime())
uv_rename(target_location, tempfile) -- parser may be in use: rename...
uv_unlink(tempfile) -- ...and mark for garbage collection
else
uv_unlink(target_location) -- don't disturb existing memory-mapped content
end
local err = uv_copyfile(compile_location, target_location)
@ -487,7 +511,7 @@ end
local function install(languages, options)
options = options or {}
local cache_dir = fs.normalize(fn.stdpath('cache'))
local cache_dir = fs.normalize(fn.stdpath('cache') --[[@as string]])
if not uv.fs_stat(cache_dir) then
fn.mkdir(cache_dir, 'p')
end

View file

@ -2,7 +2,7 @@
return {
ada = {
install_info = {
revision = '6c26c4413965dc7bacbccfa66503bf6b8228e254',
revision = '6b58259a08b1a22ba0247a7ce30be384db618da6',
url = 'https://github.com/briot/tree-sitter-ada',
},
maintainers = { '@briot' },
@ -18,7 +18,7 @@ return {
},
angular = {
install_info = {
revision = '56fffa8c9ea7389cb2237f4a01c4a2058ac64416',
revision = 'f0d0685701b70883fa2dfe94ee7dc27965cab841',
url = 'https://github.com/dlvandenberg/tree-sitter-angular',
},
maintainers = { '@dlvandenberg' },
@ -77,7 +77,7 @@ return {
},
bash = {
install_info = {
revision = '20f55fb9663568f16ebceaac7673d2aa530add46',
revision = 'a06c2e4415e9bc0346c6b86d401879ffb44058f7',
url = 'https://github.com/tree-sitter/tree-sitter-bash',
},
maintainers = { '@TravonteD' },
@ -93,7 +93,7 @@ return {
},
beancount = {
install_info = {
revision = 'b7a2557e6c8cf1dc70a52cece1861522ad3903fc',
revision = 'd7a03a7506fbbbc4b16a9a2054ff7c2b337744b8',
url = 'https://github.com/polarmutex/tree-sitter-beancount',
},
maintainers = { '@polarmutex' },
@ -125,20 +125,12 @@ return {
},
blade = {
install_info = {
revision = 'cc764dadcbbceb3f259396fef66f970c72e94f96',
revision = 'b9436b7b936907aff730de0dac1b99d7c632cc86',
url = 'https://github.com/EmranMR/tree-sitter-blade',
},
maintainers = { '@calebdw' },
tier = 2,
},
blueprint = {
install_info = {
revision = '355ef84ef8a958ac822117b652cf4d49bac16c79',
url = 'https://gitlab.com/gabmus/tree-sitter-blueprint',
},
maintainers = { '@gabmus' },
tier = 2,
},
bp = {
install_info = {
revision = 'ee641d15390183d7535777947ce0f2f1fbcee69f',
@ -148,9 +140,17 @@ return {
readme_note = 'Android Blueprint',
tier = 2,
},
bpftrace = {
install_info = {
revision = '774f4458ad39691336ead1ee361b22434c4cdec7',
url = 'https://github.com/sgruszka/tree-sitter-bpftrace',
},
maintainers = { '@sgruszka' },
tier = 2,
},
brightscript = {
install_info = {
revision = '55168264ea174085d2e91377a33f216190df2f51',
revision = '253fdfaa23814cb46c2d5fc19049fa0f2f62c6da',
url = 'https://github.com/ajdelcimmuto/tree-sitter-brightscript',
},
maintainers = { '@ajdelcimmuto' },
@ -166,7 +166,7 @@ return {
},
c3 = {
install_info = {
revision = '2e852d524cdab2e857ac7fb3ad814b39ae858916',
revision = '24dc1da56e412a59c9d3ee4ffaf55dac58cc1dd4',
url = 'https://github.com/c3lang/tree-sitter-c3',
},
maintainers = { '@cbuttner' },
@ -174,7 +174,7 @@ return {
},
c_sharp = {
install_info = {
revision = '485f0bae0274ac9114797fc10db6f7034e4086e3',
revision = '88366631d598ce6595ec655ce1591b315cffb14c',
url = 'https://github.com/tree-sitter/tree-sitter-c-sharp',
},
maintainers = { '@amaanq' },
@ -185,7 +185,6 @@ return {
revision = '2686186edb61be47960431c93a204fb249681360',
url = 'https://github.com/opa-oz/tree-sitter-caddy',
},
maintainers = { '@opa-oz' },
tier = 3,
},
cairo = {
@ -238,7 +237,7 @@ return {
},
comment = {
install_info = {
revision = 'db922d7809637900089709e07e31b88c42354ec2',
revision = '66272d2b6c73fb61157541b69dd0a7ce7b42a5ad',
url = 'https://github.com/stsewd/tree-sitter-comment',
},
maintainers = { '@stsewd' },
@ -278,7 +277,7 @@ return {
},
cpp = {
install_info = {
revision = '12bd6f7e96080d2e70ec51d4068f2f66120dde35',
revision = '8b5b49eb196bec7040441bee33b2c9a4838d6967',
url = 'https://github.com/tree-sitter/tree-sitter-cpp',
},
maintainers = { '@theHamsta' },
@ -314,7 +313,7 @@ return {
},
cue = {
install_info = {
revision = '770737bcff2c4aa3f624d439e32b07dbb07102d3',
revision = 'be0f609c73cc2929811a9bce0ed90ca71ea87604',
url = 'https://github.com/eonpatapon/tree-sitter-cue',
},
maintainers = { '@amaanq' },
@ -338,7 +337,7 @@ return {
},
dart = {
install_info = {
revision = 'd4d8f3e337d8be23be27ffc35a0aef972343cd54',
revision = '81638dbbdb76a0e88ea8c31b95ec76b9625ddb84',
url = 'https://github.com/UserNobody14/tree-sitter-dart',
},
maintainers = { '@akinsho' },
@ -346,11 +345,11 @@ return {
},
desktop = {
install_info = {
revision = '2d93b616b0c247121dab59590b3182af1a9ecb3b',
revision = 'v1.1.1',
url = 'https://github.com/ValdezFOmar/tree-sitter-desktop',
},
maintainers = { '@ValdezFOmar' },
tier = 2,
tier = 1,
},
devicetree = {
install_info = {
@ -419,7 +418,7 @@ return {
dtd = {
install_info = {
location = 'dtd',
revision = '863dbc381f44f6c136a399e684383b977bb2beaa',
revision = '5000ae8f22d11fbe93939b05c1e37cf21117162d',
url = 'https://github.com/tree-sitter-grammars/tree-sitter-xml',
},
maintainers = { '@ObserverOfTime' },
@ -449,11 +448,11 @@ return {
},
editorconfig = {
install_info = {
revision = 'f08fb1f53130d2c765e45181eae26535e1a7a7f1',
revision = 'v2.0.0',
url = 'https://github.com/ValdezFOmar/tree-sitter-editorconfig',
},
maintainers = { '@ValdezFOmar' },
tier = 2,
tier = 1,
},
eds = {
install_info = {
@ -473,7 +472,7 @@ return {
},
elixir = {
install_info = {
revision = 'd24cecee673c4c770f797bac6f87ae4b6d7ddec5',
revision = '7937d3b4d65fa574163cfa59394515d3c1cf16f4',
url = 'https://github.com/elixir-lang/tree-sitter-elixir',
},
maintainers = { '@connorlay' },
@ -481,7 +480,7 @@ return {
},
elm = {
install_info = {
revision = '027728466b8115cf807517af943cbeaed34053fc',
revision = '6d9511c28181db66daee4e883f811f6251220943',
url = 'https://github.com/elm-tooling/tree-sitter-elm',
},
maintainers = { '@zweimach' },
@ -520,7 +519,7 @@ return {
},
erlang = {
install_info = {
revision = 'a260cb65eaa6e055289a34434f98c3aae6137ed5',
revision = '1d78195c4fbb1fc027eb3e4220427f1eb8bfc89e',
url = 'https://github.com/WhatsApp/tree-sitter-erlang',
},
maintainers = { '@filmor' },
@ -544,7 +543,7 @@ return {
},
fennel = {
install_info = {
revision = 'fd4a24e349bcbac8a03a5a00d0dfa207baf53ca5',
revision = '3f0f6b24d599e92460b969aabc4f4c5a914d15a0',
url = 'https://github.com/alexmozaidze/tree-sitter-fennel',
},
maintainers = { '@alexmozaidze' },
@ -568,7 +567,7 @@ return {
},
fish = {
install_info = {
revision = 'aa074a0bacde8b5823c592574d7138f156a95776',
revision = 'fa2143f5d66a9eb6c007ba9173525ea7aaafe788',
url = 'https://github.com/ram02z/tree-sitter-fish',
},
maintainers = { '@ram02z' },
@ -584,7 +583,7 @@ return {
},
forth = {
install_info = {
revision = '90189238385cf636b9ee99ce548b9e5b5e569d48',
revision = '360ef13f8c609ec6d2e80782af69958b84e36cd0',
url = 'https://github.com/AlexanderBrevig/tree-sitter-forth',
},
maintainers = { '@amaanq' },
@ -592,7 +591,7 @@ return {
},
fortran = {
install_info = {
revision = '8334abca785db3a041292e3b3b818a82a55b238f',
revision = '2880b7aab4fb7cc618de1ef3d4c6d93b2396c031',
url = 'https://github.com/stadelmanma/tree-sitter-fortran',
},
maintainers = { '@amaanq' },
@ -609,7 +608,7 @@ return {
fsharp = {
install_info = {
location = 'fsharp',
revision = '5141851c278a99958469eb1736c7afc4ec738e47',
revision = '2b3c4fae185d5185b5fa1a3d3117cad35f669352',
url = 'https://github.com/ionide/tree-sitter-fsharp',
},
maintainers = { '@nsidorenco' },
@ -623,17 +622,9 @@ return {
maintainers = { '@amaanq' },
tier = 2,
},
fusion = {
install_info = {
revision = '19db2f47ba4c3a0f6238d4ae0e2abfca16e61dd6',
url = 'https://gitlab.com/jirgn/tree-sitter-fusion',
},
maintainers = { '@jirgn' },
tier = 2,
},
gap = {
install_info = {
revision = '2bac14863b76ad0ff6fd7204c50574732acd66df',
revision = 'ed2480d42281586932920527823b307bc45052b8',
url = 'https://github.com/gap-system/tree-sitter-gap',
},
maintainers = { '@reiniscirpons' },
@ -692,7 +683,7 @@ return {
},
gitcommit = {
install_info = {
revision = 'a716678c0f00645fed1e6f1d0eb221481dbd6f6d',
revision = '33fe8548abcc6e374feaac5724b5a2364bf23090',
url = 'https://github.com/gbprod/tree-sitter-gitcommit',
},
maintainers = { '@gbprod' },
@ -708,7 +699,7 @@ return {
},
gleam = {
install_info = {
revision = 'f4d55f3c5b690d4afe8853da892bc290d96deb34',
revision = '6ea757f7eb8d391dbf24dbb9461990757946dd5e',
url = 'https://github.com/gleam-lang/tree-sitter-gleam',
},
maintainers = { '@amaanq' },
@ -716,7 +707,7 @@ return {
},
glimmer = {
install_info = {
revision = 'da605af8c5999b43e6839b575eae5e6cafabb06f',
revision = '88af85568bde3b91acb5d4c352ed094d0c1f9d84',
url = 'https://github.com/ember-tooling/tree-sitter-glimmer',
},
maintainers = { '@NullVoxPopuli' },
@ -810,7 +801,7 @@ return {
},
gotmpl = {
install_info = {
revision = '9e54fa38db26c556c2669492063324ef481c9d43',
revision = '04270cd3512e2c7de0c5f2823725d7b0c4c01fda',
url = 'https://github.com/ngalaiko/tree-sitter-go-template',
},
maintainers = { '@qvalentin' },
@ -850,7 +841,7 @@ return {
},
groovy = {
install_info = {
revision = '86911590a8e46d71301c66468e5620d9faa5b6af',
revision = '781d9cd1b482a70a6b27091e5c9e14bbcab3b768',
url = 'https://github.com/murtaza64/tree-sitter-groovy',
},
maintainers = { '@murtaza64' },
@ -905,7 +896,7 @@ return {
},
hcl = {
install_info = {
revision = 'fad991865fee927dd1de5e172fb3f08ac674d914',
revision = '64ad62785d442eb4d45df3a1764962dafd5bc98b',
url = 'https://github.com/tree-sitter-grammars/tree-sitter-hcl',
},
maintainers = { '@MichaHoffmann' },
@ -922,7 +913,7 @@ return {
helm = {
install_info = {
location = 'dialects/helm',
revision = '9e54fa38db26c556c2669492063324ef481c9d43',
revision = '04270cd3512e2c7de0c5f2823725d7b0c4c01fda',
url = 'https://github.com/ngalaiko/tree-sitter-go-template',
},
maintainers = { '@qvalentin' },
@ -1010,7 +1001,7 @@ return {
},
hyprlang = {
install_info = {
revision = '22723f25f3faf329863d952c9601b492afd971c9',
revision = 'cecd6b748107d9da1f7b4ca03ef95f1f71d93b8f',
url = 'https://github.com/tree-sitter-grammars/tree-sitter-hyprlang',
},
maintainers = { '@luckasRanarison' },
@ -1018,7 +1009,7 @@ return {
},
idl = {
install_info = {
revision = '0c9aa1588cec4c64235ec3ed014ca72aa79e72ca',
revision = 'e07d32972b41cc4c02cfd49f9df2abaa3ae54303',
url = 'https://github.com/cathaysia/tree-sitter-idl',
},
maintainers = { '@cathaysia' },
@ -1033,7 +1024,7 @@ return {
},
ini = {
install_info = {
revision = 'bea223734aa9cea2c8793bf9098bd7fdef912f57',
revision = 'e4018b5176132b4f3c5d6e61cea383f42288d0f5',
url = 'https://github.com/justinmk/tree-sitter-ini',
},
maintainers = { '@theHamsta' },
@ -1041,11 +1032,11 @@ return {
},
inko = {
install_info = {
revision = '9d7ed4f6c0ea2a8f846f3bb00e33ab21ec9ca379',
revision = 'v0.5.1',
url = 'https://github.com/inko-lang/tree-sitter-inko',
},
maintainers = { '@yorickpeterse' },
tier = 2,
tier = 1,
},
ispc = {
install_info = {
@ -1058,7 +1049,7 @@ return {
},
janet_simple = {
install_info = {
revision = '7e28cbf1ca061887ea43591a2898001f4245fddf',
revision = 'd183186995204314700be3e9e0a48053ea16b350',
url = 'https://github.com/sogaiu/tree-sitter-janet-simple',
},
maintainers = { '@sogaiu' },
@ -1074,7 +1065,7 @@ return {
},
javadoc = {
install_info = {
revision = '2533affe83e57df9b0dbf7350cd73a84af9811b3',
revision = '42c9bc340c90ec15ed96eb4314269e8249376be9',
url = 'https://github.com/rmuir/tree-sitter-javadoc',
},
maintainers = { '@rmuir' },
@ -1092,7 +1083,7 @@ return {
jinja = {
install_info = {
location = 'tree-sitter-jinja',
revision = 'e589222a1ad44361bc376d5abdccd08e1fecfee5',
revision = '7bd0422c6a57aaabfee8603502d7708d0a536f5f',
url = 'https://github.com/cathaysia/tree-sitter-jinja',
},
maintainers = { '@cathaysia' },
@ -1103,7 +1094,7 @@ return {
jinja_inline = {
install_info = {
location = 'tree-sitter-jinja_inline',
revision = 'e589222a1ad44361bc376d5abdccd08e1fecfee5',
revision = '7bd0422c6a57aaabfee8603502d7708d0a536f5f',
url = 'https://github.com/cathaysia/tree-sitter-jinja',
},
maintainers = { '@cathaysia' },
@ -1142,15 +1133,6 @@ return {
maintainers = { '@Joakker' },
tier = 2,
},
jsonc = {
install_info = {
revision = '02b01653c8a1c198ae7287d566efa86a135b30d5',
url = 'https://gitlab.com/WhyNotHugo/tree-sitter-jsonc',
},
maintainers = { '@WhyNotHugo' },
requires = { 'json' },
tier = 2,
},
jsonnet = {
install_info = {
revision = 'ddd075f1939aed8147b7aa67f042eda3fce22790',
@ -1166,7 +1148,7 @@ return {
},
julia = {
install_info = {
revision = '5a5d3082e13edd5afc4c274498d6125ecc914870',
revision = '8454f266717232525ed03c7b09164b0404a03150',
url = 'https://github.com/tree-sitter-grammars/tree-sitter-julia',
},
maintainers = { '@clason' },
@ -1174,7 +1156,7 @@ return {
},
just = {
install_info = {
revision = 'bb0c898a80644de438e6efe5d88d30bf092935cd',
revision = '60df3d5b3fda2a22fdb3621226cafab50b763663',
url = 'https://github.com/IndianBoy42/tree-sitter-just',
},
maintainers = { '@Hubro' },
@ -1206,18 +1188,25 @@ return {
},
kitty = {
install_info = {
revision = '2e9b602ca676cac63887cca5a4535106f3475c82',
revision = 'fa6ab3fd32d890a0217495c96b35761e6d2dcb5b',
url = 'https://github.com/OXY2DEV/tree-sitter-kitty',
},
maintainers = { '@OXY2DEV' },
tier = 2,
},
kos = {
install_info = {
revision = '03b261c1a78b71c38cf4616497f253c4a4ce118b',
url = 'https://github.com/kos-lang/tree-sitter-kos',
},
maintainers = { '@cdragan' },
tier = 2,
},
kotlin = {
install_info = {
revision = '57fb4560ba8641865bc0baa6b3f413b236112c4c',
revision = 'a1760ba7178fe76515e7cfe7577deae2335fa57d',
url = 'https://github.com/fwcd/tree-sitter-kotlin',
},
maintainers = { '@SalBakraa' },
tier = 2,
},
koto = {
@ -1238,7 +1227,7 @@ return {
},
lalrpop = {
install_info = {
revision = '8d38e9755c05d37df8a24dadb0fc64f6588ac188',
revision = '27b0f7bb55b4cabd8f01a933d9ee6a49dbfc2192',
url = 'https://github.com/traxys/tree-sitter-lalrpop',
},
maintainers = { '@traxys' },
@ -1255,7 +1244,7 @@ return {
},
ledger = {
install_info = {
revision = '96c92d4908a836bf8f661166721c98439f8afb80',
revision = '2edce0372079896c810c7b218587f2b3fbb7a086',
url = 'https://github.com/cbarrete/tree-sitter-ledger',
},
maintainers = { '@cbarrete' },
@ -1279,7 +1268,7 @@ return {
},
liquid = {
install_info = {
revision = 'd6ebde3974742cd1b61b55d1d94aab1dacb41056',
revision = 'fa11c7ba45038b61e03a8a00ad667fb5f3d72088',
url = 'https://github.com/hankthetank27/tree-sitter-liquid',
},
maintainers = { '@hankthetank27' },
@ -1287,7 +1276,7 @@ return {
},
liquidsoap = {
install_info = {
revision = '4de01f44de2c051c33832ce523cf44690561320d',
revision = '0169d92b0a93e9f32289533ef23abdafca579e56',
url = 'https://github.com/savonet/tree-sitter-liquidsoap',
},
maintainers = { '@toots' },
@ -1303,7 +1292,7 @@ return {
},
lua = {
install_info = {
revision = 'd76023017f7485eae629cb60d406c7a1ca0f40c9',
revision = '10fe0054734eec83049514ea2e718b2a56acd0c9',
url = 'https://github.com/tree-sitter-grammars/tree-sitter-lua',
},
maintainers = { '@muniftanjim' },
@ -1345,8 +1334,8 @@ return {
},
make = {
install_info = {
revision = 'a4b9187417d6be349ee5fd4b6e77b4172c6827dd',
url = 'https://github.com/alemuller/tree-sitter-make',
revision = '70613f3d812cbabbd7f38d104d60a409c4008b43',
url = 'https://github.com/tree-sitter-grammars/tree-sitter-make',
},
maintainers = { '@lewis6991' },
tier = 2,
@ -1354,7 +1343,7 @@ return {
markdown = {
install_info = {
location = 'tree-sitter-markdown',
revision = '2dfd57f547f06ca5631a80f601e129d73fc8e9f0',
revision = 'f969cd3ae3f9fbd4e43205431d0ae286014c05b5',
url = 'https://github.com/tree-sitter-grammars/tree-sitter-markdown',
},
maintainers = { '@MDeiml' },
@ -1365,7 +1354,7 @@ return {
markdown_inline = {
install_info = {
location = 'tree-sitter-markdown-inline',
revision = '2dfd57f547f06ca5631a80f601e129d73fc8e9f0',
revision = 'f969cd3ae3f9fbd4e43205431d0ae286014c05b5',
url = 'https://github.com/tree-sitter-grammars/tree-sitter-markdown',
},
maintainers = { '@MDeiml' },
@ -1374,7 +1363,7 @@ return {
},
matlab = {
install_info = {
revision = '1bccabdbd420a9c3c3f96f36d7f9e65b3d9c88ef',
revision = 'c2390a59016f74e7d5f75ef09510768b4f30217e',
url = 'https://github.com/acristoffers/tree-sitter-matlab',
},
maintainers = { '@acristoffers' },
@ -1397,7 +1386,7 @@ return {
},
meson = {
install_info = {
revision = '280b6e59186f18528bab1567f5cc43b78b9cd881',
revision = 'c84f3540624b81fc44067030afce2ff78d6ede05',
url = 'https://github.com/tree-sitter-grammars/tree-sitter-meson',
},
maintainers = { '@Decodetalkers' },
@ -1406,7 +1395,7 @@ return {
mlir = {
install_info = {
generate = true,
revision = '80ac665f68a5d1c6ca0443f71b6cd60e24e84157',
revision = '1cff1bf79135f8effef87d7cee9d3b26d1970ee9',
url = 'https://github.com/artagnon/tree-sitter-mlir',
},
maintainers = { '@artagnon' },
@ -1430,7 +1419,7 @@ return {
},
nginx = {
install_info = {
revision = '989da760be05a3334af3ec88705cbf57e6a9c41d',
revision = '47ade644d754cce57974aac44d2c9450e823d4f4',
url = 'https://github.com/opa-oz/tree-sitter-nginx',
},
maintainers = { '@opa-oz' },
@ -1438,14 +1427,14 @@ return {
},
nickel = {
install_info = {
revision = 'a0a5d98a6f0edb5d00a18e62e7d1d02a5607c391',
revision = 'b5b6cc3bc7b9ea19f78fed264190685419cd17a8',
url = 'https://github.com/nickel-lang/tree-sitter-nickel',
},
tier = 2,
},
nim = {
install_info = {
revision = '4ad352773688deb84a95eeaa9872acda5b466439',
revision = '9b4ede21a6ca866d29263f6b66c070961bc622b4',
url = 'https://github.com/alaviss/tree-sitter-nim',
},
maintainers = { '@aMOPel' },
@ -1470,10 +1459,10 @@ return {
},
nix = {
install_info = {
revision = 'bfcb03e6ddccc5a1eb84cea0176096f85a7af333',
revision = 'eabf96807ea4ab6d6c7f09b671a88cd483542840',
url = 'https://github.com/nix-community/tree-sitter-nix',
},
maintainers = { '@leo60228', '@zimbatm' },
maintainers = { '@leo60228', '@mrcjkb', '@zimbatm' },
tier = 2,
},
nqc = {
@ -1486,7 +1475,7 @@ return {
},
nu = {
install_info = {
revision = '47d4b4f5369c0cae866724758ae88ef07e10e4f1',
revision = 'f4793e3809bb84e78dee260b47085d8203a58d88',
url = 'https://github.com/nushell/tree-sitter-nu',
},
maintainers = { '@abhisheksingh0x558' },
@ -1547,7 +1536,7 @@ return {
},
pascal = {
install_info = {
revision = '5054931bcd022860dd5936864f981e359fb63aef',
revision = '042119eca2e18a60e56317fb06ee3ba5c32cb447',
url = 'https://github.com/Isopod/tree-sitter-pascal',
},
maintainers = { '@Isopod' },
@ -1581,7 +1570,7 @@ return {
php = {
install_info = {
location = 'php',
revision = '7d07b41ce2d442ca9a90ed85d0075eccc17ae315',
revision = '015ce839db5ae9ceda763bf12e071867fbe8cc89',
url = 'https://github.com/tree-sitter/tree-sitter-php',
},
maintainers = { '@tk-shirasaka', '@calebdw' },
@ -1592,7 +1581,7 @@ return {
php_only = {
install_info = {
location = 'php_only',
revision = '7d07b41ce2d442ca9a90ed85d0075eccc17ae315',
revision = '015ce839db5ae9ceda763bf12e071867fbe8cc89',
url = 'https://github.com/tree-sitter/tree-sitter-php',
},
maintainers = { '@tk-shirasaka', '@calebdw' },
@ -1601,7 +1590,7 @@ return {
},
phpdoc = {
install_info = {
revision = '03bb10330704b0b371b044e937d5cc7cd40b4999',
revision = '12d50307e6c02e5f4f876fa6cf2edea1f7808c0d',
url = 'https://github.com/claytonrcarter/tree-sitter-phpdoc',
},
maintainers = { '@mikehaertl' },
@ -1617,7 +1606,7 @@ return {
},
pkl = {
install_info = {
revision = '82f0e990b727374014371681457cc6ea5c3daa97',
revision = '7c8a0d15d83c1a436e91277d5023340f1ae5726b',
url = 'https://github.com/apple/tree-sitter-pkl',
},
maintainers = { '@ribru17' },
@ -1660,7 +1649,7 @@ return {
powershell = {
filetype = 'ps1',
install_info = {
revision = '9379c77984af1f3d3d7e3cc5e897de3496725280',
revision = 'b881dfbe71a770ea37d434c80d3523091b81f6db',
url = 'https://github.com/airbus-cert/tree-sitter-powershell',
},
maintainers = { '@L2jLiga' },
@ -1720,10 +1709,10 @@ return {
},
proto = {
install_info = {
revision = 'e9f6b43f6844bd2189b50a422d4e2094313f6aa3',
url = 'https://github.com/treywood/tree-sitter-proto',
revision = 'eacb7f162e35a18a0dd8ce734f7e7baf2a8398ca',
url = 'https://github.com/coder3101/tree-sitter-proto',
},
maintainers = { '@treywood' },
maintainers = { '@stefanvanburen' },
tier = 2,
},
prql = {
@ -1812,7 +1801,7 @@ return {
},
query = {
install_info = {
revision = 'a225e21d81201be77da58de614e2b7851735677a',
revision = 'fc5409c6820dd5e02b0b0a309d3da2bfcde2db17',
url = 'https://github.com/tree-sitter-grammars/tree-sitter-query',
},
maintainers = { '@steelsojka' },
@ -1829,7 +1818,7 @@ return {
},
racket = {
install_info = {
revision = '130e76536bd3a45df7b7fd71cfa3d0df25fcfe8e',
revision = '56b57807f86aa4ddb14892572b318edd4bc90ebe',
url = 'https://github.com/6cdh/tree-sitter-racket',
},
tier = 2,
@ -1892,7 +1881,7 @@ return {
},
rego = {
install_info = {
revision = '20b5a5958c837bc9f74b231022a68a594a313f6d',
revision = 'ddd39af81fe8b0288102a7cb97959dfce723e0f3',
url = 'https://github.com/FallenAngel97/tree-sitter-rego',
},
maintainers = { '@FallenAngel97' },
@ -1909,7 +1898,7 @@ return {
},
rescript = {
install_info = {
revision = 'd2df8a285fff95de56a91d2f8152aeceb66f40ef',
revision = '43c2f1f35024918d415dc933d4cc534d6419fedf',
url = 'https://github.com/rescript-lang/tree-sitter-rescript',
},
maintainers = { '@ribru17' },
@ -1917,7 +1906,7 @@ return {
},
rifleconf = {
install_info = {
revision = 'fe10eab6cacff239ec61f4456e793bed15703aaf',
revision = '6389ef0fc0d48f0397ec233109c074a0cb685e36',
url = 'https://github.com/purarue/tree-sitter-rifleconf',
},
maintainers = { '@purarue' },
@ -1933,15 +1922,14 @@ return {
},
robot = {
install_info = {
revision = 'e34def7cb0d8a66a59ec5057fe17bb4e6b17b56a',
revision = 'v1.3.0',
url = 'https://github.com/Hubro/tree-sitter-robot',
},
maintainers = { '@Hubro' },
tier = 2,
tier = 3,
},
robots = {
robots_txt = {
install_info = {
revision = '8e3a4205b76236bb6dbebdbee5afc262ce38bb62',
revision = '0c066107e3548de79316a6a4ec771e2f7cf7c468',
url = 'https://github.com/opa-oz/tree-sitter-robots-txt',
},
maintainers = { '@opa-oz' },
@ -1952,8 +1940,7 @@ return {
revision = '40e52f343f1b1f270d6ecb2ca898ca9b8cba6936',
url = 'https://github.com/faldor20/tree-sitter-roc',
},
maintainers = { '@nat-418' },
tier = 2,
tier = 3,
},
ron = {
install_info = {
@ -1973,7 +1960,7 @@ return {
},
ruby = {
install_info = {
revision = '89bd7a8e5450cb6a942418a619d30469f259e5d6',
revision = 'ad907a69da0c8a4f7a943a7fe012712208da6dee',
url = 'https://github.com/tree-sitter/tree-sitter-ruby',
},
maintainers = { '@TravonteD' },
@ -1997,7 +1984,7 @@ return {
},
scala = {
install_info = {
revision = '97aead18d97708190a51d4f551ea9b05b60641c9',
revision = '14c5cfd2b8e0f057ba0f4f72ee4812b0ae6cdce3',
url = 'https://github.com/tree-sitter/tree-sitter-scala',
},
maintainers = { '@stevanmilic' },
@ -2013,7 +2000,7 @@ return {
},
scheme = {
install_info = {
revision = '591893b9a8b9ec85f5cef86e0cc1028012ad9f0e',
revision = '8004e59a1d17ca670aa34d09021c8499fdefaf61',
url = 'https://github.com/6cdh/tree-sitter-scheme',
},
tier = 2,
@ -2056,7 +2043,7 @@ return {
},
slint = {
install_info = {
revision = '927f3e2f0213d0eea7f12c978c81067c3dc4289d',
revision = '4d7ad0617c30f865f051bbac04a9826bea29f987',
url = 'https://github.com/slint-ui/tree-sitter-slint',
},
maintainers = { '@hunger' },
@ -2097,7 +2084,7 @@ return {
},
solidity = {
install_info = {
revision = '4e938a46c7030dd001bc99e1ac0f0c750ac98254',
revision = '048fe686cb1fde267243739b8bdbec8fc3a55272',
url = 'https://github.com/JoranHonig/tree-sitter-solidity',
},
maintainers = { '@amaanq' },
@ -2148,7 +2135,7 @@ return {
sql = {
install_info = {
branch = 'gh-pages',
revision = '0a3d963f48bf34d2765301f92ea525b4c5103696',
revision = '851e9cb257ba7c66cc8c14214a31c44d2f1e954e',
url = 'https://github.com/derekstride/tree-sitter-sql',
},
maintainers = { '@derekstride' },
@ -2180,7 +2167,7 @@ return {
},
strace = {
install_info = {
revision = 'd819cdd5dbe455bd3c859193633c8d91c0df7c36',
revision = 'ac874ddfcc08d689fee1f4533789e06d88388f29',
url = 'https://github.com/sigmaSd/tree-sitter-strace',
},
maintainers = { '@amaanq' },
@ -2196,10 +2183,10 @@ return {
},
supercollider = {
install_info = {
revision = '76b3cab1773f08bb7d3a185420b0a44c6da8c294',
revision = 'e2d1480de0a62cd53f81645cb39bc1f3fa2dce5a',
url = 'https://github.com/madskjeldgaard/tree-sitter-supercollider',
},
maintainers = { '@madskjeldgaard' },
maintainers = { '@madskjeldgaard', '@elgiano' },
tier = 2,
},
superhtml = {
@ -2239,7 +2226,7 @@ return {
swift = {
install_info = {
generate = true,
revision = '78d84ef82c387fceeb6094038da28717ea052e39',
revision = '30e18c7b0210b33ffd6e8a7028e170a9dc90825b',
url = 'https://github.com/alex-pinkus/tree-sitter-swift',
},
maintainers = { '@alex-pinkus' },
@ -2263,7 +2250,7 @@ return {
},
systemverilog = {
install_info = {
revision = '7c4b01b7df2f6e7fa1f698c9d30ac8f93af18ed2',
revision = '293928578cb27fbd0005fcc5f09c09a1e8628c89',
url = 'https://github.com/gmlarumbe/tree-sitter-systemverilog',
},
maintainers = { '@zhangwwpeng' },
@ -2271,7 +2258,7 @@ return {
},
t32 = {
install_info = {
revision = 'c3f72e1786b3440b98cb1b082c13c9033e1d08a9',
revision = '3bce3977303c3f88bfa9fcdfcfd1a4f8f6ffa0b0',
url = 'https://github.com/xasc/tree-sitter-t32',
},
maintainers = { '@xasc' },
@ -2312,7 +2299,7 @@ return {
},
templ = {
install_info = {
revision = '1975f67058325403c5412cde48b181a3fa817870',
revision = '1c6db04effbcd7773c826bded9783cbc3061bd55',
url = 'https://github.com/vrischmann/tree-sitter-templ',
},
maintainers = { '@vrischmann' },
@ -2320,7 +2307,7 @@ return {
},
tera = {
install_info = {
revision = '692937d52c8dfd91ce0dde722b9b4febbc9bc712',
revision = '3a38c368e806268daac9923a27e72bcafbbc16bb',
url = 'https://github.com/uncenter/tree-sitter-tera',
},
maintainers = { '@uncenter' },
@ -2329,7 +2316,7 @@ return {
terraform = {
install_info = {
location = 'dialects/terraform',
revision = 'fad991865fee927dd1de5e172fb3f08ac674d914',
revision = '64ad62785d442eb4d45df3a1764962dafd5bc98b',
url = 'https://github.com/MichaHoffmann/tree-sitter-hcl',
},
maintainers = { '@MichaHoffmann' },
@ -2362,7 +2349,7 @@ return {
},
tlaplus = {
install_info = {
revision = '2d831940c782850f64dabf5b7b17e9e51f7f0ebb',
revision = 'add40814fda369f6efd989977b2c498aaddde984',
url = 'https://github.com/tlaplus-community/tree-sitter-tlaplus',
},
maintainers = { '@ahelwer', '@susliko' },
@ -2439,7 +2426,7 @@ return {
},
typespec = {
install_info = {
revision = '814c98283fd92a248ba9d49ebfe61bc672a35875',
revision = '395bef1e1eb4dd18365401642beb534e8a244056',
url = 'https://github.com/happenslol/tree-sitter-typespec',
},
maintainers = { '@happenslol' },
@ -2447,7 +2434,7 @@ return {
},
typoscript = {
install_info = {
revision = '5d8fde870b0ded1f429ba5bb249a9d9f8589ff5f',
revision = '1811c767f3f72be669891b524a07c58b1eb0db87',
url = 'https://github.com/Teddytrombone/tree-sitter-typoscript',
},
maintainers = { '@Teddytrombone' },
@ -2480,7 +2467,7 @@ return {
unison = {
install_info = {
generate = true,
revision = '169e7f748a540ec360c0cb086b448faad012caa4',
revision = '10365cc70ab2b2de85ea7ab35cf6b7636c36ce8b',
url = 'https://github.com/kylegoetz/tree-sitter-unison',
},
maintainers = { '@tapegram' },
@ -2505,7 +2492,7 @@ return {
v = {
install_info = {
location = 'tree_sitter_v',
revision = '236d51bba1bccd57fd2950956fbffe5fe0248735',
revision = '095865df4b9ddd21e376d635586c663d5a736f71',
url = 'https://github.com/vlang/v-analyzer',
},
maintainers = { '@kkharji', '@amaanq' },
@ -2521,15 +2508,14 @@ return {
},
vento = {
install_info = {
revision = '3b32474bc29584ea214e4e84b47102408263fe0e',
revision = 'edd6596d4b0f392b87fc345dc26d84a6c32f7059',
url = 'https://github.com/ventojs/tree-sitter-vento',
},
maintainers = { '@wrapperup', '@oscarotero' },
tier = 2,
tier = 3,
},
vhdl = {
install_info = {
revision = '0c25aa064dc489ec5291e4879fa7ed41cf5fe680',
revision = '58114f35d0865e348692256bfc5ae661fc1efb0c',
url = 'https://github.com/jpt13653903/tree-sitter-vhdl',
},
maintainers = { '@jpt13653903' },
@ -2545,7 +2531,7 @@ return {
},
vim = {
install_info = {
revision = '3dd4747082d1b717b8978211c06ef7b6cd16125b',
revision = '3092fcd99eb87bbd0fc434aa03650ba58bd5b43b',
url = 'https://github.com/tree-sitter-grammars/tree-sitter-vim',
},
maintainers = { '@clason' },
@ -2553,7 +2539,7 @@ return {
},
vimdoc = {
install_info = {
revision = '5cb043a38ff04cadb6b8e6688aabbf34edd0c3e3',
revision = 'f061895a0eff1d5b90e4fb60d21d87be3267031a',
url = 'https://github.com/neovim/tree-sitter-vimdoc',
},
maintainers = { '@clason' },
@ -2570,7 +2556,7 @@ return {
vue = {
install_info = {
branch = 'main',
revision = '22bdfa6c9fc0f5ffa44c6e938ec46869ac8a99ff',
revision = 'ce8011a414fdf8091f4e4071752efc376f4afb08',
url = 'https://github.com/tree-sitter-grammars/tree-sitter-vue',
},
maintainers = { '@WhyNotHugo', '@lucario387' },
@ -2603,7 +2589,7 @@ return {
},
wit = {
install_info = {
revision = 'v1.2.0',
revision = 'v1.3.0',
url = 'https://github.com/bytecodealliance/tree-sitter-wit',
},
maintainers = { '@mkatychev' },
@ -2628,7 +2614,7 @@ return {
xml = {
install_info = {
location = 'xml',
revision = '863dbc381f44f6c136a399e684383b977bb2beaa',
revision = '5000ae8f22d11fbe93939b05c1e37cf21117162d',
url = 'https://github.com/tree-sitter-grammars/tree-sitter-xml',
},
maintainers = { '@ObserverOfTime' },
@ -2637,15 +2623,15 @@ return {
},
xresources = {
install_info = {
revision = 'd466418f1c8850276bb7787a135372cb70868b1d',
revision = 'v1.0.0',
url = 'https://github.com/ValdezFOmar/tree-sitter-xresources',
},
maintainers = { '@ValdezFOmar' },
tier = 2,
tier = 1,
},
yaml = {
install_info = {
revision = '7708026449bed86239b1cd5bce6e3c34dbca6415',
revision = '4463985dfccc640f3d6991e3396a2047610cf5f8',
url = 'https://github.com/tree-sitter-grammars/tree-sitter-yaml',
},
maintainers = { '@amaanq' },
@ -2701,10 +2687,10 @@ return {
},
zsh = {
install_info = {
revision = 'v0.48.0',
revision = '5aa8b258cc81a5ac1b76faf7dfc1a11dad300830',
url = 'https://github.com/georgeharker/tree-sitter-zsh',
},
maintainers = { '@georgeharker' },
tier = 1,
tier = 2,
},
}

View file

@ -2,7 +2,7 @@ local filetypes = {
angular = { 'htmlangular' },
bash = { 'sh' },
bibtex = { 'bib' },
c_sharp = { 'cs', 'csharp', 'c-sharp' },
c_sharp = { 'cs', 'csharp' },
commonlisp = { 'lisp' },
cooklang = { 'cook' },
devicetree = { 'dts' },
@ -24,6 +24,7 @@ local filetypes = {
ini = { 'confini', 'dosini' },
janet_simple = { 'janet' },
javascript = { 'javascriptreact', 'ecma', 'ecmascript', 'jsx', 'js' },
json = { 'jsonc' },
glimmer_javascript = { 'javascript.glimmer' },
latex = { 'tex' },
linkerscript = { 'ld' },

View file

@ -2,6 +2,8 @@
(identifier) @variable
(style_unit) @variable
(pipe_operator) @operator
(string) @string
@ -26,6 +28,12 @@
(binding_name
(identifier) @keyword)
(class_binding
[
(identifier)
(class_name)
] @keyword)
(event_binding
(binding_name
(identifier) @keyword))

View file

@ -105,21 +105,6 @@
(special_variable_name) @constant
; trap -l
((word) @constant.builtin
(#any-of? @constant.builtin
"SIGHUP" "SIGINT" "SIGQUIT" "SIGILL" "SIGTRAP" "SIGABRT" "SIGBUS" "SIGFPE" "SIGKILL" "SIGUSR1"
"SIGSEGV" "SIGUSR2" "SIGPIPE" "SIGALRM" "SIGTERM" "SIGSTKFLT" "SIGCHLD" "SIGCONT" "SIGSTOP"
"SIGTSTP" "SIGTTIN" "SIGTTOU" "SIGURG" "SIGXCPU" "SIGXFSZ" "SIGVTALRM" "SIGPROF" "SIGWINCH"
"SIGIO" "SIGPWR" "SIGSYS" "SIGRTMIN" "SIGRTMIN+1" "SIGRTMIN+2" "SIGRTMIN+3" "SIGRTMIN+4"
"SIGRTMIN+5" "SIGRTMIN+6" "SIGRTMIN+7" "SIGRTMIN+8" "SIGRTMIN+9" "SIGRTMIN+10" "SIGRTMIN+11"
"SIGRTMIN+12" "SIGRTMIN+13" "SIGRTMIN+14" "SIGRTMIN+15" "SIGRTMAX-14" "SIGRTMAX-13"
"SIGRTMAX-12" "SIGRTMAX-11" "SIGRTMAX-10" "SIGRTMAX-9" "SIGRTMAX-8" "SIGRTMAX-7" "SIGRTMAX-6"
"SIGRTMAX-5" "SIGRTMAX-4" "SIGRTMAX-3" "SIGRTMAX-2" "SIGRTMAX-1" "SIGRTMAX"))
((word) @boolean
(#any-of? @boolean "true" "false"))
(comment) @comment @spell
(test_operator) @operator
@ -182,6 +167,30 @@
(word) @variable.parameter)
])
; help trap
(command
name: (command_name
(word) @_command)
argument: (word) @string.special
(#eq? @_command "trap")
(#any-of? @string.special "EXIT" "DEBUG" "RETURN" "ERR"))
; trap -l
(command
name: (command_name
(word) @_command)
argument: (word) @string.special
(#any-of? @_command "trap" "kill")
(#any-of? @string.special
"SIGHUP" "SIGINT" "SIGQUIT" "SIGILL" "SIGTRAP" "SIGABRT" "SIGBUS" "SIGFPE" "SIGKILL" "SIGUSR1"
"SIGSEGV" "SIGUSR2" "SIGPIPE" "SIGALRM" "SIGTERM" "SIGSTKFLT" "SIGCHLD" "SIGCONT" "SIGSTOP"
"SIGTSTP" "SIGTTIN" "SIGTTOU" "SIGURG" "SIGXCPU" "SIGXFSZ" "SIGVTALRM" "SIGPROF" "SIGWINCH"
"SIGIO" "SIGPWR" "SIGSYS" "SIGRTMIN" "SIGRTMIN+1" "SIGRTMIN+2" "SIGRTMIN+3" "SIGRTMIN+4"
"SIGRTMIN+5" "SIGRTMIN+6" "SIGRTMIN+7" "SIGRTMIN+8" "SIGRTMIN+9" "SIGRTMIN+10" "SIGRTMIN+11"
"SIGRTMIN+12" "SIGRTMIN+13" "SIGRTMIN+14" "SIGRTMIN+15" "SIGRTMAX-14" "SIGRTMAX-13"
"SIGRTMAX-12" "SIGRTMAX-11" "SIGRTMAX-10" "SIGRTMAX-9" "SIGRTMAX-8" "SIGRTMAX-7" "SIGRTMAX-6"
"SIGRTMAX-5" "SIGRTMAX-4" "SIGRTMAX-3" "SIGRTMAX-2" "SIGRTMAX-1" "SIGRTMAX"))
(declaration_command
(word) @variable.parameter)
@ -190,9 +199,6 @@
(number) @number
((word) @number
(#lua-match? @number "^[0-9]+$"))
(file_redirect
(word) @string.special.path)

View file

@ -0,0 +1,32 @@
[
(if_statement)
(for_statement)
(while_statement)
(case_statement)
(function_definition)
(compound_statement)
(subshell)
(command_substitution)
(do_group)
(case_item)
] @indent.begin
[
"fi"
"done"
"esac"
"}"
")"
"then"
"do"
(elif_clause)
(else_clause)
] @indent.branch
[
"fi"
"done"
"esac"
"}"
")"
] @indent.end

View file

@ -76,3 +76,15 @@
(#offset! @injection.content 0 1 0 -1)
(#set! injection.include-children)
(#set! injection.language "readline"))
((command
name: (command_name) @_command
.
argument: [
(string)
(raw_string)
] @injection.content)
(#eq? @_command "trap")
(#offset! @injection.content 0 1 0 -1)
(#set! injection.include-children)
(#set! injection.self))

View file

@ -1,75 +0,0 @@
(object_id) @variable
(string) @string
(escape_sequence) @string.escape
(comment) @comment @spell
(constant) @constant.builtin
(boolean) @boolean
(using) @keyword.import
(template) @keyword
(decorator) @attribute
(property_definition
(property_name) @property)
(object) @type
(signal_binding
(signal_name) @function.builtin)
(signal_binding
(function
(identifier)) @function)
(signal_binding
"swapped" @keyword)
(styles_list
"styles" @function.macro)
(layout_definition
"layout" @function.macro)
(gettext_string
"_" @function.builtin)
(menu_definition
"menu" @keyword)
(menu_section
"section" @keyword)
(menu_item
"item" @function.macro)
(import_statement
(gobject_library) @module)
(import_statement
(version_number) @number.float)
(float) @number.float
(number) @number
[
";"
"."
","
] @punctuation.delimiter
[
"("
")"
"["
"]"
"{"
"}"
] @punctuation.bracket

View file

@ -0,0 +1,229 @@
; Comments
[
(line_comment)
(block_comment)
] @comment @spell
; String and numeric literals
(string_literal) @string
(escape_sequence) @string.escape
(integer_literal) @number
(boolean_literal) @boolean
; Variables
(identifier) @variable
(args_keyword) @variable.builtin
(argn_identifier) @variable.builtin
(retval_identifier) @variable.builtin
(scratch_variable) @variable
(map_variable) @variable
(script_parameter) @variable.parameter
; Macro
(macro_definition
(identifier) @function.macro)
; Probes
; fentry/fexit, kprobe/kretprobe, rawtracepoint
(probe
provider: (_) @type.builtin
module: (wildcard_identifier) @module
function: (wildcard_identifier) @property)
(probe
provider: (_) @type.builtin
function: (wildcard_identifier) @property)
; uprobe/uretprobe
(probe
provider: (uprobe_uretprobe_provider) @type.builtin
binary: (file_identifier) @string.special.path
function: (identifier) @property)
; tracepoint
(probe
provider: (_) @type.builtin
subsys: (wildcard_identifier) @module
event: (wildcard_identifier) @property)
; software/hardware
(probe
provider: (_) @type.builtin
event: (identifier_with_dash) @property
count: (integer_literal) @number)
(probe
provider: (_) @type.builtin
event: (identifier_with_dash) @property)
; bench/test
(probe
provider: (bench_test_provider) @type.builtin
function: (identifier) @property)
; profile/interval
(probe
provider: (profile_interval_provider) @type.builtin
unit: (time_unit) @string.special
count: (integer_literal) @property)
(probe
provider: (profile_interval_provider) @type.builtin
count: (integer_literal) @number)
; iter
(probe
provider: (iter_provider) @type.builtin
object: (identifier) @module
pin: (file_identifier) @property)
(probe
provider: (iter_provider) @type.builtin
object: (identifier) @module)
; ustd
(probe
provider: (ustd_provider) @type.builtin
binary: (file_identifier) @string.special.path
namespace: (identifier) @variable
function: (identifier) @property)
(probe
provider: (ustd_provider) @type.builtin
binary: (file_identifier) @string.special.path
function: (identifier) @property)
; watchpoint/asyncwatchpoint
(probe
provider: (watchpoint_provider) @type.builtin
address: (integer_literal) @number
length: (integer_literal) @number
mode: (watchpoint_mode) @property)
; Types
(type_specifier) @type
(integer_type) @type.builtin
[
"BEGIN"
"begin"
"END"
"end"
] @type.builtin
; Keywords
(hashbang) @keyword.directive
(return_statement) @keyword.return
[
"config"
"let"
"macro"
"offsetof"
"sizeof"
] @keyword
[
"if"
"else"
] @keyword.conditional
[
"for"
"unroll"
"while"
(break_statement)
(continue_statement)
] @keyword.repeat
"import" @keyword.import
(field_expression
field: (identifier) @property)
(call_expression
function: (identifier) @function.call)
; Punctuations
[
"("
")"
"["
"]"
"{"
"}"
] @punctuation.bracket
[
","
";"
":"
"."
] @punctuation.delimiter
; Operators
[
; Field access
"->"
; Range
".."
; Assignment
"="
"<<="
">>="
"+="
"-="
"*="
"/="
"%="
"&="
"|="
"^="
; Update
"--"
"++"
; Arithmetic
"%"
"+"
"-"
"*"
"/"
; Relational
"<="
"<"
">="
">"
"=="
"!="
; Bitwise
"&"
"^"
"|"
"~"
"<<"
">>"
; Logical
"&&"
"||"
"!"
] @operator
(conditional_expression
[
"?"
":"
] @keyword.conditional.ternary)
(predicate
"/" @punctuation.delimiter)

View file

@ -0,0 +1,12 @@
([
(c_struct)
(c_preproc)
(c_preproc_block)
] @injection.content
(#set! injection.language "c"))
([
(line_comment)
(block_comment)
] @injection.content
(#set! injection.language "comment"))

View file

@ -106,6 +106,7 @@
"$if"
"$include"
"$is_const"
"$kindof"
"$nameof"
"$offsetof"
"$qnameof"
@ -218,6 +219,8 @@
"&&&"
"+++"
"|||"
"???"
"+++="
] @operator
(range_expr
@ -232,6 +235,7 @@
(ternary_expr
[
"?"
"???"
":"
] @keyword.conditional.ternary)
@ -268,8 +272,8 @@
(#any-of? @variable.builtin
"alignof" "associated" "elements" "extnameof" "from_ordinal" "get" "inf" "is_eq" "is_ordered"
"is_substruct" "len" "lookup" "lookup_field" "max" "membersof" "methodsof" "min" "nan" "inner"
"kindof" "names" "nameof" "params" "paramsof" "parentof" "qnameof" "returns" "sizeof" "tagof"
"has_tagof" "values" "typeid")))
"kindof" "names" "nameof" "params" "paramsof" "parentof" "qnameof" "returns" "sizeof" "set"
"tagof" "has_tagof" "values" "typeid")))
; Label
[
@ -285,7 +289,7 @@
(path_ident
(ident) @module))
(import_declaration
(import_path
(path_ident
(ident) @module))
@ -298,6 +302,9 @@
(call_inline_attributes
(at_ident) @attribute)
(type_suffix
(at_ident) @attribute)
(asm_block_stmt
(at_ident) @attribute)

View file

@ -327,6 +327,9 @@
(lambda_expression
type: (identifier) @type)
(lambda_expression
(modifier) @keyword.modifier)
(as_expression
right: (identifier) @type)

View file

@ -59,10 +59,15 @@
(#set! injection.include-children)
(#set! injection.language "groq"))
; gql`...` or gql(`...`)
(call_expression
function: (identifier) @_name
(#eq? @_name "gql")
arguments: (template_string) @injection.content
arguments: [
(arguments
(template_string) @injection.content)
(template_string) @injection.content
]
(#offset! @injection.content 0 1 0 -1)
(#set! injection.include-children)
(#set! injection.language "graphql"))

View file

@ -25,6 +25,11 @@
name: (object_pattern
(shorthand_property_identifier_pattern) @local.definition.var))
(variable_declarator
(object_pattern
(pair_pattern
(identifier) @local.definition.var)))
(import_specifier
(identifier) @local.definition.import)

View file

@ -1,14 +1,19 @@
(comment) @comment @spell
(section
(section_name) @string.special.path)
(property) @property
(character_choice
(character) @constant)
(string) @string
(character_range
start: (character) @constant
end: (character) @constant)
(header
(glob) @string.special.path)
(character) @character
(character_escape) @string.escape
(wildcard) @character.special
(integer) @number
[
"["
@ -20,36 +25,11 @@
[
","
".."
(path_separator)
"/"
"-"
] @punctuation.delimiter
[
"-"
"="
(negation)
"!"
] @operator
[
(wildcard_characters)
(wildcard_any_characters)
(wildcard_single_character)
] @character.special
(escaped_character) @string.escape
(pair
key: (identifier) @property
value: (_) @string)
(boolean) @boolean
(integer) @number
(unset) @constant.builtin
[
(spelling_language)
(indent_style)
(end_of_line)
(charset)
] @string.special

View file

@ -102,13 +102,13 @@
])
((symbol) @variable.parameter
(#any-of? @variable.parameter "$" "$..."))
(#lua-match? @variable.parameter "^%$[1-9]?$"))
((symbol_fragment) @variable.parameter
(#eq? @variable.parameter "$"))
(#lua-match? @variable.parameter "^%$[1-9]?$"))
((symbol) @variable.parameter
(#lua-match? @variable.parameter "^%$[1-9]$"))
(#eq? @variable.parameter "$..."))
((symbol) @operator
(#any-of? @operator

View file

@ -112,15 +112,16 @@
(command
name: (word) @function.call)
; derived from builtin -n (fish 3.2.2)
; derived from builtin -n (fish 4.3.3)
(command
name: [
(word) @function.builtin
(#any-of? @function.builtin
"." ":" "_" "abbr" "alias" "argparse" "bg" "bind" "block" "breakpoint" "builtin" "cd"
"command" "commandline" "complete" "contains" "count" "disown" "echo" "emit" "eval" "exec"
"exit" "fg" "functions" "history" "isatty" "jobs" "math" "path" "printf" "pwd" "random" "read"
"realpath" "set" "set_color" "source" "status" "string" "test" "time" "type" "ulimit" "wait")
"exit" "fg" "fish_indent" "fish_key_reader" "functions" "history" "isatty" "jobs" "math"
"path" "printf" "pwd" "random" "read" "realpath" "set" "set_color" "source" "status" "string"
"test" "time" "type" "ulimit" "wait")
])
; Functions
@ -163,15 +164,15 @@
; Reference: https://fishshell.com/docs/current/language.html#special-variables
((variable_name) @variable.builtin
(#any-of? @variable.builtin
"PATH" "CDPATH" "LANG" "LC_ALL" "LC_COLLATE" "LC_CTYPE" "LC_MESSAGES" "LC_MONETARY" "LC_NUMERIC"
"LC_TIME" "fish_color_normal" "fish_color_command" "fish_color_keyword" "fish_color_keyword"
"fish_color_redirection" "fish_color_end" "fish_color_error" "fish_color_param"
"fish_color_valid_path" "fish_color_option" "fish_color_comment" "fish_color_selection"
"fish_color_operator" "fish_color_escape" "fish_color_autosuggestion" "fish_color_cwd"
"fish_color_cwd_root" "fish_color_user" "fish_color_host" "fish_color_host_remote"
"fish_color_status" "fish_color_cancel" "fish_color_search_match" "fish_color_history_current"
"fish_pager_color_progress" "fish_pager_color_background" "fish_pager_color_prefix"
"fish_pager_color_completion" "fish_pager_color_description"
"PATH" "CDPATH" "LANG" "LANGUAGE" "LC_ALL" "LC_COLLATE" "LC_CTYPE" "LC_MESSAGES" "LC_MONETARY"
"LC_NUMERIC" "LC_TIME" "fish_color_normal" "fish_color_command" "fish_color_keyword"
"fish_color_keyword" "fish_color_redirection" "fish_color_end" "fish_color_error"
"fish_color_param" "fish_color_valid_path" "fish_color_option" "fish_color_comment"
"fish_color_selection" "fish_color_operator" "fish_color_escape" "fish_color_autosuggestion"
"fish_color_cwd" "fish_color_cwd_root" "fish_color_user" "fish_color_host"
"fish_color_host_remote" "fish_color_status" "fish_color_cancel" "fish_color_search_match"
"fish_color_history_current" "fish_pager_color_progress" "fish_pager_color_background"
"fish_pager_color_prefix" "fish_pager_color_completion" "fish_pager_color_description"
"fish_pager_color_selected_background" "fish_pager_color_selected_prefix"
"fish_pager_color_selected_completion" "fish_pager_color_selected_description"
"fish_pager_color_secondary_background" "fish_pager_color_secondary_prefix"
@ -183,8 +184,8 @@
"fish_cursor_visual" "fish_cursor_external" "fish_function_path" "fish_greeting" "fish_history"
"fish_trace" "FISH_DEBUG" "FISH_DEBUG_OUTPUT" "fish_user_paths" "umask" "BROWSER" "_" "argv"
"CMD_DURATION" "COLUMNS" "LINES" "fish_kill_signal" "fish_killring" "fish_read_limit" "fish_pid"
"history" "HOME" "hostname" "IFS" "last_pid" "PWD" "pipestatus" "SHLVL" "status"
"status_generation" "TERM" "USER" "EUID" "version" "FISH_VERSION"))
"fish_terminal_color_theme" "history" "HOME" "hostname" "IFS" "last_pid" "PWD" "pipestatus"
"SHLVL" "status" "status_generation" "TERM" "USER" "EUID" "version" "FISH_VERSION"))
; Nodes
[

View file

@ -3,7 +3,7 @@
(if_statement)
(where_statement)
(enum_statement)
(do_loop_statement)
(do_loop)
(derived_type_definition)
(function)
(subroutine)

View file

@ -5,7 +5,7 @@
(function)
; (interface)
(if_statement)
(do_loop_statement)
(do_loop)
(where_statement)
(derived_type_definition)
(enum)

View file

@ -1,6 +0,0 @@
[
(comment)
(block)
(afx_comment)
(afx_element)
] @fold

View file

@ -1,132 +0,0 @@
(comment) @comment @spell
(afx_comment) @comment @spell
; identifiers afx
(afx_opening_element
(afx_identifier) @tag)
(afx_closing_element
(afx_identifier) @tag)
(afx_element_self_closing
(afx_identifier) @tag)
(afx_attribute
(afx_property_identifier) @tag.attribute)
(afx_text) @spell
; identifiers eel
(eel_object_path
(eel_path_identifier) @variable.builtin
(#any-of? @variable.builtin "this" "props"))
(eel_object_path
(eel_path_identifier) @variable)
(eel_object_pair
key: (eel_property_name) @property)
(eel_method_name) @function
(eel_parameter) @variable
; identifiers fusion
; -----------
(path_part) @property
(meta_property) @attribute
(prototype_signature
"prototype" @keyword)
(include_statement
"include" @keyword.import
(source_file) @string.special.url)
(namespace_declaration
"namespace" @keyword.type
(alias_namespace) @module)
(type
name: (type_name) @type)
; tokens
; ------
(afx_opening_element
[
"<"
">"
] @punctuation.bracket)
(afx_closing_element
[
"<"
">"
"/"
] @punctuation.bracket)
(afx_element_self_closing
[
"<"
"/>"
] @punctuation.bracket)
[
(package_name)
(alias_namespace)
] @module
(namespace_declaration
"=" @operator)
(assignment
"=" @operator)
(copy
"<" @operator)
(deletion) @operator
(eel_binary_expression
operator: _ @operator)
(eel_not_expression
[
"!"
"not"
] @operator)
(string) @string
(number) @number
(boolean) @boolean
(null) @constant.builtin
(value_expression
start: _ @punctuation.special
end: _ @punctuation.special)
[
"("
")"
"{"
"}"
"["
"]"
] @punctuation.bracket
[
":"
"."
"?"
] @punctuation.delimiter
(eel_ternary_expression
[
"?"
":"
] @keyword.conditional.ternary)

View file

@ -1,24 +0,0 @@
[
(block)
(value_dsl)
(afx_element)
(afx_element_self_closing)
(eel_array)
(eel_object)
] @indent.begin
(block
end: _ @indent.branch)
(value_dsl
end: _ @indent.branch)
(eel_array
end: _ @indent.branch)
(eel_object
end: _ @indent.branch)
(afx_closing_element) @indent.branch
(comment) @indent.ignore

View file

@ -1,5 +0,0 @@
([
(comment)
(afx_comment)
] @injection.content
(#set! injection.language "comment"))

View file

@ -1,23 +0,0 @@
; Fusion base
(block) @local.scope
(namespace_declaration
(alias_namespace) @local.definition.namespace)
(property
(path
(path_part) @local.definition.field))
(type
namespace: (package_name)? @local.definition.namespace
name: (type_name) @local.definition.type)
; Eel Expressions
(eel_arrow_function) @local.scope
(eel_object) @local.scope
(eel_parameter) @local.definition.parameter
(eel_object_pair
key: (eel_property_name) @local.definition.field)

View file

@ -248,34 +248,241 @@
; Builtins
; generated from
; - godot commit: fb10e67fef
; - https://github.com/godotengine/godot/blob/fb10e67fef/doc/classes
; - https://github.com/godotengine/godot/blob/fb10e67fef/doc/classes/@GlobalScope.xml
; - https://github.com/godotengine/godot/blob/fb10e67fef/modules/gdscript/doc_classes/@GDScript.xml
; - godot commit: 10c7cb8
; - https://github.com/godotengine/godot/blob/10c7cb878a/doc/classes
; - https://github.com/godotengine/godot/blob/10c7cb878a/doc/classes/@GlobalScope.xml
; - https://github.com/godotengine/godot/blob/10c7cb878a/modules/gdscript/doc_classes/@GDScript.xml
; Built-in Annotations
((annotation
"@" @attribute
(identifier) @attribute)
(#any-of? @attribute
; from modules/gdscript/doc_classes/@GDScript.xml
"export" "export_category" "export_color_no_alpha" "export_custom" "export_dir" "export_enum"
"export_exp_easing" "export_file" "export_flags" "export_flags_2d_navigation"
"export_flags_2d_physics" "export_flags_2d_render" "export_flags_3d_navigation"
"export_flags_3d_physics" "export_flags_3d_render" "export_flags_avoidance" "export_global_dir"
"export_global_file" "export_group" "export_multiline" "export_node_path" "export_placeholder"
"export_range" "export_storage" "export_subgroup" "icon" "onready" "rpc" "static_unload" "tool"
"warning_ignore"))
"abstract" "export" "export_category" "export_color_no_alpha" "export_custom" "export_dir"
"export_enum" "export_exp_easing" "export_file" "export_file_path" "export_flags"
"export_flags_2d_navigation" "export_flags_2d_physics" "export_flags_2d_render"
"export_flags_3d_navigation" "export_flags_3d_physics" "export_flags_3d_render"
"export_flags_avoidance" "export_global_dir" "export_global_file" "export_group"
"export_multiline" "export_node_path" "export_placeholder" "export_range" "export_storage"
"export_subgroup" "export_tool_button" "icon" "onready" "rpc" "static_unload" "tool"
"warning_ignore" "warning_ignore_restore" "warning_ignore_start"))
; Builtin Types
((identifier) @type.builtin
(#any-of? @type.builtin
; from doc/classes/*.xml
"AABB" "Array" "Basis" "Callable" "Color" "Dictionary" "NodePath" "PackedByteArray"
"PackedColorArray" "PackedFloat32Array" "PackedFloat64Array" "PackedInt32Array"
"PackedInt64Array" "PackedStringArray" "PackedVector2Array" "PackedVector3Array" "Plane"
"Projection" "Quaternion" "RID" "Rect2" "Rect2i" "Signal" "String" "StringName" "Transform2D"
"Transform3D" "Vector2" "Vector2i" "Vector3" "Vector3i" "Vector4" "Vector4i" "bool" "float"
"int"
"AABB" "AESContext" "AStar2D" "AStar3D" "AStarGrid2D" "AcceptDialog" "AimModifier3D"
"AnimatableBody2D" "AnimatableBody3D" "AnimatedSprite2D" "AnimatedSprite3D" "AnimatedTexture"
"Animation" "AnimationLibrary" "AnimationMixer" "AnimationNode" "AnimationNodeAdd2"
"AnimationNodeAdd3" "AnimationNodeAnimation" "AnimationNodeBlend2" "AnimationNodeBlend3"
"AnimationNodeBlendSpace1D" "AnimationNodeBlendSpace2D" "AnimationNodeBlendTree"
"AnimationNodeExtension" "AnimationNodeOneShot" "AnimationNodeOutput"
"AnimationNodeStateMachine" "AnimationNodeStateMachinePlayback"
"AnimationNodeStateMachineTransition" "AnimationNodeSub2" "AnimationNodeSync"
"AnimationNodeTimeScale" "AnimationNodeTimeSeek" "AnimationNodeTransition" "AnimationPlayer"
"AnimationRootNode" "AnimationTree" "Area2D" "Area3D" "Array" "ArrayMesh" "ArrayOccluder3D"
"AspectRatioContainer" "AtlasTexture" "AudioBusLayout" "AudioEffect" "AudioEffectAmplify"
"AudioEffectBandLimitFilter" "AudioEffectBandPassFilter" "AudioEffectCapture"
"AudioEffectChorus" "AudioEffectCompressor" "AudioEffectDelay" "AudioEffectDistortion"
"AudioEffectEQ" "AudioEffectEQ10" "AudioEffectEQ21" "AudioEffectEQ6" "AudioEffectFilter"
"AudioEffectHardLimiter" "AudioEffectHighPassFilter" "AudioEffectHighShelfFilter"
"AudioEffectInstance" "AudioEffectLimiter" "AudioEffectLowPassFilter"
"AudioEffectLowShelfFilter" "AudioEffectNotchFilter" "AudioEffectPanner" "AudioEffectPhaser"
"AudioEffectPitchShift" "AudioEffectRecord" "AudioEffectReverb" "AudioEffectSpectrumAnalyzer"
"AudioEffectSpectrumAnalyzerInstance" "AudioEffectStereoEnhance" "AudioListener2D"
"AudioListener3D" "AudioSample" "AudioSamplePlayback" "AudioServer" "AudioStream"
"AudioStreamGenerator" "AudioStreamGeneratorPlayback" "AudioStreamMicrophone"
"AudioStreamPlayback" "AudioStreamPlaybackPolyphonic" "AudioStreamPlaybackResampled"
"AudioStreamPlayer" "AudioStreamPlayer2D" "AudioStreamPlayer3D" "AudioStreamPolyphonic"
"AudioStreamRandomizer" "AudioStreamWAV" "BackBufferCopy" "BaseButton" "BaseMaterial3D" "Basis"
"BitMap" "Bone2D" "BoneAttachment3D" "BoneConstraint3D" "BoneMap" "BoneTwistDisperser3D"
"BoxContainer" "BoxMesh" "BoxOccluder3D" "BoxShape3D" "Button" "ButtonGroup" "CCDIK3D"
"CPUParticles2D" "CPUParticles3D" "Callable" "CallbackTweener" "Camera2D" "Camera3D"
"CameraAttributes" "CameraAttributesPhysical" "CameraAttributesPractical" "CameraFeed"
"CameraServer" "CameraTexture" "CanvasGroup" "CanvasItem" "CanvasItemMaterial" "CanvasLayer"
"CanvasModulate" "CanvasTexture" "CapsuleMesh" "CapsuleShape2D" "CapsuleShape3D"
"CenterContainer" "ChainIK3D" "CharFXTransform" "CharacterBody2D" "CharacterBody3D" "CheckBox"
"CheckButton" "CircleShape2D" "ClassDB" "CodeEdit" "CodeHighlighter" "CollisionObject2D"
"CollisionObject3D" "CollisionPolygon2D" "CollisionPolygon3D" "CollisionShape2D"
"CollisionShape3D" "Color" "ColorPalette" "ColorPicker" "ColorPickerButton" "ColorRect"
"Compositor" "CompositorEffect" "CompressedCubemap" "CompressedCubemapArray"
"CompressedTexture2D" "CompressedTexture2DArray" "CompressedTexture3D"
"CompressedTextureLayered" "ConcavePolygonShape2D" "ConcavePolygonShape3D" "ConeTwistJoint3D"
"ConfigFile" "ConfirmationDialog" "Container" "Control" "ConvertTransformModifier3D"
"ConvexPolygonShape2D" "ConvexPolygonShape3D" "CopyTransformModifier3D" "Crypto" "CryptoKey"
"Cubemap" "CubemapArray" "Curve" "Curve2D" "Curve3D" "CurveTexture" "CurveXYZTexture"
"CylinderMesh" "CylinderShape3D" "DPITexture" "DTLSServer" "DampedSpringJoint2D" "Decal"
"Dictionary" "DirAccess" "DirectionalLight2D" "DirectionalLight3D" "DisplayServer"
"EditorCommandPalette" "EditorContextMenuPlugin" "EditorDebuggerPlugin" "EditorDebuggerSession"
"EditorDock" "EditorExportPlatform" "EditorExportPlatformAppleEmbedded"
"EditorExportPlatformExtension" "EditorExportPlatformPC" "EditorExportPlugin"
"EditorExportPreset" "EditorFeatureProfile" "EditorFileDialog" "EditorFileSystem"
"EditorFileSystemDirectory" "EditorFileSystemImportFormatSupportQuery" "EditorImportPlugin"
"EditorInspector" "EditorInspectorPlugin" "EditorInterface" "EditorNode3DGizmo"
"EditorNode3DGizmoPlugin" "EditorPaths" "EditorPlugin" "EditorProperty"
"EditorResourceConversionPlugin" "EditorResourcePicker" "EditorResourcePreview"
"EditorResourcePreviewGenerator" "EditorResourceTooltipPlugin" "EditorSceneFormatImporter"
"EditorScenePostImport" "EditorScenePostImportPlugin" "EditorScript" "EditorScriptPicker"
"EditorSelection" "EditorSettings" "EditorSpinSlider" "EditorSyntaxHighlighter" "EditorToaster"
"EditorTranslationParserPlugin" "EditorUndoRedoManager" "EditorVCSInterface" "EncodedObjectAsID"
"Engine" "EngineDebugger" "EngineProfiler" "Environment" "Expression" "ExternalTexture"
"FABRIK3D" "FileAccess" "FileDialog" "FileSystemDock" "FlowContainer" "FogMaterial" "FogVolume"
"FoldableContainer" "FoldableGroup" "Font" "FontFile" "FontVariation" "FramebufferCacheRD"
"GDExtension" "GDExtensionManager" "GPUParticles2D" "GPUParticles3D" "GPUParticlesAttractor3D"
"GPUParticlesAttractorBox3D" "GPUParticlesAttractorSphere3D"
"GPUParticlesAttractorVectorField3D" "GPUParticlesCollision3D" "GPUParticlesCollisionBox3D"
"GPUParticlesCollisionHeightField3D" "GPUParticlesCollisionSDF3D"
"GPUParticlesCollisionSphere3D" "Generic6DOFJoint3D" "Geometry2D" "Geometry3D"
"GeometryInstance3D" "GodotInstance" "Gradient" "GradientTexture1D" "GradientTexture2D"
"GraphEdit" "GraphElement" "GraphFrame" "GraphNode" "GridContainer" "GrooveJoint2D"
"HBoxContainer" "HFlowContainer" "HMACContext" "HScrollBar" "HSeparator" "HSlider"
"HSplitContainer" "HTTPClient" "HTTPRequest" "HashingContext" "HeightMapShape3D" "HingeJoint3D"
"IKModifier3D" "IP" "Image" "ImageFormatLoader" "ImageFormatLoaderExtension" "ImageTexture"
"ImageTexture3D" "ImageTextureLayered" "ImmediateMesh" "ImporterMesh" "ImporterMeshInstance3D"
"Input" "InputEvent" "InputEventAction" "InputEventFromWindow" "InputEventGesture"
"InputEventJoypadButton" "InputEventJoypadMotion" "InputEventKey" "InputEventMIDI"
"InputEventMagnifyGesture" "InputEventMouse" "InputEventMouseButton" "InputEventMouseMotion"
"InputEventPanGesture" "InputEventScreenDrag" "InputEventScreenTouch" "InputEventShortcut"
"InputEventWithModifiers" "InputMap" "InstancePlaceholder" "IntervalTweener" "ItemList"
"IterateIK3D" "JNISingleton" "JSON" "JSONRPC" "JacobianIK3D" "JavaClass" "JavaClassWrapper"
"JavaObject" "JavaScriptBridge" "JavaScriptObject" "Joint2D" "Joint3D" "JointLimitation3D"
"JointLimitationCone3D" "KinematicCollision2D" "KinematicCollision3D" "Label" "Label3D"
"LabelSettings" "Light2D" "Light3D" "LightOccluder2D" "LightmapGI" "LightmapGIData"
"LightmapProbe" "Lightmapper" "LightmapperRD" "LimitAngularVelocityModifier3D" "Line2D"
"LineEdit" "LinkButton" "Logger" "LookAtModifier3D" "MainLoop" "MarginContainer" "Marker2D"
"Marker3D" "Marshalls" "Material" "MenuBar" "MenuButton" "Mesh"
"MeshConvexDecompositionSettings" "MeshDataTool" "MeshInstance2D" "MeshInstance3D" "MeshLibrary"
"MeshTexture" "MethodTweener" "MissingNode" "MissingResource" "ModifierBoneTarget3D"
"MovieWriter" "MultiMesh" "MultiMeshInstance2D" "MultiMeshInstance3D" "MultiplayerAPI"
"MultiplayerAPIExtension" "MultiplayerPeer" "MultiplayerPeerExtension" "Mutex" "NativeMenu"
"NavigationAgent2D" "NavigationAgent3D" "NavigationLink2D" "NavigationLink3D" "NavigationMesh"
"NavigationMeshGenerator" "NavigationMeshSourceGeometryData2D"
"NavigationMeshSourceGeometryData3D" "NavigationObstacle2D" "NavigationObstacle3D"
"NavigationPathQueryParameters2D" "NavigationPathQueryParameters3D"
"NavigationPathQueryResult2D" "NavigationPathQueryResult3D" "NavigationPolygon"
"NavigationRegion2D" "NavigationRegion3D" "NavigationServer2D" "NavigationServer2DManager"
"NavigationServer3D" "NavigationServer3DManager" "NinePatchRect" "Node" "Node2D" "Node3D"
"Node3DGizmo" "NodePath" "ORMMaterial3D" "OS" "Object" "Occluder3D" "OccluderInstance3D"
"OccluderPolygon2D" "OmniLight3D" "OptimizedTranslation" "OptionButton" "PCKPacker"
"PackedByteArray" "PackedColorArray" "PackedDataContainer" "PackedDataContainerRef"
"PackedFloat32Array" "PackedFloat64Array" "PackedInt32Array" "PackedInt64Array" "PackedScene"
"PackedStringArray" "PackedVector2Array" "PackedVector3Array" "PackedVector4Array" "PacketPeer"
"PacketPeerDTLS" "PacketPeerExtension" "PacketPeerStream" "PacketPeerUDP" "Panel"
"PanelContainer" "PanoramaSkyMaterial" "Parallax2D" "ParallaxBackground" "ParallaxLayer"
"ParticleProcessMaterial" "Path2D" "Path3D" "PathFollow2D" "PathFollow3D" "Performance"
"PhysicalBone2D" "PhysicalBone3D" "PhysicalBoneSimulator3D" "PhysicalSkyMaterial"
"PhysicsBody2D" "PhysicsBody3D" "PhysicsDirectBodyState2D" "PhysicsDirectBodyState2DExtension"
"PhysicsDirectBodyState3D" "PhysicsDirectBodyState3DExtension" "PhysicsDirectSpaceState2D"
"PhysicsDirectSpaceState2DExtension" "PhysicsDirectSpaceState3D"
"PhysicsDirectSpaceState3DExtension" "PhysicsMaterial" "PhysicsPointQueryParameters2D"
"PhysicsPointQueryParameters3D" "PhysicsRayQueryParameters2D" "PhysicsRayQueryParameters3D"
"PhysicsServer2D" "PhysicsServer2DExtension" "PhysicsServer2DManager" "PhysicsServer3D"
"PhysicsServer3DExtension" "PhysicsServer3DManager" "PhysicsServer3DRenderingServerHandler"
"PhysicsShapeQueryParameters2D" "PhysicsShapeQueryParameters3D" "PhysicsTestMotionParameters2D"
"PhysicsTestMotionParameters3D" "PhysicsTestMotionResult2D" "PhysicsTestMotionResult3D"
"PinJoint2D" "PinJoint3D" "PlaceholderCubemap" "PlaceholderCubemapArray" "PlaceholderMaterial"
"PlaceholderMesh" "PlaceholderTexture2D" "PlaceholderTexture2DArray" "PlaceholderTexture3D"
"PlaceholderTextureLayered" "Plane" "PlaneMesh" "PointLight2D" "PointMesh" "Polygon2D"
"PolygonOccluder3D" "PolygonPathFinder" "Popup" "PopupMenu" "PopupPanel"
"PortableCompressedTexture2D" "PrimitiveMesh" "PrismMesh" "ProceduralSkyMaterial" "ProgressBar"
"ProjectSettings" "Projection" "PropertyTweener" "QuadMesh" "QuadOccluder3D" "Quaternion"
"RDAttachmentFormat" "RDFramebufferPass" "RDPipelineColorBlendState"
"RDPipelineColorBlendStateAttachment" "RDPipelineDepthStencilState" "RDPipelineMultisampleState"
"RDPipelineRasterizationState" "RDPipelineSpecializationConstant" "RDSamplerState"
"RDShaderFile" "RDShaderSPIRV" "RDShaderSource" "RDTextureFormat" "RDTextureView" "RDUniform"
"RDVertexAttribute" "RID" "RandomNumberGenerator" "Range" "RayCast2D" "RayCast3D" "Rect2"
"Rect2i" "RectangleShape2D" "RefCounted" "ReferenceRect" "ReflectionProbe" "RemoteTransform2D"
"RemoteTransform3D" "RenderData" "RenderDataExtension" "RenderDataRD" "RenderSceneBuffers"
"RenderSceneBuffersConfiguration" "RenderSceneBuffersExtension" "RenderSceneBuffersRD"
"RenderSceneData" "RenderSceneDataExtension" "RenderSceneDataRD" "RenderingDevice"
"RenderingServer" "Resource" "ResourceFormatLoader" "ResourceFormatSaver" "ResourceImporter"
"ResourceImporterBMFont" "ResourceImporterBitMap" "ResourceImporterCSVTranslation"
"ResourceImporterDynamicFont" "ResourceImporterImage" "ResourceImporterImageFont"
"ResourceImporterLayeredTexture" "ResourceImporterOBJ" "ResourceImporterSVG"
"ResourceImporterScene" "ResourceImporterShaderFile" "ResourceImporterTexture"
"ResourceImporterTextureAtlas" "ResourceImporterWAV" "ResourceLoader" "ResourcePreloader"
"ResourceSaver" "ResourceUID" "RetargetModifier3D" "RibbonTrailMesh" "RichTextEffect"
"RichTextLabel" "RigidBody2D" "RigidBody3D" "RootMotionView" "SceneState" "SceneTree"
"SceneTreeTimer" "Script" "ScriptBacktrace" "ScriptCreateDialog" "ScriptEditor"
"ScriptEditorBase" "ScriptExtension" "ScriptLanguage" "ScriptLanguageExtension" "ScrollBar"
"ScrollContainer" "SegmentShape2D" "Semaphore" "SeparationRayShape2D" "SeparationRayShape3D"
"Separator" "Shader" "ShaderGlobalsOverride" "ShaderInclude" "ShaderIncludeDB" "ShaderMaterial"
"Shape2D" "Shape3D" "ShapeCast2D" "ShapeCast3D" "Shortcut" "Signal" "Skeleton2D" "Skeleton3D"
"SkeletonIK3D" "SkeletonModification2D" "SkeletonModification2DCCDIK"
"SkeletonModification2DFABRIK" "SkeletonModification2DJiggle" "SkeletonModification2DLookAt"
"SkeletonModification2DPhysicalBones" "SkeletonModification2DStackHolder"
"SkeletonModification2DTwoBoneIK" "SkeletonModificationStack2D" "SkeletonModifier3D"
"SkeletonProfile" "SkeletonProfileHumanoid" "Skin" "SkinReference" "Sky" "Slider"
"SliderJoint3D" "SocketServer" "SoftBody3D" "SphereMesh" "SphereOccluder3D" "SphereShape3D"
"SpinBox" "SplineIK3D" "SplitContainer" "SpotLight3D" "SpringArm3D" "SpringBoneCollision3D"
"SpringBoneCollisionCapsule3D" "SpringBoneCollisionPlane3D" "SpringBoneCollisionSphere3D"
"SpringBoneSimulator3D" "Sprite2D" "Sprite3D" "SpriteBase3D" "SpriteFrames" "StandardMaterial3D"
"StaticBody2D" "StaticBody3D" "StatusIndicator" "StreamPeer" "StreamPeerBuffer"
"StreamPeerExtension" "StreamPeerGZIP" "StreamPeerSocket" "StreamPeerTCP" "StreamPeerTLS"
"StreamPeerUDS" "String" "StringName" "StyleBox" "StyleBoxEmpty" "StyleBoxFlat" "StyleBoxLine"
"StyleBoxTexture" "SubViewport" "SubViewportContainer" "SubtweenTweener" "SurfaceTool"
"SyntaxHighlighter" "SystemFont" "TCPServer" "TLSOptions" "TabBar" "TabContainer" "TextEdit"
"TextLine" "TextMesh" "TextParagraph" "TextServer" "TextServerDummy" "TextServerExtension"
"TextServerManager" "Texture" "Texture2D" "Texture2DArray" "Texture2DArrayRD" "Texture2DRD"
"Texture3D" "Texture3DRD" "TextureButton" "TextureCubemapArrayRD" "TextureCubemapRD"
"TextureLayered" "TextureLayeredRD" "TextureProgressBar" "TextureRect" "Theme" "ThemeDB"
"Thread" "TileData" "TileMap" "TileMapLayer" "TileMapPattern" "TileSet" "TileSetAtlasSource"
"TileSetScenesCollectionSource" "TileSetSource" "Time" "Timer" "TorusMesh" "TouchScreenButton"
"Transform2D" "Transform3D" "Translation" "TranslationDomain" "TranslationServer" "Tree"
"TreeItem" "TriangleMesh" "TubeTrailMesh" "Tween" "Tweener" "TwoBoneIK3D" "UDPServer"
"UDSServer" "UndoRedo" "UniformSetCacheRD" "VBoxContainer" "VFlowContainer" "VScrollBar"
"VSeparator" "VSlider" "VSplitContainer" "Variant" "Vector2" "Vector2i" "Vector3" "Vector3i"
"Vector4" "Vector4i" "VehicleBody3D" "VehicleWheel3D" "VideoStream" "VideoStreamPlayback"
"VideoStreamPlayer" "Viewport" "ViewportTexture" "VisibleOnScreenEnabler2D"
"VisibleOnScreenEnabler3D" "VisibleOnScreenNotifier2D" "VisibleOnScreenNotifier3D"
"VisualInstance3D" "VisualShader" "VisualShaderNode" "VisualShaderNodeBillboard"
"VisualShaderNodeBooleanConstant" "VisualShaderNodeBooleanParameter" "VisualShaderNodeClamp"
"VisualShaderNodeColorConstant" "VisualShaderNodeColorFunc" "VisualShaderNodeColorOp"
"VisualShaderNodeColorParameter" "VisualShaderNodeComment" "VisualShaderNodeCompare"
"VisualShaderNodeConstant" "VisualShaderNodeCubemap" "VisualShaderNodeCubemapParameter"
"VisualShaderNodeCurveTexture" "VisualShaderNodeCurveXYZTexture" "VisualShaderNodeCustom"
"VisualShaderNodeDerivativeFunc" "VisualShaderNodeDeterminant" "VisualShaderNodeDistanceFade"
"VisualShaderNodeDotProduct" "VisualShaderNodeExpression" "VisualShaderNodeFaceForward"
"VisualShaderNodeFloatConstant" "VisualShaderNodeFloatFunc" "VisualShaderNodeFloatOp"
"VisualShaderNodeFloatParameter" "VisualShaderNodeFrame" "VisualShaderNodeFresnel"
"VisualShaderNodeGlobalExpression" "VisualShaderNodeGroupBase" "VisualShaderNodeIf"
"VisualShaderNodeInput" "VisualShaderNodeIntConstant" "VisualShaderNodeIntFunc"
"VisualShaderNodeIntOp" "VisualShaderNodeIntParameter" "VisualShaderNodeIs"
"VisualShaderNodeLinearSceneDepth" "VisualShaderNodeMix" "VisualShaderNodeMultiplyAdd"
"VisualShaderNodeOuterProduct" "VisualShaderNodeOutput" "VisualShaderNodeParameter"
"VisualShaderNodeParameterRef" "VisualShaderNodeParticleAccelerator"
"VisualShaderNodeParticleBoxEmitter" "VisualShaderNodeParticleConeVelocity"
"VisualShaderNodeParticleEmit" "VisualShaderNodeParticleEmitter"
"VisualShaderNodeParticleMeshEmitter" "VisualShaderNodeParticleMultiplyByAxisAngle"
"VisualShaderNodeParticleOutput" "VisualShaderNodeParticleRandomness"
"VisualShaderNodeParticleRingEmitter" "VisualShaderNodeParticleSphereEmitter"
"VisualShaderNodeProximityFade" "VisualShaderNodeRandomRange" "VisualShaderNodeRemap"
"VisualShaderNodeReroute" "VisualShaderNodeResizableBase" "VisualShaderNodeRotationByAxis"
"VisualShaderNodeSDFRaymarch" "VisualShaderNodeSDFToScreenUV" "VisualShaderNodeSample3D"
"VisualShaderNodeScreenNormalWorldSpace" "VisualShaderNodeScreenUVToSDF"
"VisualShaderNodeSmoothStep" "VisualShaderNodeStep" "VisualShaderNodeSwitch"
"VisualShaderNodeTexture" "VisualShaderNodeTexture2DArray"
"VisualShaderNodeTexture2DArrayParameter" "VisualShaderNodeTexture2DParameter"
"VisualShaderNodeTexture3D" "VisualShaderNodeTexture3DParameter"
"VisualShaderNodeTextureParameter" "VisualShaderNodeTextureParameterTriplanar"
"VisualShaderNodeTextureSDF" "VisualShaderNodeTextureSDFNormal"
"VisualShaderNodeTransformCompose" "VisualShaderNodeTransformConstant"
"VisualShaderNodeTransformDecompose" "VisualShaderNodeTransformFunc"
"VisualShaderNodeTransformOp" "VisualShaderNodeTransformParameter"
"VisualShaderNodeTransformVecMult" "VisualShaderNodeUIntConstant" "VisualShaderNodeUIntFunc"
"VisualShaderNodeUIntOp" "VisualShaderNodeUIntParameter" "VisualShaderNodeUVFunc"
"VisualShaderNodeUVPolarCoord" "VisualShaderNodeVarying" "VisualShaderNodeVaryingGetter"
"VisualShaderNodeVaryingSetter" "VisualShaderNodeVec2Constant" "VisualShaderNodeVec2Parameter"
"VisualShaderNodeVec3Constant" "VisualShaderNodeVec3Parameter" "VisualShaderNodeVec4Constant"
"VisualShaderNodeVec4Parameter" "VisualShaderNodeVectorBase" "VisualShaderNodeVectorCompose"
"VisualShaderNodeVectorDecompose" "VisualShaderNodeVectorDistance" "VisualShaderNodeVectorFunc"
"VisualShaderNodeVectorLen" "VisualShaderNodeVectorOp" "VisualShaderNodeVectorRefract"
"VisualShaderNodeWorldPositionFromDepth" "VoxelGI" "VoxelGIData" "WeakRef" "Window"
"WorkerThreadPool" "World2D" "World3D" "WorldBoundaryShape2D" "WorldBoundaryShape3D"
"WorldEnvironment" "X509Certificate" "XMLParser" "XRAnchor3D" "XRBodyModifier3D" "XRBodyTracker"
"XRCamera3D" "XRController3D" "XRControllerTracker" "XRFaceModifier3D" "XRFaceTracker"
"XRHandModifier3D" "XRHandTracker" "XRInterface" "XRInterfaceExtension" "XRNode3D" "XROrigin3D"
"XRPose" "XRPositionalTracker" "XRServer" "XRTracker" "XRVRS" "bool" "float" "int"
; from doc/classes/@GlobalScope.xml
"AudioServer" "CameraServer" "ClassDB" "DisplayServer" "EditorInterface" "Engine"
"EngineDebugger" "GDExtensionManager" "Geometry2D" "Geometry3D" "GodotSharp" "IP" "Input"
@ -307,7 +514,7 @@
"var_to_str" "weakref" "wrap" "wrapf" "wrapi"
; from modules/gdscript/doc_classes/@GDScript.xml
"Color8" "assert" "char" "convert" "dict_to_inst" "get_stack" "inst_to_dict" "is_instance_of"
"len" "load" "preload" "print_debug" "print_stack" "range" "type_exists"))
"len" "load" "ord" "preload" "print_debug" "print_stack" "range" "type_exists"))
; Builtin Constants
((identifier) @constant.builtin
@ -322,7 +529,7 @@
"ERR_DATABASE_CANT_READ" "ERR_DATABASE_CANT_WRITE" "ERR_DOES_NOT_EXIST" "ERR_DUPLICATE_SYMBOL"
"ERR_FILE_ALREADY_IN_USE" "ERR_FILE_BAD_DRIVE" "ERR_FILE_BAD_PATH" "ERR_FILE_CANT_OPEN"
"ERR_FILE_CANT_READ" "ERR_FILE_CANT_WRITE" "ERR_FILE_CORRUPT" "ERR_FILE_EOF"
"ERR_FILE_MISSING_DEPENDENCIES" "ERR_FILE_NOT_FOUND" "ERR_FILE_NO_PERMISSION"
"ERR_FILE_MISSING_DEPENDENCIES" "ERR_FILE_NO_PERMISSION" "ERR_FILE_NOT_FOUND"
"ERR_FILE_UNRECOGNIZED" "ERR_HELP" "ERR_INVALID_DATA" "ERR_INVALID_DECLARATION"
"ERR_INVALID_PARAMETER" "ERR_LINK_FAILED" "ERR_LOCKED" "ERR_METHOD_NOT_FOUND"
"ERR_OUT_OF_MEMORY" "ERR_PARAMETER_RANGE_ERROR" "ERR_PARSE_ERROR" "ERR_PRINTER_ON_FIRE"
@ -332,9 +539,9 @@
"HORIZONTAL_ALIGNMENT_CENTER" "HORIZONTAL_ALIGNMENT_FILL" "HORIZONTAL_ALIGNMENT_LEFT"
"HORIZONTAL_ALIGNMENT_RIGHT" "INLINE_ALIGNMENT_BASELINE_TO" "INLINE_ALIGNMENT_BOTTOM"
"INLINE_ALIGNMENT_BOTTOM_TO" "INLINE_ALIGNMENT_CENTER" "INLINE_ALIGNMENT_CENTER_TO"
"INLINE_ALIGNMENT_IMAGE_MASK" "INLINE_ALIGNMENT_TEXT_MASK" "INLINE_ALIGNMENT_TOP"
"INLINE_ALIGNMENT_TOP_TO" "INLINE_ALIGNMENT_TO_BASELINE" "INLINE_ALIGNMENT_TO_BOTTOM"
"INLINE_ALIGNMENT_TO_CENTER" "INLINE_ALIGNMENT_TO_TOP" "JOY_AXIS_INVALID" "JOY_AXIS_LEFT_X"
"INLINE_ALIGNMENT_IMAGE_MASK" "INLINE_ALIGNMENT_TEXT_MASK" "INLINE_ALIGNMENT_TO_BASELINE"
"INLINE_ALIGNMENT_TO_BOTTOM" "INLINE_ALIGNMENT_TO_CENTER" "INLINE_ALIGNMENT_TOP"
"INLINE_ALIGNMENT_TOP_TO" "INLINE_ALIGNMENT_TO_TOP" "JOY_AXIS_INVALID" "JOY_AXIS_LEFT_X"
"JOY_AXIS_LEFT_Y" "JOY_AXIS_MAX" "JOY_AXIS_RIGHT_X" "JOY_AXIS_RIGHT_Y" "JOY_AXIS_SDL_MAX"
"JOY_AXIS_TRIGGER_LEFT" "JOY_AXIS_TRIGGER_RIGHT" "JOY_BUTTON_A" "JOY_BUTTON_B" "JOY_BUTTON_BACK"
"JOY_BUTTON_DPAD_DOWN" "JOY_BUTTON_DPAD_LEFT" "JOY_BUTTON_DPAD_RIGHT" "JOY_BUTTON_DPAD_UP"
@ -370,11 +577,11 @@
"KEY_SECTION" "KEY_SEMICOLON" "KEY_SHIFT" "KEY_SLASH" "KEY_SPACE" "KEY_SPECIAL" "KEY_STANDBY"
"KEY_STOP" "KEY_SYSREQ" "KEY_T" "KEY_TAB" "KEY_U" "KEY_UNDERSCORE" "KEY_UNKNOWN" "KEY_UP"
"KEY_V" "KEY_VOLUMEDOWN" "KEY_VOLUMEMUTE" "KEY_VOLUMEUP" "KEY_W" "KEY_X" "KEY_Y" "KEY_YEN"
"KEY_Z" "METHOD_FLAGS_DEFAULT" "METHOD_FLAG_CONST" "METHOD_FLAG_EDITOR" "METHOD_FLAG_NORMAL"
"METHOD_FLAG_OBJECT_CORE" "METHOD_FLAG_STATIC" "METHOD_FLAG_VARARG" "METHOD_FLAG_VIRTUAL"
"MIDI_MESSAGE_ACTIVE_SENSING" "MIDI_MESSAGE_AFTERTOUCH" "MIDI_MESSAGE_CHANNEL_PRESSURE"
"MIDI_MESSAGE_CONTINUE" "MIDI_MESSAGE_CONTROL_CHANGE" "MIDI_MESSAGE_NONE"
"MIDI_MESSAGE_NOTE_OFF" "MIDI_MESSAGE_NOTE_ON" "MIDI_MESSAGE_PITCH_BEND"
"KEY_Z" "METHOD_FLAG_CONST" "METHOD_FLAG_EDITOR" "METHOD_FLAG_NORMAL" "METHOD_FLAG_OBJECT_CORE"
"METHOD_FLAGS_DEFAULT" "METHOD_FLAG_STATIC" "METHOD_FLAG_VARARG" "METHOD_FLAG_VIRTUAL"
"METHOD_FLAG_VIRTUAL_REQUIRED" "MIDI_MESSAGE_ACTIVE_SENSING" "MIDI_MESSAGE_AFTERTOUCH"
"MIDI_MESSAGE_CHANNEL_PRESSURE" "MIDI_MESSAGE_CONTINUE" "MIDI_MESSAGE_CONTROL_CHANGE"
"MIDI_MESSAGE_NONE" "MIDI_MESSAGE_NOTE_OFF" "MIDI_MESSAGE_NOTE_ON" "MIDI_MESSAGE_PITCH_BEND"
"MIDI_MESSAGE_PROGRAM_CHANGE" "MIDI_MESSAGE_QUARTER_FRAME" "MIDI_MESSAGE_SONG_POSITION_POINTER"
"MIDI_MESSAGE_SONG_SELECT" "MIDI_MESSAGE_START" "MIDI_MESSAGE_STOP"
"MIDI_MESSAGE_SYSTEM_EXCLUSIVE" "MIDI_MESSAGE_SYSTEM_RESET" "MIDI_MESSAGE_TIMING_CLOCK"
@ -387,40 +594,42 @@
"OP_GREATER_EQUAL" "OP_IN" "OP_LESS" "OP_LESS_EQUAL" "OP_MAX" "OP_MODULE" "OP_MULTIPLY"
"OP_NEGATE" "OP_NOT" "OP_NOT_EQUAL" "OP_OR" "OP_POSITIVE" "OP_POWER" "OP_SHIFT_LEFT"
"OP_SHIFT_RIGHT" "OP_SUBTRACT" "OP_XOR" "PROPERTY_HINT_ARRAY_TYPE"
"PROPERTY_HINT_COLOR_NO_ALPHA" "PROPERTY_HINT_DIR" "PROPERTY_HINT_ENUM"
"PROPERTY_HINT_ENUM_SUGGESTION" "PROPERTY_HINT_EXPRESSION" "PROPERTY_HINT_EXP_EASING"
"PROPERTY_HINT_FILE" "PROPERTY_HINT_FLAGS" "PROPERTY_HINT_GLOBAL_DIR"
"PROPERTY_HINT_GLOBAL_FILE" "PROPERTY_HINT_GLOBAL_SAVE_FILE"
"PROPERTY_HINT_HIDE_QUATERNION_EDIT" "PROPERTY_HINT_INT_IS_OBJECTID"
"PROPERTY_HINT_INT_IS_POINTER" "PROPERTY_HINT_LAYERS_2D_NAVIGATION"
"PROPERTY_HINT_LAYERS_2D_PHYSICS" "PROPERTY_HINT_LAYERS_2D_RENDER"
"PROPERTY_HINT_LAYERS_3D_NAVIGATION" "PROPERTY_HINT_LAYERS_3D_PHYSICS"
"PROPERTY_HINT_LAYERS_3D_RENDER" "PROPERTY_HINT_LAYERS_AVOIDANCE" "PROPERTY_HINT_LINK"
"PROPERTY_HINT_LOCALE_ID" "PROPERTY_HINT_LOCALIZABLE_STRING" "PROPERTY_HINT_MAX"
"PROPERTY_HINT_MULTILINE_TEXT" "PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE"
"PROPERTY_HINT_NODE_PATH_VALID_TYPES" "PROPERTY_HINT_NODE_TYPE" "PROPERTY_HINT_NONE"
"PROPERTY_HINT_OBJECT_ID" "PROPERTY_HINT_OBJECT_TOO_BIG" "PROPERTY_HINT_PASSWORD"
"PROPERTY_HINT_COLOR_NO_ALPHA" "PROPERTY_HINT_DICTIONARY_TYPE" "PROPERTY_HINT_DIR"
"PROPERTY_HINT_ENUM" "PROPERTY_HINT_ENUM_SUGGESTION" "PROPERTY_HINT_EXP_EASING"
"PROPERTY_HINT_EXPRESSION" "PROPERTY_HINT_FILE" "PROPERTY_HINT_FILE_PATH" "PROPERTY_HINT_FLAGS"
"PROPERTY_HINT_GLOBAL_DIR" "PROPERTY_HINT_GLOBAL_FILE" "PROPERTY_HINT_GLOBAL_SAVE_FILE"
"PROPERTY_HINT_GROUP_ENABLE" "PROPERTY_HINT_HIDE_QUATERNION_EDIT" "PROPERTY_HINT_INPUT_NAME"
"PROPERTY_HINT_INT_IS_OBJECTID" "PROPERTY_HINT_INT_IS_POINTER"
"PROPERTY_HINT_LAYERS_2D_NAVIGATION" "PROPERTY_HINT_LAYERS_2D_PHYSICS"
"PROPERTY_HINT_LAYERS_2D_RENDER" "PROPERTY_HINT_LAYERS_3D_NAVIGATION"
"PROPERTY_HINT_LAYERS_3D_PHYSICS" "PROPERTY_HINT_LAYERS_3D_RENDER"
"PROPERTY_HINT_LAYERS_AVOIDANCE" "PROPERTY_HINT_LINK" "PROPERTY_HINT_LOCALE_ID"
"PROPERTY_HINT_LOCALIZABLE_STRING" "PROPERTY_HINT_MAX" "PROPERTY_HINT_MULTILINE_TEXT"
"PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE" "PROPERTY_HINT_NODE_PATH_VALID_TYPES"
"PROPERTY_HINT_NODE_TYPE" "PROPERTY_HINT_NONE" "PROPERTY_HINT_OBJECT_ID"
"PROPERTY_HINT_OBJECT_TOO_BIG" "PROPERTY_HINT_ONESHOT" "PROPERTY_HINT_PASSWORD"
"PROPERTY_HINT_PLACEHOLDER_TEXT" "PROPERTY_HINT_RANGE" "PROPERTY_HINT_RESOURCE_TYPE"
"PROPERTY_HINT_SAVE_FILE" "PROPERTY_HINT_TYPE_STRING" "PROPERTY_USAGE_ALWAYS_DUPLICATE"
"PROPERTY_USAGE_ARRAY" "PROPERTY_USAGE_CATEGORY" "PROPERTY_USAGE_CHECKABLE"
"PROPERTY_USAGE_CHECKED" "PROPERTY_USAGE_CLASS_IS_BITFIELD" "PROPERTY_USAGE_CLASS_IS_ENUM"
"PROPERTY_USAGE_DEFAULT" "PROPERTY_USAGE_DEFERRED_SET_RESOURCE" "PROPERTY_USAGE_EDITOR"
"PROPERTY_USAGE_EDITOR_BASIC_SETTING" "PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT"
"PROPERTY_USAGE_GROUP" "PROPERTY_USAGE_HIGH_END_GFX" "PROPERTY_USAGE_INTERNAL"
"PROPERTY_USAGE_KEYING_INCREMENTS" "PROPERTY_USAGE_NEVER_DUPLICATE"
"PROPERTY_USAGE_NIL_IS_VARIANT" "PROPERTY_USAGE_NODE_PATH_FROM_SCENE_ROOT" "PROPERTY_USAGE_NONE"
"PROPERTY_USAGE_NO_EDITOR" "PROPERTY_USAGE_NO_INSTANCE_STATE" "PROPERTY_USAGE_READ_ONLY"
"PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT" "PROPERTY_USAGE_RESTART_IF_CHANGED"
"PROPERTY_USAGE_SCRIPT_DEFAULT_VALUE" "PROPERTY_USAGE_SCRIPT_VARIABLE" "PROPERTY_USAGE_SECRET"
"PROPERTY_USAGE_STORAGE" "PROPERTY_USAGE_STORE_IF_NULL" "PROPERTY_USAGE_SUBGROUP"
"PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED" "SIDE_BOTTOM" "SIDE_LEFT" "SIDE_RIGHT" "SIDE_TOP"
"TYPE_AABB" "TYPE_ARRAY" "TYPE_BASIS" "TYPE_BOOL" "TYPE_CALLABLE" "TYPE_COLOR" "TYPE_DICTIONARY"
"TYPE_FLOAT" "TYPE_INT" "TYPE_MAX" "TYPE_NIL" "TYPE_NODE_PATH" "TYPE_OBJECT"
"TYPE_PACKED_BYTE_ARRAY" "TYPE_PACKED_COLOR_ARRAY" "TYPE_PACKED_FLOAT32_ARRAY"
"TYPE_PACKED_FLOAT64_ARRAY" "TYPE_PACKED_INT32_ARRAY" "TYPE_PACKED_INT64_ARRAY"
"TYPE_PACKED_STRING_ARRAY" "TYPE_PACKED_VECTOR2_ARRAY" "TYPE_PACKED_VECTOR3_ARRAY" "TYPE_PLANE"
"TYPE_PROJECTION" "TYPE_QUATERNION" "TYPE_RECT2" "TYPE_RECT2I" "TYPE_RID" "TYPE_SIGNAL"
"TYPE_STRING" "TYPE_STRING_NAME" "TYPE_TRANSFORM2D" "TYPE_TRANSFORM3D" "TYPE_VECTOR2"
"TYPE_VECTOR2I" "TYPE_VECTOR3" "TYPE_VECTOR3I" "TYPE_VECTOR4" "TYPE_VECTOR4I" "VERTICAL"
"PROPERTY_HINT_SAVE_FILE" "PROPERTY_HINT_TOOL_BUTTON" "PROPERTY_HINT_TYPE_STRING"
"PROPERTY_USAGE_ALWAYS_DUPLICATE" "PROPERTY_USAGE_ARRAY" "PROPERTY_USAGE_CATEGORY"
"PROPERTY_USAGE_CHECKABLE" "PROPERTY_USAGE_CHECKED" "PROPERTY_USAGE_CLASS_IS_BITFIELD"
"PROPERTY_USAGE_CLASS_IS_ENUM" "PROPERTY_USAGE_DEFAULT" "PROPERTY_USAGE_DEFERRED_SET_RESOURCE"
"PROPERTY_USAGE_EDITOR" "PROPERTY_USAGE_EDITOR_BASIC_SETTING"
"PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT" "PROPERTY_USAGE_GROUP" "PROPERTY_USAGE_HIGH_END_GFX"
"PROPERTY_USAGE_INTERNAL" "PROPERTY_USAGE_KEYING_INCREMENTS" "PROPERTY_USAGE_NEVER_DUPLICATE"
"PROPERTY_USAGE_NIL_IS_VARIANT" "PROPERTY_USAGE_NODE_PATH_FROM_SCENE_ROOT"
"PROPERTY_USAGE_NO_EDITOR" "PROPERTY_USAGE_NO_INSTANCE_STATE" "PROPERTY_USAGE_NONE"
"PROPERTY_USAGE_READ_ONLY" "PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT"
"PROPERTY_USAGE_RESTART_IF_CHANGED" "PROPERTY_USAGE_SCRIPT_DEFAULT_VALUE"
"PROPERTY_USAGE_SCRIPT_VARIABLE" "PROPERTY_USAGE_SECRET" "PROPERTY_USAGE_STORAGE"
"PROPERTY_USAGE_STORE_IF_NULL" "PROPERTY_USAGE_SUBGROUP" "PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED"
"SIDE_BOTTOM" "SIDE_LEFT" "SIDE_RIGHT" "SIDE_TOP" "TYPE_AABB" "TYPE_ARRAY" "TYPE_BASIS"
"TYPE_BOOL" "TYPE_CALLABLE" "TYPE_COLOR" "TYPE_DICTIONARY" "TYPE_FLOAT" "TYPE_INT" "TYPE_MAX"
"TYPE_NIL" "TYPE_NODE_PATH" "TYPE_OBJECT" "TYPE_PACKED_BYTE_ARRAY" "TYPE_PACKED_COLOR_ARRAY"
"TYPE_PACKED_FLOAT32_ARRAY" "TYPE_PACKED_FLOAT64_ARRAY" "TYPE_PACKED_INT32_ARRAY"
"TYPE_PACKED_INT64_ARRAY" "TYPE_PACKED_STRING_ARRAY" "TYPE_PACKED_VECTOR2_ARRAY"
"TYPE_PACKED_VECTOR3_ARRAY" "TYPE_PACKED_VECTOR4_ARRAY" "TYPE_PLANE" "TYPE_PROJECTION"
"TYPE_QUATERNION" "TYPE_RECT2" "TYPE_RECT2I" "TYPE_RID" "TYPE_SIGNAL" "TYPE_STRING"
"TYPE_STRING_NAME" "TYPE_TRANSFORM2D" "TYPE_TRANSFORM3D" "TYPE_VECTOR2" "TYPE_VECTOR2I"
"TYPE_VECTOR3" "TYPE_VECTOR3I" "TYPE_VECTOR4" "TYPE_VECTOR4I" "VERTICAL"
"VERTICAL_ALIGNMENT_BOTTOM" "VERTICAL_ALIGNMENT_CENTER" "VERTICAL_ALIGNMENT_FILL"
"VERTICAL_ALIGNMENT_TOP"))

View file

@ -106,7 +106,7 @@
(string) @string
; Bit Strings
(bit_string_segment) @string.special
(bit_array_segment) @string.special
; Numbers
(integer) @number

View file

@ -3,19 +3,12 @@
(#set! injection.language "comment"))
; <style> tags
((element_node
(element_node_start
(tag_name) @_tag_name
(#eq? @_tag_name "style"))) @injection.content
(#offset! @injection.content 0 7 0 -8)
(#set! injection.language "css")
(#set! injection.include-children))
((style_element
(raw_text) @injection.content)
(#set! injection.language "css"))
; <script> tags
((element_node
(element_node_start
(tag_name) @_tag_name
(#eq? @_tag_name "script"))) @injection.content
(#offset! @injection.content 0 8 0 -9)
(#set! injection.language "glimmer_javascript")
((script_element
(raw_text) @injection.content)
(#set! injection.language "javascript")
(#set! injection.include-children))

View file

@ -1,3 +1,5 @@
; inherits: typescript
(glimmer_opening_tag) @indent.begin
(glimmer_closing_tag) @indent.end

View file

@ -9,7 +9,8 @@
(_) @variable.parameter))
(expression/lambda
(_)+ @variable.parameter
patterns: (patterns
(_) @variable.parameter)
"->")
(decl/function
@ -226,7 +227,8 @@
(qualified
((module) @module
(variable) @function.call))
])
]
operator: (operator))
; infix operators applied to variables
((expression/variable) @variable
@ -245,7 +247,7 @@
(function
(infix
left_operand: [
(variable) @variable
(variable) @variable.parameter
(qualified
((module) @module
(variable) @variable))

View file

@ -83,3 +83,14 @@
(#any-of? @_name "pymain" "pye" "py_" "pyf")
(quasiquote_body) @injection.content
(#set! injection.language "python"))
; -----------------------------------------------------------------------------
; GraphQL
; morpheus-graphql-client
(_
function: (apply
function: (variable) @_name)
argument: (quasiquote
body: (quasiquote_body) @injection.content)
(#set! injection.language "graphql")
(#eq? @_name "declareLocalTypesInline"))

View file

@ -1,9 +1,11 @@
(tag_name) @tag
(tag_name) @tag @nospell
; (erroneous_end_tag_name) @error ; we do not lint syntax errors
(comment) @comment @spell
(attribute_name) @tag.attribute
(attribute_name) @tag.attribute @nospell
(attribute_value) @nospell
((attribute
(quoted_attribute_value) @string)

View file

@ -36,3 +36,5 @@
((escape_sequence) @conceal
(#eq? @conceal "\\\"")
(#set! conceal "\""))
(comment) @comment @spell

View file

@ -7,3 +7,5 @@
"}"
"]"
] @indent.branch
(comment) @indent.ignore

View file

@ -1 +0,0 @@
; inherits: json

View file

@ -1,3 +0,0 @@
; inherits: json
(comment) @comment @spell

View file

@ -1,3 +0,0 @@
; inherits: json
(comment) @indent.ignore

View file

@ -1 +0,0 @@
; inherits: json

View file

@ -0,0 +1,19 @@
[
(function_decl)
(constructor_literal)
(function_literal)
(class_decl)
(class_literal)
(do_statement)
(if_statement)
(try_statement)
(defer_statement)
(with_statement)
(switch_statement)
(switch_case)
(default_case)
(loop_statement)
(repeat_statement)
(while_statement)
(for_statement)
] @fold

View file

@ -0,0 +1,156 @@
(hash_bang) @keyword.directive
(comment) @comment @spell
(number) @number
(float_number) @number.float
(identifier) @variable
(parameter
parameter: (identifier) @variable.parameter)
(property_identifier) @property
[
(string_literal)
(string_literal_begin)
(string_literal_continuation)
(string_literal_end)
] @string
[
"case"
"default"
"else"
"if"
"switch"
] @keyword.conditional
"import" @keyword.import
[
(break_statement)
(continue_statement)
"for"
"loop"
"repeat"
"while"
] @keyword.repeat
(for_statement
"in" @keyword.repeat)
"class" @keyword.type
[
"return"
"yield"
] @keyword.return
[
"catch"
"defer"
"throw"
"try"
] @keyword.exception
[
"constructor"
"fun"
"=>"
] @keyword.function
"_" @character.special
[
(line)
"assert"
;"async"
"const"
"do"
"extends"
(fallthrough_statement)
;"get"
;"match"
"public"
;"set"
;"static"
"var"
"with"
] @keyword
[
(this)
(super)
] @variable.builtin
[
(false)
(true)
] @boolean
(void) @constant.builtin
[
"("
")"
"["
"]"
"{"
"}"
] @punctuation.bracket
(string_literal_begin
"\\(" @punctuation.special)
(string_literal_continuation
"\\(" @punctuation.special)
(formatted_string
")" @punctuation.special)
[
";"
":"
"."
","
] @punctuation.delimiter
[
(arithmetic_assignment_operator)
(comparison_operator)
(bitwise_operator)
(additive_operator)
(multiplicative_operator)
(logical_operator)
(unary_operator)
"->"
"..."
"="
"?"
] @operator
(conditional_expression
[
"?"
":"
] @keyword.conditional.ternary)
(class_member
(function_decl
name: (identifier) @function.method))
(function_decl
name: (identifier) @function)
(class_decl
name: (identifier) @type)
(invocation
(identifier) @function.call)
(invocation
(refinement
property: (property_identifier) @function.method.call))

View file

@ -0,0 +1,6 @@
(((comment) @_jsdoc_comment
(#lua-match? @_jsdoc_comment "^/[*][*][^*].*[*]/$")) @injection.content
(#set! injection.language "jsdoc"))
((comment) @injection.content
(#set! injection.language "comment"))

View file

@ -0,0 +1,41 @@
; Scopes
;-------
(compound_statement) @local.scope
(for_statement) @local.scope
(function_decl) @local.scope
(constructor_literal) @local.scope
(function_literal) @local.scope
(with_statement) @local.scope
(catch_clause) @local.scope
; Definitions
;------------
(variable_decl
variable: (identifier) @local.definition.var)
(parameter
parameter: (identifier) @local.definition.parameter)
(import
module: (identifier) @local.definition.import)
(import
symbol: (identifier) @local.definition.import)
(function_decl
name: (identifier) @local.definition.function
(#set! definition.var.scope parent))
(class_decl
name: (identifier) @local.definition.type
(#set! definition.var.scope parent))
; References
;------------
(identifier) @local.reference

View file

@ -153,7 +153,7 @@
"charArrayOf" "emptyArray" "mapOf" "setOf" "listOf" "emptyMap" "emptySet" "emptyList"
"mutableMapOf" "mutableSetOf" "mutableListOf" "print" "println" "error" "TODO" "run"
"runCatching" "repeat" "lazy" "lazyOf" "enumValues" "enumValueOf" "assert" "check"
"checkNotNull" "require" "requireNotNull" "with" "suspend" "synchronized"))
"checkNotNull" "require" "requireNotNull" "with" "synchronized"))
; Literals
[
@ -343,12 +343,11 @@
"?:"
"!!"
"is"
"!is"
"in"
"!in"
"as"
"as?"
".."
"..<"
"->"
] @operator

View file

@ -70,36 +70,20 @@
] @keyword.function)
; Operators
(binary_expression
operator: _ @operator)
(unary_expression
operator: _ @operator)
"=" @operator
[
"and"
"not"
"or"
] @keyword.operator
[
"+"
"-"
"*"
"/"
"%"
"^"
"#"
"=="
"~="
"<="
">="
"<"
">"
"="
"&"
"~"
"|"
"<<"
">>"
"//"
".."
] @operator
; Punctuations
[
";"

View file

@ -34,10 +34,10 @@
(_)
.
(string
content: _ @_method)
content: (_) @_method)
.
(string
content: _ @injection.content)))
content: (_) @injection.content)))
(#any-of? @_vimcmd_identifier "vim.rpcrequest" "vim.rpcnotify")
(#eq? @_method "nvim_exec_lua")
(#set! injection.language "lua"))

View file

@ -167,6 +167,7 @@
"eval"
"file"
"value"
"let"
] @function.builtin)
"\\" @punctuation.special

View file

@ -1,5 +1,8 @@
(comment) @comment @spell
(annot_atom
doc: (static_string) @spell)
[
"forall"
"in"
@ -7,6 +10,10 @@
"default"
"doc"
"rec"
"optional"
"priority"
"force"
"not_exported"
] @keyword
"fun" @keyword.function
@ -23,20 +30,54 @@
(types) @type
"Array" @type.builtin
[
"Array"
"Number"
"Dyn"
"Bool"
"String"
] @type.builtin
; BUILTIN Constants
(bool) @boolean
"null" @constant.builtin
(enum_tag) @constant
(num_literal) @number
(infix_op) @operator
[
(infix_op)
"|>"
"="
"&"
"&&"
"||"
"=="
"+"
"-"
"*"
"/"
"%"
"!"
"?"
"!="
"<"
"<="
">"
">="
"@"
".."
"=>"
"++"
] @operator
"or" @keyword.operator
(type_atom) @type
(enum_tag) @variable
(static_string) @string
(chunk_literal_single) @string
@ -51,24 +92,60 @@
")"
"[|"
"|]"
"["
"]"
] @punctuation.bracket
(multstr_start) @punctuation.bracket
[
","
"."
":"
";"
"|"
"->"
] @punctuation.delimiter
(multstr_end) @punctuation.bracket
(multstr_start) @string
(interpolation_start) @punctuation.bracket
(multstr_end) @string
(interpolation_end) @punctuation.bracket
(field_decl) @variable.member
[
(interpolation_start)
(interpolation_end)
] @punctuation.special
(builtin) @function.builtin
(builtin
"%" @function.builtin)
(fun_expr
pats: (pattern_fun
(ident) @variable.parameter))
; application where the head terms is an identifier: function arg1 arg2 arg3
(applicative
t1: (applicative
(record_operand) @function))
.
(record_operand
(atom
(ident))) @function))
; application where the head terms is a record field path: foo.bar.function arg1 arg2 arg3
(applicative
t1: (applicative
.
(record_operand
(record_operation_chain)) @function))
(str_chunks) @string
(field_path_elem) @property
(infix_expr
op: (infix_b_op_6)
t2: (infix_expr
(applicative
.
(record_operand
(record_operation_chain) @function))))

View file

@ -34,7 +34,7 @@
((string_fragment) @injection.content
(#set! injection.language "regex")))
]
(#match? @_func "(^|\\.)match$")
(#lua-match? @_func "^%a*%.*match$")
(#set! injection.combined))
(binding
@ -48,7 +48,50 @@
((string_fragment) @injection.content
(#set! injection.language "bash")))
]
(#match? @_path "(^\\w+(Phase|Hook|Check)|(pre|post)[A-Z]\\w+|script)$"))
(#lua-match? @_path "^%a+Phase$")
(#set! injection.combined))
(binding
attrpath: (attrpath
(identifier) @_path)
expression: [
(string_expression
((string_fragment) @injection.content
(#set! injection.language "bash")))
(indented_string_expression
((string_fragment) @injection.content
(#set! injection.language "bash")))
]
(#lua-match? @_path "^pre%a+$")
(#set! injection.combined))
(binding
attrpath: (attrpath
(identifier) @_path)
expression: [
(string_expression
((string_fragment) @injection.content
(#set! injection.language "bash")))
(indented_string_expression
((string_fragment) @injection.content
(#set! injection.language "bash")))
]
(#lua-match? @_path "^post%a+$")
(#set! injection.combined))
(binding
attrpath: (attrpath
(identifier) @_path)
expression: [
(string_expression
((string_fragment) @injection.content
(#set! injection.language "bash")))
(indented_string_expression
((string_fragment) @injection.content
(#set! injection.language "bash")))
]
(#lua-match? @_path "^script$")
(#set! injection.combined))
(apply_expression
function: (_) @_func
@ -67,8 +110,8 @@
((string_fragment) @injection.content
(#set! injection.language "bash")))
])))
(#match? @_func "(^|\\.)writeShellApplication$")
(#match? @_path "^text$")
(#lua-match? @_func "^%a*%.*writeShellApplication$")
(#lua-match? @_path "^text$")
(#set! injection.combined))
(apply_expression
@ -83,7 +126,7 @@
((string_fragment) @injection.content
(#set! injection.language "bash")))
]
(#match? @_func "(^|\\.)runCommand((No)?CC)?(Local)?$")
(#lua-match? @_func "^%a*%.*runCommand%a*$")
(#set! injection.combined))
((apply_expression
@ -97,7 +140,35 @@
((string_fragment) @injection.content
(#set! injection.language "bash")))
])
(#match? @_func "(^|\\.)write(Bash|Dash|ShellScript)(Bin)?$")
(#lua-match? @_func "^%a*%.*writeBash%a*$")
(#set! injection.combined))
((apply_expression
function: (apply_expression
function: (_) @_func)
argument: [
(string_expression
((string_fragment) @injection.content
(#set! injection.language "bash")))
(indented_string_expression
((string_fragment) @injection.content
(#set! injection.language "bash")))
])
(#lua-match? @_func "^%a*%.*writeDash%a*$")
(#set! injection.combined))
((apply_expression
function: (apply_expression
function: (_) @_func)
argument: [
(string_expression
((string_fragment) @injection.content
(#set! injection.language "bash")))
(indented_string_expression
((string_fragment) @injection.content
(#set! injection.language "bash")))
])
(#lua-match? @_func "^%a*%.*writeShellScript%a*$")
(#set! injection.combined))
((apply_expression
@ -111,7 +182,7 @@
((string_fragment) @injection.content
(#set! injection.language "fish")))
])
(#match? @_func "(^|\\.)writeFish(Bin)?$")
(#lua-match? @_func "^%a*%.*writeFish%a*$")
(#set! injection.combined))
((apply_expression
@ -126,13 +197,12 @@
((string_fragment) @injection.content
(#set! injection.language "haskell")))
])
(#match? @_func "(^|\\.)writeHaskell(Bin)?$")
(#lua-match? @_func "^%a*%.*writeHaskell%a*$")
(#set! injection.combined))
((apply_expression
function: (apply_expression
function: (apply_expression
function: (_) @_func))
function: (_) @_func)
argument: [
(string_expression
((string_fragment) @injection.content
@ -141,13 +211,12 @@
((string_fragment) @injection.content
(#set! injection.language "javascript")))
])
(#match? @_func "(^|\\.)writeJS(Bin)?$")
(#lua-match? @_func "^%a*%.*writeJS%a*$")
(#set! injection.combined))
((apply_expression
function: (apply_expression
function: (apply_expression
function: (_) @_func))
function: (_) @_func)
argument: [
(string_expression
((string_fragment) @injection.content
@ -156,13 +225,12 @@
((string_fragment) @injection.content
(#set! injection.language "perl")))
])
(#match? @_func "(^|\\.)writePerl(Bin)?$")
(#lua-match? @_func "^%a*%.*writePerl%a*$")
(#set! injection.combined))
((apply_expression
function: (apply_expression
function: (apply_expression
function: (_) @_func))
function: (_) @_func)
argument: [
(string_expression
((string_fragment) @injection.content
@ -171,13 +239,11 @@
((string_fragment) @injection.content
(#set! injection.language "python")))
])
(#match? @_func "(^|\\.)write(PyPy|Python)[23](Bin)?$")
(#lua-match? @_func "^%a*%.*writePy%a*%d*%a*$")
(#set! injection.combined))
((apply_expression
function: (apply_expression
function: (apply_expression
function: (_) @_func))
function: (_) @_func
argument: [
(string_expression
((string_fragment) @injection.content
@ -186,20 +252,38 @@
((string_fragment) @injection.content
(#set! injection.language "rust")))
])
(#match? @_func "(^|\\.)writeRust(Bin)?$")
(#lua-match? @_func "^%a*%.*writeRust%a*$")
(#set! injection.combined))
; (runTest) testScript
(apply_expression
function: (_) @_func
argument: (_
(_)*
(_
(binding
attrpath: (attrpath) @_func_name
expression: (_
(string_fragment) @injection.content
(#set! injection.language "python")))
(#eq? @_func_name "testScript")
(#lua-match? @_func "^.*%.*runTest$")
(#set! injection.combined))))
; (nixosTest) testScript
((binding
attrpath: (attrpath) @_attr_name
(#eq? @_attr_name "nodes"))
(binding
attrpath: (attrpath) @_func_name
(#eq? @_func_name "testScript")
(apply_expression
function: (_) @_func
argument: (_
(_)*
(_
(string_fragment) @injection.content
(#set! injection.language "python")))
(#set! injection.combined))
(binding
attrpath: (attrpath) @_func_name
expression: (_
(string_fragment) @injection.content
(#set! injection.language "python")))
(#eq? @_func_name "testScript")
(#lua-match? @_func "^.*%.*nixosTest$")
(#set! injection.combined))))
; home-manager Neovim plugin config
(attrset_expression

View file

@ -2,6 +2,8 @@
(enum)
(message)
(service)
(oneof)
(rpc)
] @fold
(import)+ @fold

View file

@ -11,6 +11,9 @@
(field_option
(identifier) @property)
(enum_value_option
(identifier) @property)
(block_lit
(identifier) @property)
@ -21,13 +24,17 @@
"option"
"reserved"
"syntax"
"edition"
"to"
"max"
] @keyword
[
"enum"
"group"
"service"
"message"
"map"
] @keyword.type
"rpc" @keyword.function
@ -35,9 +42,14 @@
"returns" @keyword.return
[
"export"
"local"
"optional"
"repeated"
"required"
"stream"
"weak"
"public"
] @keyword.modifier
[
@ -65,6 +77,8 @@
"\"proto2\""
] @string.special
(escape_sequence) @string.escape
(int_lit) @number
(float_lit) @number.float
@ -97,4 +111,8 @@
":"
] @punctuation.delimiter
"=" @operator
[
"="
"-"
"+"
] @operator

View file

@ -10,7 +10,13 @@
(test_case_setting)
] @keyword
(variable_definition
(scalar_variable
(variable_name) @variable)
(list_variable
(variable_name) @variable)
(dictionary_variable
(variable_name) @variable)
(keyword_definition

View file

@ -1,2 +0,0 @@
((comment) @injection.content
(#set! injection.language "comment"))

View file

@ -48,6 +48,9 @@
"then"
] @keyword.conditional
(in_clause
"in" @keyword.conditional)
(if
"end" @keyword.conditional)
@ -61,6 +64,9 @@
"next"
] @keyword.repeat
(in
"in" @keyword.repeat)
(constant) @constant
((identifier) @keyword.modifier
@ -186,10 +192,14 @@
[
(bare_symbol)
(simple_symbol)
(delimited_symbol)
(hash_key_symbol)
] @string.special.symbol
(delimited_symbol
":\"" @string.special.symbol
(string_content) @string.special.symbol
"\"" @string.special.symbol)
(regex
(string_content) @string.regexp)
@ -287,6 +297,9 @@
(pair
":" @punctuation.delimiter)
(keyword_pattern
":" @punctuation.delimiter)
[
"("
")"

View file

@ -476,9 +476,12 @@
[
(line_comment)
(block_comment)
] @comment @spell
[
(outer_doc_comment_marker)
(inner_doc_comment_marker)
] @comment @spell
] @comment.documentation
(line_comment
(doc_comment)) @comment.documentation

View file

@ -5,7 +5,7 @@
(identifier) @_macro_name
]
(token_tree) @injection.content
(#not-any-of? @_macro_name "slint" "html" "json")
(#not-any-of? @_macro_name "slint" "html" "json" "xml")
(#set! injection.language "rust")
(#set! injection.include-children))
@ -16,7 +16,7 @@
(identifier) @injection.language
]
(token_tree) @injection.content
(#any-of? @injection.language "slint" "html" "json")
(#any-of? @injection.language "slint" "html" "json" "xml")
(#offset! @injection.content 0 1 0 -1)
(#set! injection.include-children))

View file

@ -13,8 +13,12 @@
(keyword_object_id)
] @function.call
(object_reference
name: (identifier) @type)
((object_reference
name: (identifier) @type) @_obj_ref
(#not-has-parent? @_obj_ref invocation))
(cte
(identifier) @type)
(relation
alias: (identifier) @variable)

View file

@ -2,5 +2,4 @@
(function_call)
(code_block)
(function_block)
(control_structure)
] @fold

View file

@ -1,6 +1,6 @@
; highlights.scm
; See this for full list: https://github.com/nvim-treesitter/nvim-treesitter/blob/master/CONTRIBUTING.md
; comments
; Comments
(line_comment) @comment @spell
(block_comment) @comment @spell
@ -9,6 +9,12 @@
(argument
name: (identifier) @variable.parameter)
"..." @variable.parameter ; variable argument
; For function calls
(named_argument
name: (identifier) @variable.parameter)
; Variables
(local_var
name: (identifier) @variable)
@ -18,31 +24,58 @@
(builtin_var) @constant.builtin
; (variable) @variable
; Functions
(function_definition
name: (variable) @function)
; For function calls
(named_argument
name: (identifier) @function.call)
; Methods
(method_call
name: (method_name) @function.method.call)
(function_call
name: (_) @function.method.call)
; Collections
(associative_item
(identifier) @property)
; Classes
(class) @type
(parent_class) @type
(instance_method_name) @function.method
(class_method_name) @function.method
; Literals
(bool) @boolean
(number) @number
(float) @number.float
(string) @string
(escape_sequence) @string.escape
(symbol) @string.special.symbol
; Conditionals
[
"?"
"!?"
"??"
] @keyword.conditional
((function_call
name: (_) @keyword.conditional)
(#any-of? @keyword.conditional "if" "while" "case" "switch" "try" "protect"))
((function_call
name: (_) @keyword.repeat)
(#any-of? @keyword.repeat "for" "forBy"))
; Duplication operator
"!" @keyword.repeat
; Operators
[
"&&"
@ -52,6 +85,8 @@
"^"
"=="
"!="
"==="
"!=="
"<"
"<="
">"
@ -64,6 +99,13 @@
"/"
"%"
"="
"@"
"|@|"
"@@"
"@|@"
"++"
"+/+"
".."
] @operator
; Keywords
@ -71,11 +113,13 @@
"arg"
"classvar"
"const"
; "super"
; "this"
"var"
] @keyword
((local_var
name: (identifier) @variable.builtin)
(#any-of? @variable.builtin "this" "super"))
; Brackets
[
"("
@ -92,12 +136,5 @@
";"
"."
","
":"
] @punctuation.delimiter
; control structure
(control_structure) @keyword.conditional
(escape_sequence) @string.escape
; SinOsc.ar()!2
(duplicated_statement) @keyword.repeat

View file

@ -12,21 +12,30 @@
(variable_definition)
(variable_definition_sequence
(variable_definition))
(control_structure)
(return_statement)
] @indent.begin
[
(parameter_call_list
(argument_calls))
"("
(_))
")"
"{"
"}"
"["
"]"
] @indent.branch
; for auto-indent while typing
(ERROR
"{") @indent.begin
(ERROR
"}") @indent.branch
(ERROR
"[") @indent.begin
(ERROR
"]") @indent.branch
[
(block_comment)
(line_comment)

View file

@ -3,7 +3,6 @@
(function_call)
(code_block)
(function_block)
(control_structure)
] @local.scope
; Definitions

View file

@ -6,6 +6,18 @@
(number) @number
"-" @operator
[
":"
";"
","
"."
"/"
] @punctuation.delimiter
(string_escape) @string.escape
; For stuff like "inf" and "-inf".
(scalar_value
[

View file

@ -1 +1,11 @@
(block) @fold
[
(block)
(condition_block)
(multiline_value)
] @fold
(import_legacy)+ @fold
(import)+ @fold
(comment)+ @fold

View file

@ -1,10 +1,28 @@
(identifier) @variable.member
(symfony_variable) @variable
(constant) @constant
(modifier_function) @function
(symfony_method) @function.method.call
(modifier_predefined) @function.builtin
[
(modifier_function)
(symfony_function)
] @function.call
[
(modifier_predefined)
(symfony_predefined_function)
] @function.builtin
(modifier_parameter) @variable.parameter
(symfony_function_parameter
(symfony_variable) @variable.parameter)
(symfony_method_parameter
(symfony_variable) @variable.parameter)
[
(condition)
@ -12,13 +30,19 @@
(condition_else)
] @keyword.conditional
(cobject) @type.builtin
[
"@import"
"INCLUDE_TYPOSCRIPT"
] @keyword.import
(condition_attribute) @tag.attribute
(cobject) @type.builtin
(symfony_built_in_variable) @variable.builtin
(symfony_property) @variable.member
[
(comment)
(single_line_comment)
@ -26,22 +50,59 @@
[
(string)
(multiline_value)
(multiline_value_content)
(symfony_string)
] @string
(deletion_line
">" @operator)
(copy_line
"<" @operator)
[
"="
">"
"<"
":="
"=<"
(condition_bool)
":="
"?."
(symfony_condition_operator)
(condition_bool_legacy)
(constant_null_coalescing)
] @operator
"," @punctuation.delimiter
(symfony_ternary_operator) @keyword.conditional.ternary
((symfony_condition_operator) @keyword.operator
(#any-of? @keyword.operator
"and" "or" "xor" "not" "not in" "in" "contains" "starts with" "ends with" "matches"))
[
","
"."
] @punctuation.delimiter
(symfony_property_access
"." @operator)
(symfony_method_call
"." @operator)
[
"("
")"
"["
"]"
(block_punctuation)
] @punctuation.bracket
(condition
"[" @punctuation.special)
(condition
"]" @punctuation.special)
(symfony_number) @number
(symfony_boolean) @boolean
(symfony_null) @constant.builtin

View file

@ -1,5 +1,13 @@
(block) @indent.begin
"}" @indent.branch @indent.end
"}" @indent.end
(comment) @indent.ignore
[
"{"
"}"
] @indent.branch
[
(comment)
(multiline_value)
] @indent.ignore

View file

@ -1,2 +1,13 @@
((multiline_line
(identifier) @_id
.
(multiline_value
(multiline_value_content) @injection.content))
(#lua-match? @_id "_CSS_DEFAULT_STYLE$")
(#set! injection.language "css"))
((comment) @injection.content
(#set! injection.language "comment"))
((single_line_comment) @injection.content
(#set! injection.language "comment"))

View file

@ -106,7 +106,17 @@
(emph) @markup.italic
(url) @markup.link.url
((url) @markup.link.url
(#set! @markup.link.url url @markup.link.url))
(call
item: (ident) @_link
(#eq? @_link "link")
(group
.
(string) @markup.link.url
(#offset! @markup.link.url 0 1 0 -1)
(#set! @markup.link.url url @markup.link.url)))
; code blocks
(raw_span) @markup.raw

View file

@ -3,10 +3,12 @@
(let)
(show)
(call)
(for)
(branch)
] @indent.begin
[
"]"
"}"
")"
] @indent.branch @indent.end
] @indent.end @indent.branch

View file

@ -52,12 +52,14 @@
"]"
"{"
"}"
"[]"
] @punctuation.bracket
[
":"
";"
"."
","
] @punctuation.delimiter
"=" @operator

View file

@ -1,6 +1,26 @@
(comment) @comment @spell
(keyword) @keyword
[
"if"
"/if"
"else"
"for"
"/for"
"layout"
"/layout"
"set"
"/set"
"import"
"export"
"/export"
"include"
"function"
"/function"
"fragment"
"/fragment"
"of"
"async"
] @keyword
(tag
[

View file

@ -30,6 +30,12 @@
"Theme"
"LoopOffset"
"Width"
"BorderRadius"
"Margin"
"MarginFill"
"WindowBar"
"WindowBarSize"
"CursorBlink"
] @type
"@" @operator

View file

@ -110,6 +110,7 @@
"cnext"
"cprevious"
"cNext"
"tab"
"vertical"
"leftabove"
"aboveleft"

View file

@ -1,5 +1,5 @@
#!/usr/bin/env -S nvim -l
vim.opt.runtimepath:append('.')
vim.o.rtp = vim.o.rtp .. ',.'
local configs = require('nvim-treesitter.parsers')
local parsers = #_G.arg > 0 and { unpack(_G.arg) }

View file

@ -1,5 +1,5 @@
#!/usr/bin/env -S nvim -l
vim.opt.runtimepath:append('.')
vim.o.rtp = vim.o.rtp .. ',.'
local query_types = require('nvim-treesitter.health').bundled_queries
local configs = require('nvim-treesitter.parsers')
@ -14,7 +14,6 @@ do
for _, lang in pairs(parsers) do
if configs[lang] and configs[lang].install_info then
timings[lang] = {}
for _, query_type in pairs(query_types) do
local before = vim.uv.hrtime()
local ok, query = pcall(vim.treesitter.query.get, lang, query_type)

View file

@ -1,8 +1,9 @@
#!/usr/bin/env -S nvim -l
vim.o.rtp = vim.o.rtp .. ',.'
local generate = false
local update = false
local max_jobs = nil ---@type integer?
local max_jobs = nil ---@type number?
local parsers = {}
for i = 1, #_G.arg do
if _G.arg[i] == '--generate' then
@ -10,14 +11,12 @@ for i = 1, #_G.arg do
elseif _G.arg[i] == '--update' then
update = true
elseif _G.arg[i]:find('^%-%-max%-jobs') then
max_jobs = _G.arg[i]:match('=(%d+)')
max_jobs = tonumber(_G.arg[i]:match('=(%d+)'))
else
parsers[#parsers + 1] = _G.arg[i] ---@type string
end
end
vim.opt.runtimepath:append('.')
---@type async.Task
local task = update and require('nvim-treesitter').update('all', { summary = true })
or require('nvim-treesitter').install(

View file

@ -1,5 +1,4 @@
vim.opt.runtimepath:append(os.getenv('PLENARY'))
vim.opt.runtimepath:append('.')
vim.o.rtp = vim.o.rtp .. ',.,' .. os.getenv('PLENARY')
vim.cmd.runtime({ 'plugin/plenary.vim', bang = true })
vim.cmd.runtime({ 'plugin/query_predicates.lua', bang = true })
vim.cmd.runtime({ 'plugin/filetypes.lua', bang = true })
@ -7,8 +6,6 @@ vim.cmd.runtime({ 'plugin/filetypes.lua', bang = true })
vim.filetype.add({
extension = {
conf = 'hocon',
ncl = 'nickel',
tig = 'tiger',
w = 'wing',
},
})

View file

@ -6,14 +6,14 @@
-- nvim -l update-parsers.lua --tier=1 # update stable parsers to latest version
-- nvim -l update-parsers.lua --tier=2 # update unstable parsers to latest commit
local tier = nil ---@type integer?
local tier = nil ---@type number?
for i = 1, #_G.arg do
if _G.arg[i]:find('^%-%-tier=') then
tier = tonumber(_G.arg[i]:match('=(%d+)'))
end
end
vim.opt.runtimepath:append('.')
vim.o.rtp = vim.o.rtp .. ',.'
local util = require('nvim-treesitter.util')
local parsers = require('nvim-treesitter.parsers')
@ -41,15 +41,15 @@ for k, p in pairs(parsers) do
if #vim.tbl_keys(jobs) % 100 == 0 or next(parsers, k) == nil then
for name, job in pairs(jobs) do
local stdout = vim.split(job:wait().stdout, '\n')
local stdout = vim.split(job:wait().stdout or '', '\n')
jobs[name] = nil
local info = parsers[name].install_info
assert(info)
assert(parsers[name])
local info = assert(parsers[name].install_info)
local sha ---@type string
local sha ---@type string?
if parsers[name].tier == 1 then
sha = stdout[#stdout - 1]:match('v[%d%.]+$')
sha = stdout[#stdout - 1] and stdout[#stdout - 1]:match('v[%d%.]+$')
else
local branch = info.branch
local line = 1
@ -61,10 +61,10 @@ for k, p in pairs(parsers) do
end
end
end
sha = vim.split(stdout[line], '\t')[1]
sha = stdout[line] and vim.split(stdout[line], '\t')[1]
end
if info.revision ~= sha then
if sha and sha ~= '' and info.revision ~= sha then
info.revision = sha
updates[#updates + 1] = name
end

View file

@ -1,5 +1,5 @@
#!/usr/bin/env -S nvim -l
vim.opt.runtimepath:append('.')
vim.o.rtp = vim.o.rtp .. ',.'
local util = require('nvim-treesitter.util')
local parsers = require('nvim-treesitter.parsers')
local tiers = require('nvim-treesitter.config').tiers

39
tests/indent/bash/test.sh Normal file
View file

@ -0,0 +1,39 @@
for i in 1 2 3; do
if [[ true ]]; then
echo "asd"
elif [ true ]; then
echo "dsa"
else
echo ""
fi
echo $i
done
while true; do
break
done
case $foo in
a) echo a ;;
b) echo b ;;
esac
function x() {
echo x
}
y() {
echo y
}
{
echo z
}
(
echo subshell
)
A=$(
echo command substitution
)

View file

@ -0,0 +1,33 @@
local Runner = require('tests.indent.common').Runner
local XFAIL = require('tests.indent.common').XFAIL
local run = Runner:new(it, 'tests/indent/bash', {
tabstop = 4,
shiftwidth = 4,
softtabstop = 0,
expandtab = true,
})
describe('indent Bash:', function()
describe('whole file:', function()
run:whole_file('.', {
expected_failures = {},
})
end)
describe('new line:', function()
run:new_line('test.sh', { on_line = 1, text = 'echo test', indent = 4 }) -- in "for"
run:new_line('test.sh', { on_line = 2, text = 'echo test', indent = 8 }) -- in "if"
run:new_line('test.sh', { on_line = 4, text = 'echo test', indent = 8 }) -- in "elif"
run:new_line('test.sh', { on_line = 6, text = 'echo test', indent = 8 }) -- in "else"
run:new_line('test.sh', { on_line = 8, text = 'echo test', indent = 4 }) -- after "fi"
run:new_line('test.sh', { on_line = 12, text = 'echo test', indent = 4 }) -- in "while"
run:new_line('test.sh', { on_line = 18, text = 'c) echo test ;;', indent = 4 }) -- in "case"
run:new_line('test.sh', { on_line = 21, text = 'echo test', indent = 4 }) -- in "function"
run:new_line('test.sh', { on_line = 25, text = 'echo test', indent = 4 }) -- in "f() { ... }"
run:new_line('test.sh', { on_line = 29, text = 'echo test', indent = 4 }) -- in "{ ... }"
run:new_line('test.sh', { on_line = 33, text = 'echo test', indent = 4 }) -- in subshell
run:new_line('test.sh', { on_line = 37, text = 'echo test', indent = 4 }) -- in command substitution
run:new_line('test.sh', { on_line = 39, text = 'echo test', indent = 0 })
end)
end)

View file

@ -0,0 +1,14 @@
#foo(
arg1,
arg2,
)
#bar[
content here
]
#baz(
inner(
nested,
),
)

View file

@ -0,0 +1,8 @@
#for x in (1, 2, 3) {
x
}
#for x in (1, 2, 3) {
let y = x + 1
y
}

15
tests/indent/typst/if.typ Normal file
View file

@ -0,0 +1,15 @@
#if true {
"this is one leve"
}
#set page(header: {
if true {
"this is internal on level"
}
})
#if true {
if false {
"this is it"
}
}

View file

@ -0,0 +1,13 @@
#let foo(
x,
y,
) = x + y
#let bar = {
let x = 1
x
}
#let baz(x) = {
x + 1
}

Some files were not shown because too many files have changed in this diff Show more