Code

bash completion: Add completion for 'git mergetool'
authorLee Marlow <lee.marlow@gmail.com>
Thu, 14 Aug 2008 22:41:10 +0000 (16:41 -0600)
committerJunio C Hamano <gitster@pobox.com>
Fri, 15 Aug 2008 00:49:12 +0000 (17:49 -0700)
The --tool= long option to "git mergetool" can be completed with:

kdiff3 tkdiff meld xxdiff emerge
vimdiff gvimdiff ecmerge opendiff

Signed-off-by: Lee Marlow <lee.marlow@gmail.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-completion.bash

index d1afe96e1c99f861a83ea6b91f4558671ee61171..2f8036d1d914ea54e4eabae3afbdca5f4a06ab43 100755 (executable)
@@ -1001,6 +1001,25 @@ _git_merge ()
        __gitcomp "$(__git_refs)"
 }
 
+_git_mergetool ()
+{
+       local cur="${COMP_WORDS[COMP_CWORD]}"
+       case "$cur" in
+       --tool=*)
+               __gitcomp "
+                       kdiff3 tkdiff meld xxdiff emerge
+                       vimdiff gvimdiff ecmerge opendiff
+                       " "" "${cur##--tool=}"
+               return
+               ;;
+       --*)
+               __gitcomp "--tool="
+               return
+               ;;
+       esac
+       COMPREPLY=()
+}
+
 _git_merge_base ()
 {
        __gitcomp "$(__git_refs)"
@@ -1650,6 +1669,7 @@ _git ()
        ls-remote)   _git_ls_remote ;;
        ls-tree)     _git_ls_tree ;;
        merge)       _git_merge;;
+       mergetool)   _git_mergetool;;
        merge-base)  _git_merge_base ;;
        mv)          _git_mv ;;
        name-rev)    _git_name_rev ;;