|
@@ -1,5 +1,3 @@
|
|
-#!bash
|
|
|
|
-#
|
|
|
|
# bash/zsh completion support for core Git.
|
|
# bash/zsh completion support for core Git.
|
|
#
|
|
#
|
|
# Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
|
|
# Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
|
|
@@ -180,9 +178,9 @@ _get_comp_words_by_ref ()
|
|
}
|
|
}
|
|
fi
|
|
fi
|
|
|
|
|
|
-__gitcompadd ()
|
|
|
|
|
|
+__gitcompappend ()
|
|
{
|
|
{
|
|
- local i=0
|
|
|
|
|
|
+ local i=${#COMPREPLY[@]}
|
|
for x in $1; do
|
|
for x in $1; do
|
|
if [[ "$x" == "$3"* ]]; then
|
|
if [[ "$x" == "$3"* ]]; then
|
|
COMPREPLY[i++]="$2$x$4"
|
|
COMPREPLY[i++]="$2$x$4"
|
|
@@ -190,6 +188,12 @@ __gitcompadd ()
|
|
done
|
|
done
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+__gitcompadd ()
|
|
|
|
+{
|
|
|
|
+ COMPREPLY=()
|
|
|
|
+ __gitcompappend "$@"
|
|
|
|
+}
|
|
|
|
+
|
|
# Generates completion reply, appending a space to possible completion words,
|
|
# Generates completion reply, appending a space to possible completion words,
|
|
# if necessary.
|
|
# if necessary.
|
|
# It accepts 1 to 4 arguments:
|
|
# It accepts 1 to 4 arguments:
|
|
@@ -220,6 +224,14 @@ __gitcomp ()
|
|
esac
|
|
esac
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+# Variation of __gitcomp_nl () that appends to the existing list of
|
|
|
|
+# completion candidates, COMPREPLY.
|
|
|
|
+__gitcomp_nl_append ()
|
|
|
|
+{
|
|
|
|
+ local IFS=$'\n'
|
|
|
|
+ __gitcompappend "$1" "${2-}" "${3-$cur}" "${4- }"
|
|
|
|
+}
|
|
|
|
+
|
|
# Generates completion reply from newline-separated possible completion words
|
|
# Generates completion reply from newline-separated possible completion words
|
|
# by appending a space to all of them.
|
|
# by appending a space to all of them.
|
|
# It accepts 1 to 4 arguments:
|
|
# It accepts 1 to 4 arguments:
|
|
@@ -231,8 +243,8 @@ __gitcomp ()
|
|
# appended.
|
|
# appended.
|
|
__gitcomp_nl ()
|
|
__gitcomp_nl ()
|
|
{
|
|
{
|
|
- local IFS=$'\n'
|
|
|
|
- __gitcompadd "$1" "${2-}" "${3-$cur}" "${4- }"
|
|
|
|
|
|
+ COMPREPLY=()
|
|
|
|
+ __gitcomp_nl_append "$@"
|
|
}
|
|
}
|
|
|
|
|
|
# Generates completion reply with compgen from newline-separated possible
|
|
# Generates completion reply with compgen from newline-separated possible
|
|
@@ -673,7 +685,6 @@ __git_list_porcelain_commands ()
|
|
index-pack) : plumbing;;
|
|
index-pack) : plumbing;;
|
|
init-db) : deprecated;;
|
|
init-db) : deprecated;;
|
|
local-fetch) : plumbing;;
|
|
local-fetch) : plumbing;;
|
|
- lost-found) : infrequent;;
|
|
|
|
ls-files) : plumbing;;
|
|
ls-files) : plumbing;;
|
|
ls-remote) : plumbing;;
|
|
ls-remote) : plumbing;;
|
|
ls-tree) : plumbing;;
|
|
ls-tree) : plumbing;;
|
|
@@ -687,14 +698,12 @@ __git_list_porcelain_commands ()
|
|
pack-refs) : plumbing;;
|
|
pack-refs) : plumbing;;
|
|
parse-remote) : plumbing;;
|
|
parse-remote) : plumbing;;
|
|
patch-id) : plumbing;;
|
|
patch-id) : plumbing;;
|
|
- peek-remote) : plumbing;;
|
|
|
|
prune) : plumbing;;
|
|
prune) : plumbing;;
|
|
prune-packed) : plumbing;;
|
|
prune-packed) : plumbing;;
|
|
quiltimport) : import;;
|
|
quiltimport) : import;;
|
|
read-tree) : plumbing;;
|
|
read-tree) : plumbing;;
|
|
receive-pack) : plumbing;;
|
|
receive-pack) : plumbing;;
|
|
remote-*) : transport;;
|
|
remote-*) : transport;;
|
|
- repo-config) : deprecated;;
|
|
|
|
rerere) : plumbing;;
|
|
rerere) : plumbing;;
|
|
rev-list) : plumbing;;
|
|
rev-list) : plumbing;;
|
|
rev-parse) : plumbing;;
|
|
rev-parse) : plumbing;;
|
|
@@ -707,7 +716,6 @@ __git_list_porcelain_commands ()
|
|
ssh-*) : transport;;
|
|
ssh-*) : transport;;
|
|
stripspace) : plumbing;;
|
|
stripspace) : plumbing;;
|
|
symbolic-ref) : plumbing;;
|
|
symbolic-ref) : plumbing;;
|
|
- tar-tree) : deprecated;;
|
|
|
|
unpack-file) : plumbing;;
|
|
unpack-file) : plumbing;;
|
|
unpack-objects) : plumbing;;
|
|
unpack-objects) : plumbing;;
|
|
update-index) : plumbing;;
|
|
update-index) : plumbing;;
|
|
@@ -901,7 +909,7 @@ _git_add ()
|
|
esac
|
|
esac
|
|
|
|
|
|
# XXX should we check for --update and --all options ?
|
|
# XXX should we check for --update and --all options ?
|
|
- __git_complete_index_file "--others --modified"
|
|
|
|
|
|
+ __git_complete_index_file "--others --modified --directory --no-empty-directory"
|
|
}
|
|
}
|
|
|
|
|
|
_git_archive ()
|
|
_git_archive ()
|
|
@@ -1063,7 +1071,7 @@ _git_clean ()
|
|
esac
|
|
esac
|
|
|
|
|
|
# XXX should we check for -x option ?
|
|
# XXX should we check for -x option ?
|
|
- __git_complete_index_file "--others"
|
|
|
|
|
|
+ __git_complete_index_file "--others --directory"
|
|
}
|
|
}
|
|
|
|
|
|
_git_clone ()
|
|
_git_clone ()
|
|
@@ -1188,7 +1196,7 @@ _git_diff ()
|
|
__git_complete_revlist_file
|
|
__git_complete_revlist_file
|
|
}
|
|
}
|
|
|
|
|
|
-__git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff
|
|
|
|
|
|
+__git_mergetools_common="diffuse diffmerge ecmerge emerge kdiff3 meld opendiff
|
|
tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc3 codecompare
|
|
tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc3 codecompare
|
|
"
|
|
"
|
|
|
|
|
|
@@ -1491,6 +1499,12 @@ _git_mergetool ()
|
|
|
|
|
|
_git_merge_base ()
|
|
_git_merge_base ()
|
|
{
|
|
{
|
|
|
|
+ case "$cur" in
|
|
|
|
+ --*)
|
|
|
|
+ __gitcomp "--octopus --independent --is-ancestor --fork-point"
|
|
|
|
+ return
|
|
|
|
+ ;;
|
|
|
|
+ esac
|
|
__gitcomp_nl "$(__git_refs)"
|
|
__gitcomp_nl "$(__git_refs)"
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1623,7 +1637,7 @@ _git_rebase ()
|
|
--preserve-merges --stat --no-stat
|
|
--preserve-merges --stat --no-stat
|
|
--committer-date-is-author-date --ignore-date
|
|
--committer-date-is-author-date --ignore-date
|
|
--ignore-whitespace --whitespace=
|
|
--ignore-whitespace --whitespace=
|
|
- --autosquash
|
|
|
|
|
|
+ --autosquash --fork-point --no-fork-point
|
|
"
|
|
"
|
|
|
|
|
|
return
|
|
return
|
|
@@ -1833,6 +1847,7 @@ _git_config ()
|
|
branch.*)
|
|
branch.*)
|
|
local pfx="${cur%.*}." cur_="${cur#*.}"
|
|
local pfx="${cur%.*}." cur_="${cur#*.}"
|
|
__gitcomp_nl "$(__git_heads)" "$pfx" "$cur_" "."
|
|
__gitcomp_nl "$(__git_heads)" "$pfx" "$cur_" "."
|
|
|
|
+ __gitcomp_nl_append $'autosetupmerge\nautosetuprebase\n' "$pfx" "$cur_"
|
|
return
|
|
return
|
|
;;
|
|
;;
|
|
guitool.*.*)
|
|
guitool.*.*)
|
|
@@ -1875,6 +1890,7 @@ _git_config ()
|
|
remote.*)
|
|
remote.*)
|
|
local pfx="${cur%.*}." cur_="${cur#*.}"
|
|
local pfx="${cur%.*}." cur_="${cur#*.}"
|
|
__gitcomp_nl "$(__git_remotes)" "$pfx" "$cur_" "."
|
|
__gitcomp_nl "$(__git_remotes)" "$pfx" "$cur_" "."
|
|
|
|
+ __gitcomp_nl_append "pushdefault" "$pfx" "$cur_"
|
|
return
|
|
return
|
|
;;
|
|
;;
|
|
url.*.*)
|
|
url.*.*)
|
|
@@ -1997,6 +2013,7 @@ _git_config ()
|
|
fetch.unpackLimit
|
|
fetch.unpackLimit
|
|
format.attach
|
|
format.attach
|
|
format.cc
|
|
format.cc
|
|
|
|
+ format.coverLetter
|
|
format.headers
|
|
format.headers
|
|
format.numbered
|
|
format.numbered
|
|
format.pretty
|
|
format.pretty
|
|
@@ -2580,7 +2597,7 @@ if [[ -n ${ZSH_VERSION-} ]]; then
|
|
--*=*|*.) ;;
|
|
--*=*|*.) ;;
|
|
*) c="$c " ;;
|
|
*) c="$c " ;;
|
|
esac
|
|
esac
|
|
- array[$#array+1]="$c"
|
|
|
|
|
|
+ array[${#array[@]}+1]="$c"
|
|
done
|
|
done
|
|
compset -P '*[=:]'
|
|
compset -P '*[=:]'
|
|
compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
|
|
compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
|