feat(cli): Add -e and --all-match to c grep - #1206
Merged
Merged
Conversation
`jp c grep` accepts several patterns through a repeatable `-e` (long
form `--pattern`). A line matches when it contains any of them. Adding
`--all-match` keeps only conversations that contain every pattern. The
patterns can match in any order, on different lines, and in different
turns and scopes:
jp c grep --all-match -e httpmock -e openrouter
Every line matching any pattern is shown and highlighted, so the output
shows where each term occurs. A single regex can't express this,
because matching runs one line at a time.
`--regex` applies to every pattern. Smart-case is decided per pattern,
so `-e wasm -e Rust` only makes `Rust` case-sensitive.
`--max-matches` and `--quiet` still limit what is printed, but under
`--all-match` the search keeps reading until every pattern has been
found, so a conversation is never rejected because the cap was reached
early.
`-e` can't be combined with the positional pattern, and `--all-match`
requires `-e`. Without that rule, `jp c grep --all-match alpha beta`
would quietly search for the phrase `alpha beta`. The positional
multi-word pattern works as before.
Signed-off-by: Jean Mertz <git@jeanmertz.com>
Signed-off-by: Jean Mertz <git@jeanmertz.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
jp c grepaccepts several patterns through a repeatable-e(long form--pattern). A line matches when it contains any of them. Adding--all-matchkeeps only conversations that contain every pattern. The patterns can match in any order, on different lines, and in different turns and scopes:Every line matching any pattern is shown and highlighted, so the output shows where each term occurs. A single regex can't express this, because matching runs one line at a time.
--regexapplies to every pattern. Smart-case is decided per pattern, so-e wasm -e Rustonly makesRustcase-sensitive.--max-matchesand--quietstill limit what is printed, but under--all-matchthe search keeps reading until every pattern has been found, so a conversation is never rejected because the cap was reached early.-ecan't be combined with the positional pattern, and--all-matchrequires-e. Without that rule,jp c grep --all-match alpha betawould quietly search for the phrasealpha beta. The positional multi-word pattern works as before.