What problem does it solve?
Dang syntax definitions must stay in sync across three editors whenever the language grammar changes, preventing drift between VSCode, Zed, and Neovim.
Core Features & Use Cases
- VSCode: editors/vscode/syntaxes/dang.tmLanguage.json — TextMate grammar; keywords are defined in a keyword-control pattern as a regex.
- Zed: editors/zed/languages/dang/highlights.scm — tree-sitter highlights; submodule pointing to https://github.com/vito/zed-dang; update the submodule pointer after committing inside the submodule.
- Neovim: editors/nvim/queries/dang/highlights.scm — tree-sitter highlights; submodule pointing to https://github.com/vito/dang.nvim; update the submodule pointer after committing inside the submodule.
- Tree-sitter highlights: Zed and Neovim versions are nearly identical but use different capture names; update both when grammar changes.
- Checklist: Committing steps involve first updating submodules, then committing pointers in the parent, and finally updating the parent repository.
Quick Start
Update all three editor syntax definitions in a coordinated change and commit the updated submodule pointers in the parent repository.