| src | fix: local bindings shouldnt become external dependencies | |
| zed-extension | feat: add zed extension + unmark logic | |
| .gitignore | Initial commit | |
| Cargo.lock | feat: add zed extension + unmark logic | |
| Cargo.toml | feat: add zed extension + unmark logic | |
| lefthook.yml | chore: add pre-commit hook | |
| README.md | feat: add zed extension + unmark logic | |
review-through-files
small workspace-level CLI for remembering which code symbols you have manually reviewed.
I needed a way to know which code hunks I've been through manually.
Examples
./rtf init /repo
./rtf scan /repo
./rtf status /repo
./rtf status /repo --json
./rtf next /repo
./rtf next /repo --json
./rtf mark path/to/file.rb:42 /repo
./rtf mark path/to/file.rb:42 /repo --json
./rtf why-stale path/to/file.rb:42 /repo
./rtf why-stale path/to/file.rb:42 /repo --json
Install the Rust CLI locally so the Zed dev extension can find it:
cargo install --path .
State lives in:
~/.local/share/review-through-files/workspaces/<workspace-id>.sqlite3
What Counts As Reviewed
A reviewed item is a code symbol: function, method, class, module, or component. The tool stores a hash of the symbol body. If the body changes, the symbol becomes changed.
When a symbol is marked reviewed, the tool also snapshots hashes for direct callees it can resolve by name. If one of those callees changes later, the symbol becomes dependency_changed.
Language Support
We use tree-sitter to parse through a language. Since functions can call each other, it is useful to know where code lives.
Tree-sitter makes it easier for us to add languages when needed. Right now it just lives under src/scanner/, and should only require one query for now.
Zed Extension
The Zed extension is in zed-extension/. Install it with Zed's Extensions: Install Dev Extension command and choose that directory.
It registers rtf as a language server for Ruby, JavaScript, TypeScript, and TSX. Zed starts:
rtf lsp <worktree-root>
The LSP currently publishes diagnostics for symbols that are unreviewed, changed, or dependency_changed. It reuses the same Tree-sitter scanner as the CLI. zed-extension/extension.wasm is generated by Zed during dev-extension builds.
Development
cargo fmt --all -- --check
cargo check --workspace
cargo test --workspace