Commit graph

176 commits

Author SHA1 Message Date
Christian Clason
2979e048b3 ci(test): bump tree-sitter/setup-actions to v2 2025-12-11 10:57:07 +01:00
Christian Clason
81aec1e45d ci: add check for downstream queries
Problem: Parser updates may break downstream queries.

Solution: Add workflow that clones and validates queries in

* https://github.com/nvim-treesitter/nvim-treesitter-textobjects#main
* https://github.com/nvim-treesitter/nvim-treesitter-context

on changes to the parsers.lua table. (Workflow should not be required to
pass; the purpose is to give a heads-up that follow-up PRs are needed.)
2025-11-10 11:32:04 +01:00
Christian Clason
bf0234010a ci: bump actions/checkout to v5 2025-08-12 11:08:18 +02:00
Christian Clason
c78594ce06 ci(test): throttle all install steps 2025-05-22 19:50:31 +02:00
Christian Clason
6b55bc0fab ci(test): remove parser cache
Since installation now installs parsers _and_ queries, caching parsers
doesn't allow skipping the installation step (and caching queries does
not pay off).
2025-05-13 18:12:58 +02:00
Christian Clason
dc8f3415a7 feat!: update tier 1 parsers to versions 2025-05-12 18:43:41 +02:00
Christian Clason
53dccb3a77 feat(tests)!: new infrastructure based on makefile
Problem: Not easy to run all checks and tests locally. Redundant CI
workflows.

Solution: Separate CI into two workflows:
 * lint: Lua files (stylua, luals), query files (valid captures,
   predicates, directives using tsqueryls), docs
   (SUPPORTED_LANGUAGES.md) -- does not need parser installation
 * tests: parsers (ABI compatibility), query files (tsqueryls on
   Linux/macOS; nvim on Windows), highlight and indent tests (separated
   for better readability) -- needs parser installation (but only once)

Switch to https://github.com/nvim-treesitter/highlight-assertions fork
with ABI 15 support.

Run all tests (on Linux and macOS) through `make` (`formatlua`,
`checklua`, `lintquery`, `formatquery`, `checkquery`, `docs`, `tests`),
which downloads and caches all necessary dependencies.

Remove `update-readme` workflow (replaced by lint job on PRs).
2025-05-12 18:43:41 +02:00
Christian Clason
c5a8c9d01a ci(tests): add optional workflow for generating grammars
run on PR by adding label `ci:generate` or manually
2025-05-12 18:43:40 +02:00
Christian Clason
214cfcf851 feat!: use tree-sitter build 2025-05-12 18:43:40 +02:00
Christian Clason
c17de56890 feat!: track parser revision in Lua
Problem: Tracking parser revision in lockfile and allowing override
through the parsers module complicates the code. In addition, only
revision changes are handled robustly, not changes to other installation
info.

Solution: Track parser revision in the parsers module directly. Reload
parser table on every install or update call. Support modifying parser
table in a `User TSUpdate` autocommand.
2025-05-12 18:43:40 +02:00
Christian Clason
5a38df5627 feat(install)!: generate from json instead of requiring node
Problem: Many parsers require node/npm to evaluate the `grammar.js`
before being able to generate a parser from it.

Solution: Generate from `grammar.json` instead, which is fully resolved.
Drops `node` and `npm` as (optional) requirements for nvim-treesitter.

Note that this requires parsers to commit the generated json iff the
grammar requires evaluation (which is currently the case for all tracked
languages).
2025-05-12 18:43:40 +02:00
Christian Clason
37957d6bcf refactor: use vim.uv 2025-05-12 18:43:40 +02:00
Christian Clason
9c0a99819c ci: remove update-lockfile shell script 2025-05-12 18:43:40 +02:00
Christian Clason
5aa2984a02 refactor: use vim.fs.joinpath 2025-05-12 18:43:40 +02:00
Christian Clason
eb1b6ec542 feat!: drop luarocks release 2025-05-12 18:43:40 +02:00
Christian Clason
692b051b09 feat!: drop modules, general refactor and cleanup 2025-05-12 18:43:40 +02:00
Christian Clason
e5c8398e44 ci(bot): bump create-github-app-token to v2 2025-04-06 11:23:58 +02:00
Christian Clason
30654ee72a ci(tests): run tests on v0.10.4 2025-04-02 11:40:11 +02:00
Christian Clason
36a7d010bb ci(update): only check once a week (sat)
I need a break...
2025-04-02 11:19:22 +02:00
Christian Clason
79a6192d47 ci(update): block dhall,elm,enforce,rust (ABI 15) 2025-04-02 11:19:22 +02:00
Christian Clason
cfbbea187b ci(tests): check queries on 0.10.4 2025-04-02 11:19:22 +02:00
Christian Clason
c8c7924cc3 ci(update): block wit (ABI 15) 2025-03-21 08:29:36 +01:00
Christian Clason
d96c52565c ci(update): block bp (ABI 15) 2025-03-13 08:59:53 +01:00
Christian Clason
c641ca8e05 ci(update): block rescript (ABI 15) 2025-03-04 09:25:23 +01:00
Christian Clason
8bf733ccce ci(update): block templ (ABI 15) 2025-03-02 11:16:59 +01:00
Christian Clason
f56d2f6765 ci(update): block typespec (ABI 15) 2025-03-01 11:55:29 +01:00
Christian Clason
f37b1668a6 ci(update): block verilog (ABI 15) 2025-03-01 11:15:34 +01:00
Christian Clason
225419160b ci(update): block git_config (ABI 15) 2025-02-25 09:46:10 +01:00
Christian Clason
c08aa2fe3f ci(update): block devicetree (ABI 15) 2025-02-23 12:01:29 +01:00
Christian Clason
1a6e42bb8c ci(update): block nickel (ABI 15) 2025-02-18 09:16:17 +00:00
Christian Clason
da89532f03 ci(update): block t32 (ABI 15) 2025-02-09 12:15:07 +01:00
nvim-treesitter-bot[bot]
824bf8455f bot(lockfile): update erlang, vhs
lock sql parser (ABI 15)
2025-02-06 07:43:26 +00:00
Christian Clason
16a51977dc Revert "ci(update): block vhdl (ABI 15)"
This reverts commit 1545e964e2.
2025-02-02 15:17:50 +01:00
Christian Clason
1545e964e2 ci(update): block vhdl (ABI 15) 2025-02-02 15:00:38 +01:00
nvim-treesitter-bot[bot]
bcd0b26607 bot(lockfile): update bash, desktop, haskell, julia, nix, objc, typst 2025-02-01 08:47:04 +00:00
Christian Clason
b4897f5a84 ci(update): unblock gnuplot 2024-12-23 16:10:41 +01:00
zetashift
c5be87ad3e refactor(unison): update to latest treesitter grammar 2024-11-13 09:09:53 +01:00
Christian Clason
d105f2cb7b feat(julia): update parser and queries 2024-11-11 08:40:34 +01:00
nvim-treesitter-bot[bot]
425b589683 bot(lockfile): update inko, nu, udev 2024-11-08 07:07:56 +00:00
Christian Clason
8b15ce58e4 ci(update): skip julia but for real 2024-11-06 10:00:29 +01:00
Christian Clason
f284ca27b5 ci(update): skip julia 2024-11-06 09:55:44 +01:00
Christian Clason
39016abc99 ci(update): skip gnuplot, unskip djot 2024-10-29 09:08:39 +01:00
nvim-treesitter-bot[bot]
86c10df7ef bot(lockfile): update cmake, llvm, perl, vhdl 2024-10-08 06:58:57 +00:00
Christian Clason
d22166e3d8 ci: bump create-pull-request to v7 2024-09-11 09:20:04 +02:00
Christian Clason
c436d45eee Revert "ci(update): bump create-pull-request to v7 and sign commits"
This reverts commit c9003a3cb1.
2024-09-10 10:20:29 +02:00
Christian Clason
c9003a3cb1 ci(update): bump create-pull-request to v7 and sign commits 2024-09-10 08:19:14 +00:00
Christian Clason
2eb50352c0 ci: bump stylua-action to v4 2024-08-27 14:29:54 +02:00
Christian Clason
6699eae8ba Revert "ci: skip updates for javascript"
This reverts commit a7a3b9c10e.
2024-08-20 19:49:18 +02:00
Christian Clason
a7a3b9c10e ci: skip updates for javascript 2024-08-03 11:25:48 +02:00
Christian Clason
5373c90c55 feat(r)!: update parser and queries 2024-06-27 15:31:41 +02:00