diff options
Diffstat (limited to 'Completion')
-rw-r--r-- | Completion/Base/Core/_main_complete | 3 | ||||
-rw-r--r-- | Completion/Unix/Command/_calendar | 40 | ||||
-rw-r--r-- | Completion/Zsh/Command/_command | 2 | ||||
-rw-r--r-- | Completion/Zsh/Command/_precommand | 3 |
4 files changed, 39 insertions, 9 deletions
diff --git a/Completion/Base/Core/_main_complete b/Completion/Base/Core/_main_complete index b6f676d43..a2bf8e144 100644 --- a/Completion/Base/Core/_main_complete +++ b/Completion/Base/Core/_main_complete @@ -32,6 +32,9 @@ local func funcs ret=1 tmp _compskip format nm call match min max i num\ _saved_insert="${compstate[insert]}" \ _saved_colors="$ZLS_COLORS" +# _precommand sets this to indicate we are following a precommand modifier +local -a precommands + typeset -U _lastdescr _comp_ignore _comp_colors [[ -z "$curcontext" ]] && curcontext=::: diff --git a/Completion/Unix/Command/_calendar b/Completion/Unix/Command/_calendar index 10adfb700..a79fc7298 100644 --- a/Completion/Unix/Command/_calendar +++ b/Completion/Unix/Command/_calendar @@ -1,12 +1,34 @@ #compdef calendar -_arguments \ - '-a[process files of all users]' \ - '-A[print today and the following num days]:number of days:' \ - '-b[enforce special KOI8 date calculation mode]' \ - '-B[print today and the previous num days]:number of days:' \ - '-f[use file as the default calendar]:calendar file:_files' \ - '-l[print today and the following num days]:number of days:' \ - '-w[print today and the following num days only if today is Friday]:number of days:' \ - '-t[act as though today is the date specified]:date:' +if [[ $+functions[calendar] -eq 1 && -z $precommands[(r)command] ]]; then + # The shell function is loaded, and we're not instructed to + # use an external command, so complete that. + _arguments \ + '-a[show all calendar items]' \ + '-b[brief, display first line only]' \ + '-d[move events to done file]' \ + '-D[never move events to done file]' \ + '-r[show all remaining items from start or now]' \ + '-s[use sched to schedule a warning]' \ + '-v[verbose]' \ + '-B[select number of lines to display]:lines: ' \ + '-C[select calendar file]:calendar file:_path_files' \ + '-n[select max number of events]:max number of events: ' \ + '-S[select show programme]:show programme:_command_names' \ + '1:date/time: ' \ + '(-r)2:end date/time: ' +else + # This is only one particular version of calendar. + # Some variant of BSD, I think. + _arguments \ + '-a[process files of all users]' \ + '-A[print today and the following num days]:number of days:' \ + '-b[enforce special KOI8 date calculation mode]' \ + '-B[print today and the previous num days]:number of days:' \ + '-f[use file as the default calendar]:calendar file:_files' \ + '-l[print today and the following num days]:number of days:' \ + '-w[print today and the following num days only if today is Friday]:number of days:' \ + '-t[act as though today is the date specified]:date:' + +fi diff --git a/Completion/Zsh/Command/_command b/Completion/Zsh/Command/_command index 72d7b6e99..7cfb52c2f 100644 --- a/Completion/Zsh/Command/_command +++ b/Completion/Zsh/Command/_command @@ -2,6 +2,8 @@ local ret +# indicate if this is a precommand modifier +[[ $service = command ]] && precommands+=(command) if [[ CURRENT -ge 3 ]]; then compset -n 2 _normal && ret=0 diff --git a/Completion/Zsh/Command/_precommand b/Completion/Zsh/Command/_precommand index f45688fc7..12f45ca31 100644 --- a/Completion/Zsh/Command/_precommand +++ b/Completion/Zsh/Command/_precommand @@ -1,5 +1,8 @@ #compdef - nohup eval time rusage noglob nocorrect exec catchsegv aoss +# precommands is made local in _main_complete +precommands+=($words[1]) + shift words (( CURRENT-- )) |