Skip to content

Drive the reviewable search/replace from the dispatch switches#2091

Merged
bbatsov merged 1 commit into
masterfrom
feature/dispatch-search-switches
Jul 11, 2026
Merged

Drive the reviewable search/replace from the dispatch switches#2091
bbatsov merged 1 commit into
masterfrom
feature/dispatch-search-switches

Conversation

@bbatsov

@bbatsov bbatsov commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Part of the search UX work. Wires the reviewable search/replace into the projectile-dispatch Modifiers.

  • Fold literal/regexp - the two entries (sR literal, sX regexp) become a single sR "search (review)" that reads the --regexp switch, matching how --regexp already drives the ag/ripgrep search. Same for the R replace reviewer.
  • --case-sensitive switch - seeds the reviewable search/replace case-sensitive by binding case-fold-search around the call. Both flags can still be toggled with x/c in the results buffer.

Scope note: the classic external-tool backends (grep/ag/rg) delegate to third-party Emacs packages with their own baked-in case handling (ag --ignore-case, rg -i, grep case-sensitive), so a uniform case switch there would be a fragile per-tool affair - they're intentionally left alone. Whole-word matching is a genuine new matching feature (elisp scan word-boundaries + rg -w + a buffer toggle), so it's the next PR rather than bolted on here.

903 specs green (5 new dispatch specs), clean --warnings-as-errors, relint clean.

The two reviewable-search entries (sR literal, sX regexp) collapse into a
single sR that reads the --regexp switch, the same way --regexp already
drives the ag/ripgrep search. A new --case-sensitive switch seeds the
reviewable search/replace case-sensitive by binding case-fold-search
around the call; both can still be flipped with x/c in the results buffer.

Classic external-tool backends (grep/ag/rg) keep their own case handling
and aren't touched here; whole-word matching is a separate follow-up.
@bbatsov
bbatsov merged commit 9d6b20b into master Jul 11, 2026
10 checks passed
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