mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-01-21 12:11:26 +01:00
moved from Completion/Core/_history
This commit is contained in:
parent
2db1c53cb9
commit
e4ca49fe01
1 changed files with 60 additions and 0 deletions
60
Completion/Base/Completer/_history
Normal file
60
Completion/Base/Completer/_history
Normal file
|
@ -0,0 +1,60 @@
|
|||
#autoload
|
||||
|
||||
# Hm, this *can* sensibly be used as a completer. But it could also be used
|
||||
# as a utility function, so maybe it should be moved into another directory.
|
||||
# Or maybe not. Hm.
|
||||
#
|
||||
#
|
||||
# Complete words from the history
|
||||
#
|
||||
# Code taken from _history_complete_words.
|
||||
#
|
||||
# Available styles:
|
||||
#
|
||||
# sort -- sort matches lexically (default is to sort by age)
|
||||
# remove-all-dups --
|
||||
# remove /all/ duplicate matches rather than just consecutives
|
||||
# range -- range of history words to complete
|
||||
|
||||
local opt expl max slice hmax=$#historywords beg=2
|
||||
|
||||
if zstyle -t ":completion:${curcontext}:" remove-all-dups; then
|
||||
opt=-
|
||||
else
|
||||
opt=-1
|
||||
fi
|
||||
|
||||
if zstyle -t ":completion:${curcontext}:" sort; then
|
||||
opt="${opt}J"
|
||||
else
|
||||
opt="${opt}V"
|
||||
fi
|
||||
|
||||
if zstyle -s ":completion:${curcontext}:" range max; then
|
||||
if [[ $max = *:* ]]; then
|
||||
slice=${max#*:}
|
||||
max=${max%:*}
|
||||
else
|
||||
slice=$max
|
||||
fi
|
||||
[[ max -gt hmax ]] && max=$hmax
|
||||
else
|
||||
max=$hmax
|
||||
slice=$max
|
||||
fi
|
||||
|
||||
PREFIX="$IPREFIX$PREFIX"
|
||||
IPREFIX=
|
||||
SUFFIX="$SUFFIX$ISUFFIX"
|
||||
ISUFFIX=
|
||||
|
||||
# We skip the first element of historywords so the current word doesn't
|
||||
# interfere with the completion
|
||||
|
||||
while [[ $compstate[nmatches] -eq 0 && beg -lt max ]]; do
|
||||
_wanted "$opt" history-words expl 'history word' \
|
||||
compadd -Q -a 'historywords[beg,beg+slice]'
|
||||
(( beg+=slice ))
|
||||
done
|
||||
|
||||
(( $compstate[nmatches] ))
|
Loading…
Reference in a new issue