diff options
Diffstat (limited to '.local/src/blesh/lib/core-cmdspec.sh')
-rw-r--r-- | .local/src/blesh/lib/core-cmdspec.sh | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/.local/src/blesh/lib/core-cmdspec.sh b/.local/src/blesh/lib/core-cmdspec.sh new file mode 100644 index 0000000..9da62a8 --- /dev/null +++ b/.local/src/blesh/lib/core-cmdspec.sh @@ -0,0 +1,66 @@ +# this script is a part of blesh (https://github.com/akinomyoga/ble.sh) under BSD-3-Clause license +function ble/cmdspec/initialize { return 0; } +function ble/complete/opts/initialize { + ble/cmdspec/opts mandb-help printf + ble/cmdspec/opts mandb-disable-man:mandb-help bind + ble/cmdspec/opts mandb-disable-man:mandb-help:mandb-help-usage complete + ble/cmdspec/opts mandb-disable-man:no-options : true false + ble/cmdspec/opts mandb-help=%'help echo':stop-options-unless='^-[neE]+$' echo + local conditional_operators=' + -eq (NUM1 -eq NUM2) Arithmetic comparison ==. + -ne (NUM1 -ne NUM2) Arithmetic comparison !=. + -lt (NUM1 -lt NUM2) Arithmetic comparison < . + -le (NUM1 -le NUM2) Arithmetic comparison <=. + -gt (NUM1 -gt NUM2) Arithmetic comparison > . + -ge (NUM1 -ge NUM2) Arithmetic comparison >=. + -nt (FILE1 -nt FILE2) True if file1 is newer than file2 (according to modification date). + -ot (FILE1 -ot FILE2) True if file1 is older than file2. + -ef (FILE1 -ef FILE2) True if file1 is a hard link to file2.' + ble/cmdspec/opts disable-double-hyphen:mandb-help=%'help test':mandb-help=@"$conditional_operators" '[[' + local test_operators=$conditional_operators' + -a (EXPR1 -a EXPR2) True if both expr1 AND expr2 are true. + -a (EXPR1 -o EXPR2) True if either expr1 OR expr2 is true.' + ble/cmdspec/opts disable-double-hyphen:mandb-help=%'help test':mandb-help=@"$test_operators" 'test' '[' + ble/cmdspec/opts mandb-disable-man:mandb-help:stop-options-postarg:plus-options=aAilnrtux declare typeset local + ble/cmdspec/opts mandb-disable-man:mandb-help:stop-options-postarg local export readonly + ble/cmdspec/opts mandb-disable-man:mandb-help:stop-options-postarg alias + ble/cmdspec/opts mandb-help rsync +} +ble/complete/opts/initialize +function ble/cmdinfo/cmd:declare/chroma.wattr { + local ret + if ((wtype==_ble_attr_VAR)); then + ble/syntax:bash/find-rhs "$wtype" "$wbeg" "$wlen" element-assignment && + ble/progcolor/highlight-filename.wattr "$ret" "$wend" + else + ble/progcolor/eval-word || return "$?" + local wval=$ret + if ble/string#match "$wval" '^([_a-zA-Z][_a-zA-Z0-9]*)(\[.+\])?$'; then + local varname=${BASH_REMATCH[1]} + ble/syntax/highlight/vartype "$varname" + ble/progcolor/wattr#setattr "$wbeg" "$ret" + ble/progcolor/wattr#setattr $((wbeg+${#varname})) d + elif ble/string#match "$wval" '^[-+]' && ble/progcolor/is-option-context; then + local ret; ble/color/face2g argument_option + ble/progcolor/wattr#setg "$wbeg" "$ret" + else + local ret; ble/color/face2g argument_error + ble/progcolor/wattr#setg "$wbeg" "$ret" + fi + fi + return 0 +} +function ble/cmdinfo/cmd:declare/chroma { + local i "${_ble_syntax_progcolor_vars[@]/%/=}" # WA #D1570 checked + for ((i=1;i<${#comp_words[@]};i++)); do + local ref=${tree_words[i]} + [[ $ref ]] || continue + local progcolor_iword=$i + ble/progcolor/load-word-data "$ref" + ble/progcolor/@wattr ble/cmdinfo/cmd:declare/chroma.wattr + done +} +function ble/cmdinfo/cmd:typeset/chroma { ble/cmdinfo/cmd:declare/chroma "$@"; } +function ble/cmdinfo/cmd:local/chroma { ble/cmdinfo/cmd:declare/chroma "$@"; } +function ble/cmdinfo/cmd:readonly/chroma { ble/cmdinfo/cmd:declare/chroma "$@"; } +function ble/cmdinfo/cmd:export/chroma { ble/cmdinfo/cmd:declare/chroma "$@"; } |