Christian Clason
f7c5f7de55
feat(parsers): update robot, earthfile, racket, javadoc, scheme, t32, tact, templ, kotlin, tcl, meson, mlir
2025-05-12 18:43:40 +02:00
Christian Clason
11736494df
fix(indent): don't skip parsing for yaml
2025-05-12 18:43:40 +02:00
Christian Clason
44bb06bc12
chore: remove lockfile and update script
...
`main` branch and `parsers.lua` is the record of truth now
2025-05-12 18:43:40 +02:00
Christian Clason
53d7118483
refactor(lua): fix some luals warnings
2025-05-12 18:43:40 +02:00
Christian Clason
bdc2e01958
feat(install)!: always generate from json if possible
2025-05-12 18:43:40 +02:00
Christian Clason
522e0c6991
feat(setup)!: remove ensure_install field
...
Instead, call `require('nvim-treesitter').install( { ... } )` manually.
This gives users full control over how they want to install parsers
(sync, from grammar, limited concurrency) and obviates the need for
calling `setup` for most users.
2025-05-12 18:43:40 +02:00
Christian Clason
73adbe597e
feat(parsers): update swift, tact, tcl, templ, mlir, kotlin, koto, elixir, php_only, ocaml, ocaml_interface, php, astro, slang, slim, blade, gleam, v, ledger
2025-05-12 18:43:40 +02:00
Christian Clason
037ac775e1
feat: add .tsqueryrc.json
2025-05-12 18:43:40 +02:00
Christian Clason
ed1f573aae
feat(parsers): update ziggy, ziggy_schema, bibtex, latex
2025-05-12 18:43:40 +02:00
Christian Clason
308c9b26c7
feat(tcl)!: update parser and queries
2025-05-12 18:43:40 +02:00
Christian Clason
990110336c
feat(julia)!: update parser and queries
2025-05-12 18:43:40 +02:00
Christian Clason
c13511c884
feat(parsers): update nickel, sql, devicetree, dhall, htmldjango, t32, gap, javadoc, templ, jinja, tera, verilog, meson, mlir, typespec, wit, phpdoc, superhtml, git_config, swift, terraform, vim, koto, rasi, rescript, bp, enforce, erlang, jinja_inline, cmake, fennel, comment, slint, elm, rust, hcl
2025-05-12 18:43:40 +02:00
Christian Clason
cbfe8a20c7
feat(html): use gsub for mimetype lookup
2025-05-12 18:43:40 +02:00
Christian Clason
328ee3db54
fix(install): skip tier 4 parsers when installing and updating
2025-05-12 18:43:40 +02:00
Christian Clason
9365cf8a97
fix(install): don't prompt on installed parsers (skip)
...
Use `:TSInstall!` or `force = true` to reinstall.
2025-05-12 18:43:40 +02:00
Christian Clason
12e0246e4f
fix(formatter): increase match limit
...
Problem: Some very long patterns were not formatted correctly.
Solution: Increase the match limit when iterating to 1024.
2025-05-12 18:43:40 +02:00
przepompownia
6fe0032640
feat(install): allow pass callback to update()
...
Problem: cannot run `:TSUpdate synchronously`
Solution: pass callback used after exiting jobs
(like in `install-parsers`).
2025-05-12 18:43:40 +02:00
Sebastian Lyng Johansen
02a1a0537c
fix(install): early return if parser_info does not exist
2025-05-12 18:43:40 +02:00
Christian Clason
a9f34d5a76
feat(parsers): rework tiers
...
* stable: updates follow semver releases (todo)
* unstable: updates follow HEAD (default)
* unmaintained: no automatic updates
* unsupported: no updates, cannot be installed
2025-05-12 18:43:40 +02:00
Christian Clason
188bbf7a09
fix(ci): update to changed neovim release name
2025-05-12 18:43:40 +02:00
Christian Clason
aaf5b7fdf7
fix(install): return error code in callback
2025-05-12 18:43:40 +02:00
Christian Clason
a2841d29d7
feat(install)!: bump minimum tree-sitter version to 0.24
2025-05-12 18:43:40 +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
83dae49a10
feat(install): allow specifying max jobs
2025-05-12 18:43:40 +02:00
Christian Clason
ab230eadd4
feat(config)!: remove auto_install
...
use https://github.com/lewis6991/ts-install.nvim instead
2025-05-12 18:43:40 +02:00
Christian Clason
a8677385b7
feat(install)!: drop support for git
...
Problem: Using git for installing parsers can lead to data loss if in a
git commit buffer.
Solution: Only support downloading via curl+tar, which are installed on
all supported platforms (since Windows 10). Curl will also be required
for WASM parsers (and for `vim.net.download()`).
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
054080bf59
fix: vim.tbl_flatten is deprecated
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
nvim-treesitter-bot[bot]
8f8cf7144d
bot(readme): update
2025-05-12 18:43:40 +02:00
Christian Clason
c70daa36dc
feat(install)!: add explicit path field to parser info ( #6476 )
...
Problem: Using `url` for both remote repo and local path complicates the
code.
Solution: Add `path` field that overrides `url` and bypasses
git-specific manipulations, i.e., the contents of the `path` are used
as-is (no git repo needed).
This means `:TSUpdate` will skip such parsers; use `:TSInstall!` instead
after making local changes.
---------
Co-authored-by: Lewis Russell <lewis6991@gmail.com>
2025-05-12 18:43:40 +02:00
Lewis Russell
0bb981c876
fix: do not use vim.iter ( #6469 )
2025-05-12 18:43:40 +02:00
Lewis Russell
421e2fb7b2
feat: improve logging of failed installs
2025-05-12 18:43:40 +02:00
Christian Clason
a8f5641ab3
feat(install)!: remove support for C++ scanners
2025-05-12 18:43:40 +02:00
Phạm Huy Hoàng
429e6f446b
doc: better clarification of highlights/injections
2025-05-12 18:43:40 +02:00
Phạm Huy Hoàng
039fe9095d
fix(format): update scripts to support nightly ( #6126 )
...
No need for assert as the use is contained within the script only
2025-05-12 18:43:40 +02:00
Gregory Anders
be5f9b0eaa
fix: update add_predicate and add_directive calls for upstream ( #6106 )
...
Update custom predicates and directives to handle multiple nodes per
capture ID per changes upstream.
2025-05-12 18:43:40 +02:00
Christian Clason
885c2960ef
fix: better output for update-lockfile
2025-05-12 18:43:40 +02:00
Christian Clason
e77506bde3
feat: improve check-queries
2025-05-12 18:43:40 +02:00
Christian Clason
178c6a84c1
docs: update CONTRIBUTING.md
2025-05-12 18:43:40 +02:00
Lewis Russell
5f2c6c0c83
refactor: pull out predicate function
2025-05-12 18:43:40 +02:00
Lewis Russell
59f5d64a61
fix: update vim.system types
2025-05-12 18:43:40 +02:00
Lewis Russell
efbc2a4b72
fix: remove downcase! directive use
2025-05-12 18:43:40 +02:00
Lewis Russell
1bec16362f
feat: allow a custom revision in install_info
2025-05-12 18:43:40 +02:00
Pham Huy Hoang
3966b8808b
fix!: indents now rely on treesitter highlight
...
- Apply suggestions from Lewis to only parse visible lines
- Fix failed tests
2025-05-12 18:43:40 +02:00
Christian Clason
abcbe65b6e
docs(readme): document 'location' key
2025-05-12 18:43:40 +02:00
Pham Huy Hoang
673fdccd21
tests: remove set ft
2025-05-12 18:43:40 +02:00
Lewis Russell
b5a3f5c286
fix: cleanup diagnostics
2025-05-12 18:43:40 +02:00
Lewis Russell
26302f412f
fix: add stricter cc options ( #5063 )
2025-05-12 18:43:40 +02:00