Skip to content

feat(rg): add ignore toggle parity - #1670

Merged
chaliy merged 1 commit into
mainfrom
2026-05-22-rg-ignore-toggles
May 22, 2026
Merged

chaliy merged 1 commit into
mainfrom
2026-05-22-rg-ignore-toggles

Conversation

@chaliy

@chaliy chaliy commented May 22, 2026

Copy link
Copy Markdown
Contributor

What

Add more real-rg-compatible ignore controls to the rg builtin.

Why

Real rg supports positive --ignore* flags to re-enable ignore classes after --no-ignore*, and it respects repository-local .git/info/exclude. Bashkit only had a subset of the negative toggles.

How

  • Track dot, VCS, local exclude, global, and parent ignore toggles separately.
  • Add --ignore, --ignore-dot, --ignore-vcs, --ignore-exclude, --ignore-global, and --ignore-parent parsing.
  • Load .git/info/exclude under the VCS and exclude ignore gates.
  • Extend real-rg differential cases for default excludes, disable/reenable toggles, and partial re-enable after --no-ignore.
  • Update rg --help coverage for the new flags.

Risk

  • Low / Medium
  • Scoped to rg recursive filtering. Explicit file searches still bypass ignore filtering as before.

Checklist

  • Tests added or updated
  • Backward compatibility considered
  • cargo fmt && cargo test -p bashkit builtins::rg::tests -- --nocapture
  • just pre-pr

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
bashkit 6d87b00 Commit Preview URL May 22 2026, 10:18 AM

@chaliy
chaliy merged commit aa0ee8b into main May 22, 2026
34 checks passed
@chaliy
chaliy deleted the 2026-05-22-rg-ignore-toggles branch May 22, 2026 10:30
chaliy added a commit that referenced this pull request May 30, 2026
## What
Add more real-rg-compatible ignore controls to the rg builtin.

## Why
Real rg supports positive `--ignore*` flags to re-enable ignore classes
after `--no-ignore*`, and it respects repository-local
`.git/info/exclude`. Bashkit only had a subset of the negative toggles.

## How
- Track dot, VCS, local exclude, global, and parent ignore toggles
separately.
- Add `--ignore`, `--ignore-dot`, `--ignore-vcs`, `--ignore-exclude`,
`--ignore-global`, and `--ignore-parent` parsing.
- Load `.git/info/exclude` under the VCS and exclude ignore gates.
- Extend real-rg differential cases for default excludes,
disable/reenable toggles, and partial re-enable after `--no-ignore`.
- Update `rg --help` coverage for the new flags.

## Risk
- Low / Medium
- Scoped to rg recursive filtering. Explicit file searches still bypass
ignore filtering as before.

## Checklist
- [x] Tests added or updated
- [x] Backward compatibility considered
- [x] `cargo fmt && cargo test -p bashkit builtins::rg::tests --
--nocapture`
- [x] `just pre-pr`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant