mirror of
https://git.code.sf.net/p/zsh/code
synced 2026-04-20 07:43:58 -04:00
42 lines
1011 B
Plaintext
42 lines
1011 B
Plaintext
#compdef -command-line-
|
|
|
|
local _comp_command1 _comp_command2 _comp_command skip
|
|
|
|
if [[ "$1" = -s ]]; then
|
|
skip=(-s)
|
|
else
|
|
skip=()
|
|
_compskip=''
|
|
fi
|
|
|
|
# Check for a history reference to complete modifiers.
|
|
# $PREFIX has a quoted form of the !, so we can't test that
|
|
# (it might the start of a real argument), but words has the
|
|
# raw McCoy.
|
|
if [[ -o BANG_HIST &&
|
|
( ( $words[CURRENT] = \!*: && -z $compstate[quote] ) ||
|
|
( $words[CURRENT] = \"\!*: && $compstate[all_quotes] = \" ) ) ]]; then
|
|
# This looks like a real history expansion; in that case
|
|
# we'd better put the !'s back the way pfalstad intended.
|
|
PREFIX=${PREFIX//\\!/!}
|
|
compset -P '*:'
|
|
_history_modifiers h
|
|
return
|
|
fi
|
|
|
|
# Completing in command position?
|
|
|
|
if [[ CURRENT -eq 1 ]]; then
|
|
curcontext="${curcontext%:*:*}:-command-:"
|
|
|
|
comp="$_comps[-command-]"
|
|
[[ -n "$comp" ]] && eval "$comp" && ret=0
|
|
|
|
return ret
|
|
fi
|
|
|
|
_set_command
|
|
|
|
_dispatch "$skip[@]" "$_comp_command" \
|
|
"$_comp_command1" "$_comp_command2" -default-
|