Add support for passing additional ripgrep arguments to rtk grep
while preserving RTK's token-optimized output formatting.
Changes:
- src/main.rs: Add extra_args field to Grep command variant
- src/main.rs: Pass extra_args to grep_cmd::run()
- src/grep_cmd.rs: Add extra_args parameter to run() signature
- src/grep_cmd.rs: Inject extra_args into ripgrep command
- Unit test: test_extra_args_accepted verifies parameter exists
- Smoke tests: 2 assertions for -i and -A flags
Usage note: Extra args must come AFTER pattern and path:
✓ rtk grep "pattern" src/ -i
✗ rtk grep "pattern" -i (clap interprets -i as path)
This enables full ripgrep functionality (case-insensitive, context
lines, word boundaries, globs) while maintaining RTK's compact output.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add external_subcommand variant to GitCommands enum to handle
unsupported git operations (tag, remote, rev-parse, etc.) by
passing them through directly to git.
Changes:
- src/git.rs: Add run_passthrough() function with OsString support
- src/main.rs: Add GitCommands::Other variant with external_subcommand
- src/main.rs: Add OsString import and match arm for passthrough
- Unit test: test_run_passthrough_accepts_args verifies signature
- Smoke tests: 3 new assertions for tag, remote, rev-parse
This preserves all git functionality while maintaining RTK's
token-optimized commands for supported operations.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>