Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

[PATCH] git rebase --exec completion

Complete the argument of 'git rebase --exec' as a command name.

I suppose this could be made smarter similar to how 'su -c <TAB>'
completes entire commands, but that is implemented using states and
compset and I'm reluctant to add such complexity to _git which is
already 300KB by itself.

Incidentally, su -c 'cd && <TAB>' completes nothing, and su -c 'cd foo
&& <TAB>' completes directory names.  Perhaps they could complete a new

diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git
index b11c83c..c724f3c 100644
--- a/Completion/Unix/Command/_git
+++ b/Completion/Unix/Command/_git
@@ -1335,7 +1335,7 @@ _git-rebase () {
     '(-i --interactive --ignore-whitespace --whitespace --committer-date-is-author-date)'{-i,--interactive}'[make a list of commits to be rebased and open in $EDITOR]' \
     '--edit-todo[edit interactive instruction sheet in an editor]' \
     '(-p --preserve-merges --interactive)'{-p,--preserve-merges}'[try to recreate merges instead of ignoring them]' \
-    {-x,--exec=}'[with -i\: append "exec <cmd>" after each line]:command' \
+    {-x,--exec=}'[with -i\: append "exec <cmd>" after each line]:command:_command_names -e' \
     '(1)--root[rebase all reachable commits]' \
     $autosquash_opts \
     '(--autostash --no-autostash)--autostash[stash uncommitted changes before rebasing and apply them afterwards]' \

Messages sorted by: Reverse Date, Date, Thread, Author