Re: [PATCH] contrib/git-jump: allow to configure the grep command
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Nov 20, 2017, 03:11 UTC
- Message-ID
- <xmqqh8tpmypa.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <20171119230536.1628-1-dev+git@drbeat.li>
Beat Bolli <dev+git@drbeat.li> writes:
Show 6 quoted lines
> Add the configuration option "jump.grepCmd" that allows to configure the > command that is used to search in grep mode. This allows the users of > git-jump to use ag(1) or ack(1) as search engines. > > Signed-off-by: Beat Bolli <dev+git@drbeat.li> > ---
Thanks. The contrib/README file has this to say (also read the surrounding text):
... If
you have patches to things in contrib/ area, the patch should be
first sent to the primary author, and then the primary author
should ack and forward it to me (git pull request is nicer).Peff, I think we need a clear indication in contrib/git-jump/README to whom patches to the area should be sent. I know how to run
$ git shortlog -n --no-merges contrib/git-jump
but not everybody does (or bothers).
Show 43 quoted lines
> contrib/git-jump/README | 3 +++
> contrib/git-jump/git-jump | 7 +++++--
> 2 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/contrib/git-jump/README b/contrib/git-jump/README
> index 225e3f095..9f58d5db8 100644
> --- a/contrib/git-jump/README
> +++ b/contrib/git-jump/README
> @@ -63,6 +63,9 @@ git jump grep foo_bar
> # same as above, but case-insensitive; you can give
> # arbitrary grep options
> git jump grep -i foo_bar
> +
> +# use the silver searcher for git jump grep
> +git config jump.grepCmd "ag --column"
> --------------------------------------------------
>
>
> diff --git a/contrib/git-jump/git-jump b/contrib/git-jump/git-jump
> index 427f206a4..80ab0590b 100755
> --- a/contrib/git-jump/git-jump
> +++ b/contrib/git-jump/git-jump
> @@ -11,7 +11,8 @@ diff: elements are diff hunks. Arguments are given to diff.
>
> merge: elements are merge conflicts. Arguments are ignored.
>
> -grep: elements are grep hits. Arguments are given to grep.
> +grep: elements are grep hits. Arguments are given to git grep or, if
> + configured, to the command in `jump.grepCmd`.
>
> ws: elements are whitespace errors. Arguments are given to diff --check.
> EOF
> @@ -50,7 +51,9 @@ mode_merge() {
> # but let's clean up extra whitespace, so they look better if the
> # editor shows them to us in the status bar.
> mode_grep() {
> - git grep -n "$@" |
> + cmd=$(git config jump.grepCmd)
> + test -n "$cmd" || cmd="git grep -n"
> + $cmd "$@" |
> perl -pe '
> s/[ \t]+/ /g;
> s/^ *//;