1
0
Fork
You've already forked rtf-rs
0
No description
  • Rust 100%
2026年05月19日 17:14:01 +02:00
src fix: local bindings shouldnt become external dependencies 2026年05月19日 17:14:01 +02:00
zed-extension feat: add zed extension + unmark logic 2026年05月19日 16:59:42 +02:00
.gitignore Initial commit 2026年05月19日 16:59:42 +02:00
Cargo.lock feat: add zed extension + unmark logic 2026年05月19日 16:59:42 +02:00
Cargo.toml feat: add zed extension + unmark logic 2026年05月19日 16:59:42 +02:00
lefthook.yml chore: add pre-commit hook 2026年05月19日 16:59:42 +02:00
README.md feat: add zed extension + unmark logic 2026年05月19日 16:59:42 +02:00

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