1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-02 10:01:11 +02:00

34671 plus tweaks: Add -1 -2 -J -V -x to _describe, use them to sort 'git --fixup' hash completions

This commit is contained in:
Daniel Shahaf 2015-03-07 03:05:16 +00:00
parent 097dedf9ab
commit 236da69842
4 changed files with 29 additions and 17 deletions

View file

@ -1,5 +1,9 @@
2015-03-16 Daniel Shahaf <d.s@daniel.shahaf.name>
* 34671 plus tweaks: Completion/Base/Utility/_describe
Completion/Unix/Command/_git Doc/Zsh/compsys.yo: Add -1 -2 -J -V
-x to _describe, use them to sort 'git --fixup' hash completions
* 34671: Completion/Unix/Command/_git: git completion: only
offer recent commits' tags/heads for --fixup

View file

@ -6,23 +6,28 @@ local _opt _expl _tmpm _tmpd _mlen _noprefix
local _type=values _descr _ret=1 _showd _nm _hide _args _grp _sep
local csl="$compstate[list]" csl2
local _oargv _argv _new _strs _mats _opts _i _try=0
local OPTIND OPTARG
local -a _jvx12
# Get the option.
if [[ "$1" = -o ]]; then
_type=options
shift
elif [[ "$1" = -O ]]; then
_type=options
_noprefix=1
shift
elif [[ "$1" = -t ]]; then
_type="$2"
shift 2
elif [[ "$1" = -t* ]]; then
_type="${1[3,-1]}"
shift
fi
while getopts "oOt:12JVx" _opt; do
case $_opt in
(o)
_type=options;;
(O)
_type=options
_noprefix=1
;;
(t)
_type="$OPTARG"
;;
(1|2|J|V|x)
_jvx12+=(-$_opt)
esac
done
shift $(( OPTIND - 1 ))
unset _opt
[[ "$_type$_noprefix" = options && ! -prefix [-+]* ]] && \
zstyle -T ":completion:${curcontext}:options" prefix-needed &&
@ -53,7 +58,7 @@ fi
_tags "$_type"
while _tags; do
while _next_label "$_type" _expl "$_descr"; do
while _next_label $_jvx12 "$_type" _expl "$_descr"; do
if (( $#_grp )); then

View file

@ -5669,7 +5669,7 @@ __git_recent_commits () {
expl=()
_wanted heads expl 'head' compadd "$@" -a - heads && ret=0
expl=()
_describe -t commits 'commit object name' descr && ret=0
_describe -2Vx -t commits 'commit object name' descr && ret=0
}
(( $+functions[__git_blob_objects] )) ||

View file

@ -4140,7 +4140,7 @@ tt(compadd) when generating matches from the style value, or to
the functions for the fields if they are called.
)
findex(_describe)
item(tt(_describe) [ tt(-oO) | tt(-t) var(tag) ] var(descr) var(name1) [ var(name2) ] var(opts) ... tt(-)tt(-) ...)(
item(tt(_describe) [tt(-12JVx)] [ tt(-oO) | tt(-t) var(tag) ] var(descr) var(name1) [ var(name2) ] var(opts) ... tt(-)tt(-) ...)(
This function associates completions with descriptions.
Multiple groups separated by tt(-)tt(-) can be supplied, potentially with
different completion options var(opts).
@ -4171,6 +4171,9 @@ tt(prefix-needed) style.
With the tt(-t) option a var(tag) can be specified. The default is
`tt(values)' or, if the tt(-o) option is given, `tt(options)'.
The options tt(-1), tt(-2), tt(-J), tt(-V), tt(-x) are passed to
tt(_next_label).
If selected by the tt(list-grouped) style, strings with the same
description will appear together in the list.