|
|
- # vim:ft=zsh:et:sw=4
- (( next_word = 2 | 8192 ))
- [[ "$__arg_type" = 3 ]] && return 2
-
- typeset -A subcommands
- local __first_call="$1" __wrd="$2" __start_pos="$3" __end_pos="$4" subcommand
- subcommands=(
- help "_"
- general "help status hostname permissions logging _"
- networking "help on off connectivity _"
- radio "help all wifi wwan _"
- connection "help show up down add modify clone edit delete monitor reload load import export _"
- device "help status show set connect reapply modify disconnect delete monitor wifi lldp _"
- agent "help secret polkit all _"
- monitor "help _"
- _ "_"
- )
-
- if (( __first_call )); then
- FAST_HIGHLIGHT[chroma-nmcli-subcommand-a]=""
- FAST_HIGHLIGHT[chroma-nmcli-subcommand-b]=""
- return 1
- elif (( in_redirection > 0 || this_word & 128 )) || [[ $__wrd == "<<<" ]]; then
- return 1
- elif [[ "$2" = -* ]]; then
- return 1
- elif [[ -z ${FAST_HIGHLIGHT[chroma-nmcli-subcommand-a]} ]]; then
- for subcommand in ${(@k)subcommands}; do
- [[ $subcommand = $__wrd* ]] && break || subcommand="_"
- done
- if [[ $subcommand = _ ]]; then
- (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}, __start >= 0 )) \
- && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[${FAST_THEME_NAME}incorrect-subtle]}")
- else
- (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}, __start >= 0 )) \
- && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[${FAST_THEME_NAME}subcommand]}")
- fi
- FAST_HIGHLIGHT[chroma-nmcli-subcommand-a]="$subcommand"
- elif [[ -z ${FAST_HIGHLIGHT[chroma-nmcli-subcommand-b]} ]]; then
- for subcommand in ${(s. .)subcommands[${FAST_HIGHLIGHT[chroma-nmcli-subcommand-a]}]}; do
- [[ "$subcommand" = $__wrd* ]] && break || subcommand="_"
- done
- if [[ $subcommand = _ ]]; then
- (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}, __start >= 0 )) \
- && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[${FAST_THEME_NAME}incorrect-subtle]}")
- else
- (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}, __start >= 0 )) \
- && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[${FAST_THEME_NAME}subcommand]}")
- fi
- FAST_HIGHLIGHT[chroma-nmcli-subcommand-b]="$subcommand"
- else
- return 1
- fi
-
- (( this_word = next_word ))
- _start_pos=$_end_pos
-
- return 0
|