mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-19 21:44:11 +01:00
59 lines
1.7 KiB
Plaintext
59 lines
1.7 KiB
Plaintext
#compdef zpty
|
|
|
|
local state line list names expl curcontext="$curcontext"
|
|
typeset -A opt_args
|
|
|
|
|
|
_arguments -C -s \
|
|
'(-r -w -L -d)-e[echo input characters]' \
|
|
'(-r -w -L -d)-b[io to pseudo-terminal blocking]' \
|
|
'(-r -w -L -e -b)-d[delete command]:*:name:->name' \
|
|
'(-r -L -e -b -d)-w[send string to command]:name:->name:*:strings to write' \
|
|
'(: -r -w -e -b -d)-L[list defined commands as calls]' \
|
|
'(: -w -L -e -b -d)-r[read string from command]:name:->name:param: _parameters:pattern:' \
|
|
'(-r -w -L -d):zpty command name:' \
|
|
'(-r -w -L -d):cmd: _command_names -e' \
|
|
'(-r -w -L -d)*::args:_precommand' && return 0
|
|
|
|
# One could use sets, but that's more expensive and zpty is simple enough.
|
|
#
|
|
# _arguments -C -s \
|
|
# - read \
|
|
# '-r[read string from command]' \
|
|
# ':name:->name' \
|
|
# ':param: _parameters' \
|
|
# ':pattern:' \
|
|
# - write \
|
|
# '-w[send string to command]' \
|
|
# ':name:->name' \
|
|
# '*:strings to write' \
|
|
# - list \
|
|
# '-L[list defined commands as calls]' \
|
|
# - delete \
|
|
# '-d[delete command]' \
|
|
# '*:name:->name' \
|
|
# - start \
|
|
# '-e[echo input characters]' \
|
|
# '-b[io to pseudo-terminal blocking]' \
|
|
# ':zpty command name:' \
|
|
# ':cmd: _command_names -e' \
|
|
# '*::args:_precommand' && return 0
|
|
|
|
|
|
if [[ $state = name ]]; then
|
|
if ! zmodload -e zsh/zpty; then
|
|
_message "zpty module not loaded"
|
|
return 1
|
|
fi
|
|
list=( ${${(f)"$(zpty)"}#*\) } )
|
|
names=( ${list%%:*} )
|
|
if zstyle -T ":completion:${curcontext}" verbose; then
|
|
zformat -a list ' --' ${${(f)"$(zpty)"}#*\) }
|
|
_wanted names expl 'zpty command name' compadd -d list -a names
|
|
else
|
|
_wanted names expl 'zpty command name' compadd -a names
|
|
fi
|
|
else
|
|
return 1
|
|
fi
|