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.
This commit is contained in:
Christian Clason 2024-04-14 16:25:28 +02:00
parent 054080bf59
commit c17de56890
21 changed files with 1007 additions and 995 deletions

View file

@ -4,13 +4,16 @@ This document lists the planned and finished changes in this rewrite towards [Nv
## TODO
- [ ] **`locals.lua`:** move to `nvim-treesitter-refactor`?
- [ ] **`parsers.lua`:** include revision? (<https://stackoverflow.com/questions/64260981>)
- [ ] **update-lockfile:** allow specifying version in addition to commit hash (for Tier 1)
- [ ] **`parsers.lua`:** include revision (serialization at home: `vim.inspect`)
- rename `parsers` to `languages`
- rename `install_info` to `parser`
- [ ] **`parsers.lua`:** allow specifying version in addition to commit hash (for Tier 1)
- [ ] **update-lockfile:** one commit per parser/tier?
- [ ] **tests:** fix, update, extend (cover all Tier 1 languages)
- [ ] **documentation:** consolidate, autogenerate?
- [ ] **documentation:** migration guide
- [ ] **`locals.lua`:** move to `nvim-treesitter-refactor`?
- [ ] **textobjects:** include simple(!) function, queries? (check Helix)
- [ ] **downstream:** adapt to breaking changes (`nvim-treesitter-refactor`)