Re: [RFC PATCH] bash completion: complete refs for git-grep
From: Thomas Rast <hidden>
Date: 2016-06-15 22:47:29
Shawn O. Pearce wrote:
Thomas Rast [off-list ref] wrote:quoted
+ local i c=1 have_regex="" + while [ $c -lt $COMP_CWORD ]; do + i="${COMP_WORDS[c]}" + case "$i" in + -e) ;; + -e*) have_regex="$c" ; break ;; + -*) ;; + *) have_regex="$c"; break ;; + esac + c=$((++c)) + doneWhat happens with `git grep -e a -e b`? Do we trigger into ref completion too early when we should still be doing the regex completion?
Hmm, true, I would also have to check for the last argument (before completion) being -e. However, that is kind of moot because we currently complete filenames anyway, and you said I can't stop that:
quoted
This is still RFC because, as you can see in the code below, I tried to avoid completing at all while the user still needs to supply a regex. Sadly, bash turns the COMPREPLY=() into filename completion anyway. Is there a way to prevent this?Not that I know of. You can turn off default filename completion when you register the completion function, but that then breaks like every other git command for completion support because a lot of them do want to complete filenames.
So I'll roll a simpler patch that just always (before --) completes
refs instead, if that's ok.
--
Thomas Rast
trast@{inf,student}.ethz.ch