nvim-treesitter/TODO.md
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

1.5 KiB

Roadmap

This document lists the planned and finished changes in this rewrite towards Nvim-treesitter 1.0.

TODO

  • 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)

DONE

  • remove module framework
  • remove extra utilities
  • refactor indent.lua into standalone
  • refactor locals.lua into standalone
  • refactor commands, predicates, filetypes registration to plugin/
  • support installing tiers of parsers
  • install parsers to standard directory by default
  • remove bundled queries from runtimepath; copy on parser install
  • general refactor and cleanup
  • rewrite installation using async module (drop support for sync; use callback instead)
  • switch to upstream injection format
  • remove locals from highlighting (cf. https://github.com/nvim-treesitter/nvim-treesitter/issues/3944#issuecomment-1458782497)