aboutsummaryrefslogtreecommitdiff
path: root/.config/shell/zsh-fast-syntax-highlighting
diff options
context:
space:
mode:
Diffstat (limited to '.config/shell/zsh-fast-syntax-highlighting')
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/.fast-make-targets (renamed from .config/shell/zsh-fast-syntax-highlighting/-fast-make-targets)50
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/.fast-read-ini-file (renamed from .config/shell/zsh-fast-syntax-highlighting/fast-read-ini-file)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/.fast-run-command (renamed from .config/shell/zsh-fast-syntax-highlighting/-fast-run-command)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/.fast-run-git-command (renamed from .config/shell/zsh-fast-syntax-highlighting/-fast-run-git-command)21
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/.fast-zts-read-all (renamed from .config/shell/zsh-fast-syntax-highlighting/-fast-zts-read-all)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/.github/FUNDING.yml4
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/.travis.yml13
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/:chroma/-subversion.ch252
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/CHANGELOG.md95
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/DONATIONS.md441
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/README.md121
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/THEME_GUIDE.md47
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/_fast-theme6
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/fast-highlight295
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/fast-string-highlight35
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh71
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/fast-theme4
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/share/free_theme.zsh61
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/themes/base16.ini82
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/themes/default.ini2
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-alias.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-alias.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-autoload.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-autoload.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-autorandr.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-autorandr.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-awk.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-awk.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-docker.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-docker.ch)2
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-example.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-example.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-fast-theme.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-fast-theme.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-fpath_peq.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-fpath_peq.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-git.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-git.ch)331
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-grep.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-grep.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-hub.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-hub.ch)2
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-ionice.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-ionice.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-lab.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-lab.ch)2
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-make.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-make.ch)2
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-nice.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-nice.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-nmcli.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-nmcli.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-node.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-node.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-ogit.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-ogit.ch)22
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-perl.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-perl.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-podman.ch90
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-precommand.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-precommand.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-printf.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-printf.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-ruby.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-ruby.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-scp.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-scp.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-sh.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-sh.ch)18
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-source.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-source.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-ssh.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-ssh.ch)7
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-subcommand.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-subcommand.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-subversion.ch250
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-vim.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-vim.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-whatis.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-whatis.ch)21
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-which.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-which.ch)0
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/-zinit.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/-zplugin.ch)150
-rw-r--r--.config/shell/zsh-fast-syntax-highlighting/→chroma/main-chroma.ch (renamed from .config/shell/zsh-fast-syntax-highlighting/:chroma/main-chroma.ch)161
54 files changed, 1320 insertions, 1338 deletions
diff --git a/.config/shell/zsh-fast-syntax-highlighting/-fast-make-targets b/.config/shell/zsh-fast-syntax-highlighting/.fast-make-targets
index 7f905d6..10f8d0a 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/-fast-make-targets
+++ b/.config/shell/zsh-fast-syntax-highlighting/.fast-make-targets
@@ -5,7 +5,7 @@
local -a TARGETS
-_make-expandVars() {
+.make-expandVars() {
local open close var val front='' rest=$1
while [[ $rest == (#b)[^$]#($)* ]]; do
@@ -18,7 +18,7 @@ _make-expandVars() {
rest=${rest[3,-1]}
continue
;;
- (\() # Variable of the form $(foobar)
+ (\() # Variable of the form $(foobar)
open='('
close=')'
;;
@@ -71,7 +71,7 @@ _make-expandVars() {
}
-_make-parseMakefile () {
+.make-parseMakefile () {
local input var val target dep TAB=$'\t' tmp IFS=
while read input
@@ -80,17 +80,51 @@ _make-parseMakefile () {
# TARGET: dependencies
# TARGET1 TARGET2 TARGET3: dependencies
([[*?[:alnum:]$][^$TAB:=%]#:[^=]*)
- target=$(_make-expandVars ${input%%:*})
+ target=$(.make-expandVars ${input%%:*})
TARGETS+=( ${(z)target} )
;;
esac
done
}
-if [[ -z "${FAST_HIGHLIGHT[chroma-make-cache]}" || $(( EPOCHSECONDS - FAST_HIGHLIGHT[chroma-make-cache-born-at] )) -gt 7 ]]; then
- _make-parseMakefile
- FAST_HIGHLIGHT[chroma-make-cache-born-at]="$EPOCHSECONDS"
- FAST_HIGHLIGHT[chroma-make-cache]="${(j:;:)TARGETS}"
+# Cache generated parsing for 1sec per session or globally if configured, per Makefile path.
+if [[ -n "${FAST_HIGHLIGHT[chroma-make-cache-global]}" ]]; then
+ # Determine Makefile path.
+ # TODO: find a way to expand path and resolve alias - this cause deduplicated cache file.
+ local makefile_path
+ makefile_path=${FAST_HIGHLIGHT[chroma-make-custom-dir]%/}/${FAST_HIGHLIGHT[chroma-make-custom-file]}
+
+ # If not absolute, resolve to absolute path
+ [[ $makefile_path != /* ]] && makefile_path="$PWD/$makefile_path"
+
+ # Generate a safe hash for the cache file name using sha1sum
+ local makefile_hash
+ makefile_hash=$(print -n -- "$makefile_path" | sha1sum | awk '{print $1}')
+
+ # Generate a sha1sum hash from the input variable
+ local input var val target dep TAB=$'\t' tmp IFS=
+ local input_hash
+ input_hash=$(print -n -- "$input" | sha1sum | awk '{print $1}')
+
+ # Generate the cache file path.
+ local cache_file
+ cache_file="/tmp/fast-highlight-make-cache-${makefile_hash}-${input_hash}"
+
+ if [[ ! -f $cache_file ]]; then
+ # Clean up old cache files.
+ rm -rf /tmp/fast-highlight-make-cache-${makefile_hash}-*
+ # Generate new cache file.
+ .make-parseMakefile "$input"
+ print -r -- "${(j:;:)TARGETS}" >| "$cache_file"
+ fi
+ FAST_HIGHLIGHT[chroma-make-cache]="$(<$cache_file)"
+ FAST_HIGHLIGHT[chroma-make-cache-born-at]="0"
+else
+ if [[ -z "${FAST_HIGHLIGHT[chroma-make-cache]}" || $(( EPOCHSECONDS - FAST_HIGHLIGHT[chroma-make-cache-born-at] )) -gt 7 ]]; then
+ .make-parseMakefile
+ FAST_HIGHLIGHT[chroma-make-cache-born-at]="$EPOCHSECONDS"
+ FAST_HIGHLIGHT[chroma-make-cache]="${(j:;:)TARGETS}"
+ fi
fi
reply2=( "${(s:;:)FAST_HIGHLIGHT[chroma-make-cache]}" )
diff --git a/.config/shell/zsh-fast-syntax-highlighting/fast-read-ini-file b/.config/shell/zsh-fast-syntax-highlighting/.fast-read-ini-file
index 2e57d10..2e57d10 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/fast-read-ini-file
+++ b/.config/shell/zsh-fast-syntax-highlighting/.fast-read-ini-file
diff --git a/.config/shell/zsh-fast-syntax-highlighting/-fast-run-command b/.config/shell/zsh-fast-syntax-highlighting/.fast-run-command
index e251bcc..e251bcc 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/-fast-run-command
+++ b/.config/shell/zsh-fast-syntax-highlighting/.fast-run-command
diff --git a/.config/shell/zsh-fast-syntax-highlighting/-fast-run-git-command b/.config/shell/zsh-fast-syntax-highlighting/.fast-run-git-command
index 604cbea..4a42b97 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/-fast-run-git-command
+++ b/.config/shell/zsh-fast-syntax-highlighting/.fast-run-git-command
@@ -26,11 +26,24 @@
typeset -ga __lines_list
local -a __response
-if [[ -z "${FAST_HIGHLIGHT[$2-cache]}" || $(( EPOCHSECONDS - FAST_HIGHLIGHT[$2-cache-born-at] )) -gt ${4:-5} ]]; then
- FAST_HIGHLIGHT[$2-cache-born-at]="$EPOCHSECONDS"
- if [[ "$(command git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]]; then
+if [[ $1 == --status ]] {
+ integer __status=1
+ shift
+}
+
+if [[ -z ${FAST_HIGHLIGHT[$2-cache]} || $(( EPOCHSECONDS - FAST_HIGHLIGHT[$2-cache-born-at] )) -gt ${4:-5} ]]; then
+ FAST_HIGHLIGHT[$2-cache-born-at]=$EPOCHSECONDS
+ if [[ "$(command git rev-parse --is-inside-work-tree 2>/dev/null)" = true ]]; then
__response=( ${${(f)"$(command ${(Qz)${1#+}} 2>/dev/null)"}#$3} )
- [[ "$1" = "+"* ]] && __lines_list+=( "${__response[@]}" ) || __lines_list=( "${__response[@]}" )
+ integer retval=$?
+ if (( __status )) {
+ __response=( $retval )
+ __lines_list=( $retval )
+ } else {
+ [[ "$1" = "+"* ]] && \
+ __lines_list+=( "${__response[@]}" ) || \
+ __lines_list=( "${__response[@]}" )
+ }
else
__lines_list=()
fi
diff --git a/.config/shell/zsh-fast-syntax-highlighting/-fast-zts-read-all b/.config/shell/zsh-fast-syntax-highlighting/.fast-zts-read-all
index 96c52ab..96c52ab 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/-fast-zts-read-all
+++ b/.config/shell/zsh-fast-syntax-highlighting/.fast-zts-read-all
diff --git a/.config/shell/zsh-fast-syntax-highlighting/.github/FUNDING.yml b/.config/shell/zsh-fast-syntax-highlighting/.github/FUNDING.yml
deleted file mode 100644
index 38474bc..0000000
--- a/.config/shell/zsh-fast-syntax-highlighting/.github/FUNDING.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-# These are supported funding model platforms
-
-patreon: psprint
-ko_fi: psprint
diff --git a/.config/shell/zsh-fast-syntax-highlighting/.travis.yml b/.config/shell/zsh-fast-syntax-highlighting/.travis.yml
deleted file mode 100644
index 351b593..0000000
--- a/.config/shell/zsh-fast-syntax-highlighting/.travis.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-addons:
- apt:
- packages:
- zsh
-install:
- - mkdir .bin
- - curl -L https://github.com/zunit-zsh/zunit/releases/download/v0.8.2/zunit > .bin/zunit
- - curl -L https://raw.githubusercontent.com/molovo/revolver/master/revolver > .bin/revolver
- - curl -L https://raw.githubusercontent.com/molovo/color/master/color.zsh > .bin/color
-before_script:
- - chmod u+x .bin/{color,revolver,zunit}
- - export PATH="$PWD/.bin:$PATH"
-script: zunit
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-subversion.ch b/.config/shell/zsh-fast-syntax-highlighting/:chroma/-subversion.ch
deleted file mode 100644
index 57b5674..0000000
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-subversion.ch
+++ /dev/null
@@ -1,252 +0,0 @@
-# -*- mode: sh; sh-indentation: 4; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2018 Sebastian Gniazdowski
-# Copyright (C) 2019 by Philippe Troin (F-i-f on GitHub)
-# All rights reserved.
-#
-# The only licensing for this file follows.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-
-chroma/-subversion.ch/parse-revision() {
- setopt local_options extendedglob warn_create_global typeset_silent
- local __wrd="$1" __start_pos="$2" __end_pos="$3" __style __start __end
- case $__wrd in
- (r|)[0-9]##) __style=${FAST_THEME_NAME}mathnum ;;
- (HEAD|BASE|COMITTED|PREV)) __style=${FAST_THEME_NAME}correct-subtle ;;
- '{'[^}]##'}') __style=${FAST_THEME_NAME}subtle-bg ;;
- *) __style=${FAST_THEME_NAME}incorrect-subtle ;;
- esac
- (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}, __start >= 0 )) && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[$__style]}")
-}
-
-chroma/-subversion.ch/parse-target() {
- setopt local_options extendedglob warn_create_global typeset_silent
- local __wrd="$1" __start_pos="$2" __end_pos="$3" __style __start __end
- if [[ $__wrd == *@[^/]# ]]
- then
- local place=${__wrd%@[^/]#}
- local rev=$__wrd[$(($#place+2)),$#__wrd]
- if [[ -e $place ]]; then
- local __style
- [[ -d $place ]] && __style="${FAST_THEME_NAME}path-to-dir" || __style="${FAST_THEME_NAME}path"
- (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}-$#rev-1, __start >= 0 )) \
- && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[$__style]}")
- fi
- (( __start=__start_pos-${#PREBUFFER}+$#place, __end=__end_pos-${#PREBUFFER}-$#rev, __start >= 0 )) \
- && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[${FAST_THEME_NAME}for-loop-separator]}")
- chroma/-subversion.ch/parse-revision $rev $((__start_pos+$#place+1)) $__end_pos
- else
- return 1
- fi
-}
-
-chroma/-subversion.ch() {
- setopt local_options extendedglob warn_create_global
-
- # Keep chroma-takever state meaning: until ;, handle highlighting via chroma.
- # So the below 8192 assignment takes care that next token will be routed to chroma.
- (( next_word = 2 | 8192 ))
-
- local __first_call="$1" __wrd="$2" __start_pos="$3" __end_pos="$4"
- local __style
- integer __idx1 __idx2
-
- (( __first_call )) && {
- # Called for the first time - new command.
- # FAST_HIGHLIGHT is used because it survives between calls, and
- # allows to use a single global hash only, instead of multiple
- # global string variables.
- FAST_HIGHLIGHT[subversion-command]=$__wrd
- FAST_HIGHLIGHT[subversion-option-argument]=
- FAST_HIGHLIGHT[subversion-subcommand]=
- FAST_HIGHLIGHT[subversion-subcommand-arguments]=0
-
- # Set style for region_highlight entry. It is used below in
- # '[[ -n "$__style" ]] ...' line, which adds highlight entry,
- # like "10 12 fg=green", through `reply' array.
- #
- # Could check if command `example' exists and set `unknown-token'
- # style instead of `command'
- __style=${FAST_THEME_NAME}command
-
- } || {
- # Following call, i.e. not the first one
-
- # Check if chroma should end – test if token is of type
- # "starts new command", if so pass-through – chroma ends
- [[ "$__arg_type" = 3 ]] && return 2
-
- if (( in_redirection > 0 || this_word & 128 )) || [[ $__wrd == "<<<" ]]; then
- return 1
- fi
-
- if [[ "$__wrd" = -* ]]; then
- # Detected option, add style for it.
- [[ "$__wrd" = --* ]] && __style=${FAST_THEME_NAME}double-hyphen-option || \
- __style=${FAST_THEME_NAME}single-hyphen-option
- case $FAST_HIGHLIGHT[subversion-command]/$FAST_HIGHLIGHT[subversion-subcommand] in
- svn/)
- case $__wrd in
- --username|-u) FAST_HIGHLIGHT[subversion-option-argument]=any;;
- --password|-p) FAST_HIGHLIGHT[subversion-option-argument]=any;;
- --config-(dir|option)) FAST_HIGHLIGHT[subversion-option-argument]=any;;
- esac
- ;;
- svn/?*)
- case $__wrd in
- --accept) FAST_HIGHLIGHT[subversion-option-argument]=accept;;
- --change|-c) FAST_HIGHLIGHT[subversion-option-argument]=revision;;
- --changelist|--cl) FAST_HIGHLIGHT[subversion-option-argument]=any;;
- --(set-|)depth) FAST_HIGHLIGHT[subversion-option-argument]=depth;;
- --diff(3|)-cmd) FAST_HIGHLIGHT[subversion-option-argument]=cmd;;
- --editor-cmd) FAST_HIGHLIGHT[subversion-option-argument]=cmd;;
- --encoding) FAST_HIGHLIGHT[subversion-option-argument]=any;;
- --file) FAST_HIGHLIGHT[subversion-option-argument]=any;;
- --limit|-l) FAST_HIGHLIGHT[subversion-option-argument]=number;;
- --message|-m) FAST_HIGHLIGHT[subversion-option-argument]=any;;
- --native-eol) FAST_HIGHLIGHT[subversion-option-argument]=eol;;
- --new|--old) FAST_HIGHLIGHT[subversion-option-argument]=target;;
- --revision|-r) FAST_HIGHLIGHT[subversion-option-argument]=revision-pair;;
- --show-revs) FAST_HIGHLIGHT[subversion-option-argument]=show-revs;;
- --strip) FAST_HIGHLIGHT[subversion-option-argument]=number;;
- --with-revprop) FAST_HIGHLIGHT[subversion-option-argument]=revprop;;
- esac
- ;;
- svnadmin/*)
- case $__wrd in
- --config-dir) FAST_HIGHLIGHT[subversion-option-argument]=any;;
- --fs-type) FAST_HIGHLIGHT[subversion-option-argument]=any;;
- --memory-cache-size|-M) FAST_HIGHLIGHT[subversion-option-argument]=number;;
- --parent-dir) FAST_HIGHLIGHT[subversion-option-argument]=any;;
- --revision|-r) FAST_HIGHLIGHT[subversion-option-argument]=revision-pair;;
- esac
- ;;
- svndumpfilter/*)
- case $__wrd in
- --targets) FAST_HIGHLIGHT[subversion-option-argument]=any;;
- esac
- ;;
- esac
- elif [[ -n $FAST_HIGHLIGHT[subversion-option-argument] ]]; then
- case $FAST_HIGHLIGHT[subversion-option-argument] in
- any)
- FAST_HIGHLIGHT[subversion-option-argument]=
- return 1
- ;;
- accept)
- [[ $__wrd = (p(|ostpone)|e(|dit)|l(|aunch)|base|working|recommended|[mt][cf]|(mine|theirs)-(conflict|full)) ]] \
- && __style=${FAST_THEME_NAME}correct-subtle \
- || __style=${FAST_THEME_NAME}incorrect-subtle
- ;;
- depth)
- [[ $__wrd = (empty|files|immediates|infinity) ]] \
- && __style=${FAST_THEME_NAME}correct-subtle \
- || __style=${FAST_THEME_NAME}incorrect-subtle
- ;;
- number)
- [[ $__wrd = [0-9]## ]] \
- && __style=${FAST_THEME_NAME}mathnum \
- || __style=${FAST_THEME_NAME}incorrect-subtle
- ;;
- eol)
- [[ $__wrd = (CR(|LF)|LF) ]] \
- && __style=${FAST_THEME_NAME}correct-subtle \
- || __style=${FAST_THEME_NAME}incorrect-subtle
- ;;
- show-revs)
- [[ $__wrd = (merged|eligible) ]] \
- && __style=${FAST_THEME_NAME}correct-subtle \
- || __style=${FAST_THEME_NAME}incorrect-subtle
- ;;
- revision)
- chroma/-subversion.ch/parse-revision $__wrd $__start_pos $__end_pos
- ;;
- revision-pair)
- local -a match mbegin mend
- if [[ $__wrd = (#b)(\{[^}]##\}|[^:]##)(:)(*) ]]; then
- chroma/-subversion.ch/parse-revision $match[1] $__start_pos $(( __end_pos - ( mend[3]-mend[2] ) - 1 ))
- chroma/-subversion.ch/parse-revision $match[3] $(( __start_pos + ( mbegin[3]-mbegin[1] ) )) $__end_pos
- (( __start=__start_pos-${#PREBUFFER}+(mbegin[2]-mbegin[1]), __end=__end_pos-${#PREBUFFER}-(mend[3]-mend[2]), __start >= 0 )) \
- && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[${FAST_THEME_NAME}for-loop-separator]}")
- else
- chroma/-subversion.ch/parse-revision $__wrd $__start_pos $__end_pos
- fi
- ;;
- target)
- chroma/-subversion.ch/parse-target $__wrd $__start_pos $__end_pos || return $?
- ;;
- cmd)
- this_word=1
- return 1
- ;;
- esac
- FAST_HIGHLIGHT[subversion-option-argument]=
- elif [[ -z $FAST_HIGHLIGHT[subversion-subcommand] ]]
- then
- FAST_HIGHLIGHT[subversion-subcommand]=$__wrd
- local subcmds
- case $FAST_HIGHLIGHT[subversion-command] in
- svn) subcmds='(add|auth|blame|praise|annotate|ann|cat|changelist|cl|checkout|co|cleanup|commit|ci|copy|cp|delete|del|remove|rm|diff|di|export|help|\?|h|import|info|list|ls|lock|log|merge|mergeinfo|mkdir|move|mv|rename|ren|patch|propdel|pdel|pd|propedit|pedit|pe|propget|pget|pg|proplist|plist|pl|propset|pset|ps|relocate|resolve|resolved|revert|status|stat|st|switch|sw|unlock|update|up|upgrade|x-shelf-diff|x-shelf-drop|x-shelf-list|x-shelves|x-shelf-list-by-paths|x-shelf-log|x-shelf-save|x-shelve|x-unshelve)' ;;
- svnadmin) subcmds="(crashtest|create|delrevprop|deltify|dump|dump-revprops|freeze|help|\?|h|hotcopy|info|list-dblogs|list-unused-dblogs|load|load-revprops|lock|lslocks|lstxns|pack|recover|rmlocks|rmtxns|setlog|setrevprop|setuuid|unlock|upgrade|verify)";;
- svndumpfilter) subcmds='(include|exclude|help|\?)';;
- esac
- [[ $FAST_HIGHLIGHT[subversion-subcommand] = $~subcmds ]] \
- && __style=${FAST_THEME_NAME}subcommand \
- || __style=${FAST_THEME_NAME}incorrect-subtle
- FAST_HIGHLIGHT[subversion-subcommand-arguments]=0
- else
- (( FAST_HIGHLIGHT[subversion-subcommand-arguments]+=1 ))
- if [[ ( $FAST_HIGHLIGHT[subversion-subcommand] == (checkout|co|export|log|merge|switch|sw) && $FAST_HIGHLIGHT[subversion-subcommand-arguments] -eq 1 ) \
- || $FAST_HIGHLIGHT[subversion-subcommand] == (blame|praise|annotate|ann|cat|copy|cp|diff|info|list|ls|mergeinfo) ]]; then
- chroma/-subversion.ch/parse-target $__wrd $__start_pos $__end_pos || return $?
- else
- return 1
- fi
- fi
- }
-
- # Add region_highlight entry (via `reply' array).
- # If 1 will be added to __start_pos, this will highlight "oken".
- # If 1 will be subtracted from __end_pos, this will highlight "toke".
- # $PREBUFFER is for specific situations when users does command \<ENTER>
- # i.e. when multi-line command using backslash is entered.
- #
- # This is a common place of adding such entry, but any above code can do
- # it itself (and it does in other chromas) and skip setting __style to
- # this way disable this code.
- [[ -n "$__style" ]] && (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}, __start >= 0 )) && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[$__style]}")
-
- # We aren't passing-through, do obligatory things ourselves.
- # _start_pos=$_end_pos advainces pointers in command line buffer.
- #
- # To pass through means to `return 1'. The highlighting of
- # this single token is then done by fast-syntax-highlighting's
- # main code and chroma doesn't have to do anything.
- (( this_word = next_word ))
- _start_pos=$_end_pos
-
- return 0
-
- # vim:ft=zsh:et:sw=4
-}
diff --git a/.config/shell/zsh-fast-syntax-highlighting/CHANGELOG.md b/.config/shell/zsh-fast-syntax-highlighting/CHANGELOG.md
index b2a7665..993eaa7 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/CHANGELOG.md
+++ b/.config/shell/zsh-fast-syntax-highlighting/CHANGELOG.md
@@ -2,14 +2,14 @@
**2018-08-09**
-Added ideal string highlighting – FSH now handles any legal quoting and combination of `"`,`'` and `\` when
-highlighting program arguments. See the introduction for an example (item #14).
+Added ideal string highlighting – FSH now handles any legal quoting and combination of `"`,`'` and `\` when highlighting
+program arguments. See the introduction for an example (item #14).
**2018-08-02**
Global aliases are now supported:
-![image](https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/global-alias.png)
+![image](https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/global-alias.png)
**2018-08-01**
@@ -27,74 +27,77 @@ set_fast_theme() {
}
```
-If you have set theme before an update of styles (e.g. recent addition of bracket highlighting)
-then please repeat `fast-theme {theme}` call to regenerate theme files. (**2018-08-09**: FSH
-now has full user-theme support, refer to [appropriate section of README](#customization)).
+If you have set theme before an update of styles (e.g. recent addition of bracket highlighting) then please repeat
+`fast-theme {theme}` call to regenerate theme files. (**2018-08-09**: FSH now has full user-theme support, refer to
+[appropriate section of README](#customization)).
**2018-07-30**
Ideal highlighting of brackets (pairing, etc.) – no quoting can disturb the result:
-![image](https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/brackets.gif)
+![image](https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/brackets.gif)
-`FAST_HIGHLIGHT[use_brackets]=1` to enable this feature (**2018-07-31**: not needed anymore, this highlighting is active by default).
+`FAST_HIGHLIGHT[use_brackets]=1` to enable this feature (**2018-07-31**: not needed anymore, this highlighting is active
+by default).
**2018-07-21**
-Chroma architecture now supports aliases. You can have `alias mygit="git commit"` and when `mygit`
-will be invoked everything will work as expected (Git chroma will be ran).
+Chroma architecture now supports aliases. You can have `alias mygit="git commit"` and when `mygit` will be invoked
+everything will work as expected (Git chroma will be ran).
**2018-07-11**
-There were problems with Ctrl-C not working when using FSH. After many days I've found a fix
-for this, it's pushed to master.
+There were problems with Ctrl-C not working when using FSH. After many days I've found a fix for this, it's pushed to
+master.
-Second, asynchronous path checking (useful on e.g. slow network drives, or when there are many files in directory)
-is now optional. Set `FAST_HIGHLIGHT[use_async]=1` to enable it. This saves some users from Zshell crashes
-– there's an unknown bug in Zsh.
+Second, asynchronous path checking (useful on e.g. slow network drives, or when there are many files in directory) is
+now optional. Set `FAST_HIGHLIGHT[use_async]=1` to enable it. This saves some users from Zshell crashes – there's an
+unknown bug in Zsh.
**2018-06-09**
-New chroma functions: `awk`, `make`, `perl`, `vim`. Checkout the [video](https://asciinema.org/a/186234),
-it shows functionality of `awk` – compiling of code and NOT running it. Perl can do this too:
+New chroma functions: `awk`, `make`, `perl`, `vim`. Checkout the [video](https://asciinema.org/a/186234), it shows
+functionality of `awk` – compiling of code and NOT running it. Perl can do this too:
[video](https://asciinema.org/a/186098).
**2018-06-06**
-FSH gained a new architecture – "chroma functions". They are similar to "completion functions", i.e. they
-are defined **per-command**, but instead of completing that command, they colorize it. Two chroma exist,
-for `Git` ([video](https://asciinema.org/a/185707), [video](https://asciinema.org/a/185811)) and for `grep`
+FSH gained a new architecture – "chroma functions". They are similar to "completion functions", i.e. they are defined
+**per-command**, but instead of completing that command, they colorize it. Two chroma exist, for `Git`
+([video](https://asciinema.org/a/185707), [video](https://asciinema.org/a/185811)) and for `grep`
([video](https://asciinema.org/a/185942)). Checkout
-[example chroma](https://github.com/zdharma/fast-syntax-highlighting/blob/master/chroma/-example.ch) if you
-would like to highlight a command.
+[example chroma](https://github.com/zdharma/fast-syntax-highlighting/blob/master/chroma/-example.ch) if you would like
+to highlight a command.
-![sshot](https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/git_chroma.png)
+![sshot](https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/git_chroma.png)
**2018-06-01**
-Highlighting of command substitution (i.e. `$(...)`) with alternate theme – two themes at once! It was just white before:
+Highlighting of command substitution (i.e. `$(...)`) with alternate theme – two themes at once! It was just white
+before:
-![sshot](https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/cmdsubst.png)
+![sshot](https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/cmdsubst.png)
-To select which theme to use for `$(...)` set the key `secondary=` in [theme ini file](https://github.com/zdharma/fast-syntax-highlighting/blob/master/themes/free.ini#L7).
-All shipped themes have this key set (only the `default` theme doesn't use second theme).
+To select which theme to use for `$(...)` set the key `secondary=` in
+[theme ini file](https://github.com/zdharma/fast-syntax-highlighting/blob/master/themes/free.ini#L7). All shipped themes
+have this key set (only the `default` theme doesn't use second theme).
Also added correct highlighting of descriptor-variables passed to `exec`:
-![sshot](https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/execfd.png)
+![sshot](https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/execfd.png)
**2018-05-30**
-For-loop is highlighted, it has separate settings in [theme file](https://github.com/zdharma/fast-syntax-highlighting/blob/master/themes/free.ini).
+For-loop is highlighted, it has separate settings in
+[theme file](https://github.com/zdharma/fast-syntax-highlighting/blob/master/themes/free.ini).
-![sshot](https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/for-loop.png)
+![sshot](https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/for-loop.png)
**2018-05-27**
-Added support for 256-color themes. There are six themes shipped with FSH. The command to
-switch theme is `fast-theme {theme-name}`, it has a completion which lists available themes
-and options. Checkout [asciinema recording](https://asciinema.org/a/183814) that presents
-the themes.
+Added support for 256-color themes. There are six themes shipped with FSH. The command to switch theme is
+`fast-theme {theme-name}`, it has a completion which lists available themes and options. Checkout
+[asciinema recording](https://asciinema.org/a/183814) that presents the themes.
**2018-05-25**
@@ -110,18 +113,18 @@ FAST_BLIST_PATTERNS[/mount/disk2/*]=1
Assign colorizing now spans to variables defined by `typeset`, `export`, `local`, etc.:
-![sshot](https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/typeset.png)
+![sshot](https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/typeset.png)
-Also, `zcalc` has a separate math mode and specialized highlighting – no more light-red colors because of
-treating `zcalc` like a regular command-line:
+Also, `zcalc` has a separate math mode and specialized highlighting – no more light-red colors because of treating
+`zcalc` like a regular command-line:
-![sshot](https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/zcalc.png)
+![sshot](https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/zcalc.png)
**2018-05-22**
Array assignments were still boring, so I throwed in bracked colorizing:
-![sshot](https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/array-assign.png)
+![sshot](https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/array-assign.png)
**2018-05-22**<a name="assign-update"></a>
@@ -131,14 +134,14 @@ Assignments are no more one-colour default-white. When used in assignment, highl
- strings (double-quoted and single-quoted),
- math-mode (`val=$(( ... ))`).
-![sshot](https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/assign.png)
+![sshot](https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/assign.png)
**2018-01-06**
-Math mode is highlighted – expressions `(( ... ))` and `$(( ... ))`. Empty variables are colorized as red.
-There are 3 style names (fields of
-[FAST_HIGHLIGHT_STYLES](https://github.com/zdharma/fast-syntax-highlighting/blob/master/fast-highlight#L34)
-hash) for math-variable, number and empty variable (error): `mathvar`, `mathnum`, `matherr`. You can set
-them (like the animation below shows) to change colors.
+Math mode is highlighted – expressions `(( ... ))` and `$(( ... ))`. Empty variables are colorized as red. There are 3
+style names (fields of
+[FAST_HIGHLIGHT_STYLES](https://github.com/zdharma/fast-syntax-highlighting/blob/master/fast-highlight#L34) hash) for
+math-variable, number and empty variable (error): `mathvar`, `mathnum`, `matherr`. You can set them (like the animation
+below shows) to change colors.
-![animation](https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/math.gif)
+![animation](https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/math.gif)
diff --git a/.config/shell/zsh-fast-syntax-highlighting/DONATIONS.md b/.config/shell/zsh-fast-syntax-highlighting/DONATIONS.md
deleted file mode 100644
index fc22058..0000000
--- a/.config/shell/zsh-fast-syntax-highlighting/DONATIONS.md
+++ /dev/null
@@ -1,441 +0,0 @@
-<!-- START doctoc generated TOC please keep comment here to allow auto update -->
-<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
-**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
-
-- [2018-08-14, received $30](#2018-08-14-received-30)
-- [2018-08-03, received $8](#2018-08-03-received-8)
-- [2018-08-02, received $3 from Patreon](#2018-08-02-received-3-from-patreon)
-- [2018-07-31, received $7](#2018-07-31-received-7)
-- [2018-07-28, received $2](#2018-07-28-received-2)
-- [2018-07-25, received $3](#2018-07-25-received-3)
-- [2018-07-20, received $3](#2018-07-20-received-3)
-- [2018-06-17, received ~$155 (200 CAD)](#2018-06-17-received-155-200-cad)
-- [2018-06-10, received $10](#2018-06-10-received-10)
-- [2018-05-25, received $50](#2018-05-25-received-50)
-
-<!-- END doctoc generated TOC please keep comment here to allow auto update -->
-
-Below are reports about what is being done with donations, i.e. which commits
-are created thanks to them, which new features are added, etc. From the money
-I receive I buy myself coffee and organize the time to work on the requested
-features, sometimes many days in a row.
-
-## 2018-08-14, received $30
-
- * **Project**: **[Zplugin](https://github.com/zdharma/zplugin)**
- * **Goal**: Create a binary Zsh module with one Zplugin optimization and optionally some
- other features.
- * **Status**: The job is done.
-
-Thanks to this donation I have finally started to code **[binary Zplugin module](
-https://github.com/zdharma/zplugin#quick-start-module-only)**, which is a big step onward
-in evolution of Zplugin. I've implemented and published the module with 3 complete
-features: 1) `load` optimization, 2) autocompilation of scripts, 3) profiling of script
-load times.
-
-Commit list:
-```
-2018-08-22 7b96fad doc: mod-install.sh
-2018-08-22 ba1ba64 module: Update zpmod usage text
-2018-08-22 b0d72e8 zplugin,*autoload: `module' command, manages new zdharma/zplugin module
-2018-08-22 706bbb3 Update Zsh source files to latest
-2018-08-20 b77426f module: source-study builds report with milliseconds without fractions
-2018-08-20 c3cc09b module: Updated zpmod_usage, i.a. with `source-study' sub-command
-2018-08-20 6190295 module: Go back to subcommand-interface to `zpmod'; simple option parser
-2018-08-20 881005f module: Report on sourcing times is shown on `zpmod -S`. Done generation
-2018-08-19 e5d046a module: Correct conditions on zwc file vs. script file (after stats)
-2018-08-19 1282c21 module: Duration of sourcing a file is measured and stored into a hash
-2018-08-18 e080153 module: Overload both `source' and `.' builtins
-2018-08-18 580efb8 module: Invoke bin_zcompile with -U option (i.e. no alias expansion)
-2018-08-18 b7d9836 module: Custom `source' ensures script is compiled, compiles if not
-2018-08-18 1e75a47 module: Code cleanup, vim folding
-2018-08-18 a4a02f3 module: Finally working `source'/`.' overload (used options translating)
-2018-08-16 99bba56 module: zpmod_usage gained content
-2018-08-16 04703cd module: Add the main builtin zpmod with report-append which is working
-2018-08-16 cd6dc19 module: my_ztrdup_glen, zp_unmetafy_zalloc
-2018-08-16 6d44e36 module: Cleanup, `source' overload after patron leoj3n restarted module
-```
-
-## 2018-08-03, received $8
-
- * **Project**: **[zdharma/history-search-multi-word](https://github.com/zdharma/history-search-multi-word)**
- * **Goal**: Allow calling `zle reset-prompt` (Zshell feature).
- * **Status**: The job is done.
-
-A user wanted to be able to call `reset-prompt` Zshell widget without disturbing my project
-`history-search-multi-word`. I've implemented the necessary changes to HSMW.
-
-Commit list:
-
-```
-2018-08-04 9745d3d hsmw: reset-prompt-protect zstyle – allow users to run zle reset-prompt
-2018-08-04 ce48a53 hsmw: More typo-like lackings of % substitution
-2018-08-04 7e2d79b hsmw: A somewhat typo, missing % substitution
-```
-
-## 2018-08-02, received $3 from Patreon
-
- * **Project**: **[zdharma/fast-syntax-highlighting](https://github.com/zdharma/fast-syntax-highlighting)**
- * **Goal**: No goal set up.
- * **Status**: Bug-fixing work.
-
-I did bug-fixing run on `fast-syntax-highlighting`, spotted many small and sometimes important things to
-improve. Did one bigger thing – added global-aliases functionality.
-
-Commit list:
-
-```
-2018-08-02 1e854f5 -autoload.ch: Don't check existence for arguments that are variables
-2018-08-02 14cdc5e *-string-*: Support highlighter cooperation in presence of $PREBUFFER
-2018-08-02 2d8f0e4 *-highlight: Correctly highlight $VAR, $~VAR, ${+VAR}, etc. in strings
-2018-08-02 e3032d9 *-highlight: ${#PREBUFFER} -> __PBUFLEN, equal performance
-2018-08-02 f0a7121 *-highlight: Make case conditions and brackets highlighter compatible
-2018-08-02 781f68e *-highlight: Recognize more case-item-end tokens
-2018-08-02 206c122 *-highlight: Remove unused 4th __arg_type
-2018-08-02 c6da477 *-string-*: Handle 'abc\' – no slash-quoting here. Full quoting support
-2018-08-02 52e0176 *-string-*: Fix bug, third level was getting wrong style
-2018-08-02 5edbfae -git.ch: Support "--message=..." syntax (commit)
-2018-08-02 669d4b7 -git.ch: Handle "--" argument (stops options)
-2018-08-02 4fae1f2 -make.ch: Handle make's -f option
-2018-08-02 3fd32fe -make.ch: Handle make's -C option
-2018-08-02 31751f5 -make.ch: Recognize options that obtain argument
-2018-08-02 e480f18 -make.ch: Fix reply-var clash, gained consistency
-2018-08-02 0e8bc1e Updated README.md
-2018-08-02 eee0034 images: global-alias.png
-2018-08-02 00b41ef *-highlight,themes,fast-theme: Support for global aliases #41
-```
-
-## 2018-07-31, received $7
-
- * **Project**: **[zdharma/fast-syntax-highlighting](https://github.com/zdharma/fast-syntax-highlighting)**
- * **Goal**: Implement ideal brackets highlighting.
- * **Status**: The job is done.
-
-When a source code is edited e.g. in `Notepad++` or some IDE, then most often brackets are somehow matched to
-each other, so that the programmer can detect mistakes. `Fast-syntax-highlighting` too gained that feature. It
-was done in such a way that FSH cannot make any mistake, colors will perfectly match brackets to each other.
-
-Commit list:
-
-```
-2018-07-31 2889860 *-highlight: Correct place to initialize $_FAST_COMPLEX_BRACKETS
-2018-07-31 2bde2a9 Performance status -15/8/8
-2018-07-31 5078261 *-highlight,README: Brackets highlighter active by default
-2018-07-31 2ee3073 *-highlight,*string-*: Brackets in [[..]], ((..)), etc. handled normally
-2018-07-31 776b12d plugin.zsh: $_ZSH_HIGHLIGHT_MAIN_CACHE -> $_FAST_MAIN_CACHE
-2018-07-30 2867712 plugin.zsh: Fix array parameter created without declaring #43
-2018-07-30 cbe5fc8 Updated README.md
-2018-07-30 2bd3291 images: brackets.gif
-2018-07-30 ef23a96 *-string-*: Bug-fix, correctly use theme styles
-2018-07-30 9046f82 plugin.zsh: Attach the new brackets highlighter; F_H[use_brackets]=1
-2018-07-30 b33a5fd fast-theme: Support 4 new styles (for brackets)
-2018-07-30 a03f004 themes: Add 4 new styles (brackets)
-2018-07-30 2448cdc *-string-*: Additional highlight of bracket under cursor; more styles
-2018-07-30 5e1795e *-string-*: Highlighter for brackets, handles all quotings; detached
-```
-
-## 2018-07-28, received $2
-
- * **Project**: **[zdharma/fast-syntax-highlighting](https://github.com/zdharma/fast-syntax-highlighting)**
- * **Goal**: Distinguish file and directory when highlighting
- * **Status**: The job is done.
-
-A user requested that when `fast-syntax-highlighting` colorizes the command line it should use different
-styles (e.g. colors) for token that's a *file* and that's a *directory*. It was a reasonable idea and I've
-implemented it.
-
-Commit list:
-```
-2018-07-28 7f48e04 themes: Extend all themes with new style `path-to-dir'
-2018-07-28 c7c6a91 fast-theme: Support for new style `path-to-dir'
-2018-07-28 264676c *-highlight: Differentiate path and to-dir path. New style: path-to-dir
-```
-
-## 2018-07-25, received $3
-
- * **Project**: **[zdharma/zshelldoc](https://github.com/zdharma/zshelldoc)**
- * **Goal**: Implement documenting of used environment variables.
- * **Status**: The job is done.
-
-Zshelldoc generates code-documentation like Doxygen or Javadoc, etc. User requested a
-new feature: the generated docs should enumerate environment variables used and/or
-exported by every function. Everything went fine and this feature has been implemented.
-
-Commit list:
-
-```
-2018-07-26 f63ea25 Updated README.md
-2018-07-26 3af0cf7 *detect: Get `var' from ${var:-...} and ${...:+${var}} and other subst
-2018-07-25 2932510 *adoc: Better language in output document (about exported vars) #5
-2018-07-25 f858dd8 *adoc: Include (in the output document) data on env-vars used #5
-2018-07-25 80e3763 *adoc: Include data on exports (environment) in the output document #5
-2018-07-25 ca576e2 *detect: Detect which env-vars are used, store meta-data in data/ #5
-2018-07-25 f369dcc *detect: Function `find-variables' reported "$" as a variable, fixed #5
-2018-07-25 e243dab *detect: Function `find-variables' #5
-2018-07-25 5b34bb1 *transform: Detect exports done by function/script-body, store #5
-```
-
-## 2018-07-20, received $3
-
- * **Project**: **[zdharma/zshelldoc](https://github.com/zdharma/zshelldoc)**
- * **Goal**: Implement stripping of leading `#` char from functions' descriptions.
- * **Status**: The job is done.
-
-A user didn't like that functions' descriptions in the JavaDoc-like document (generated with Zshelldoc) all
-contain a leading `#` character. I've added stripping of this character (it is there in the processed source
-code) controlled by a new Zshelldoc option.
-
-Commit list:
-```
-2018-07-20 172c220 zsd,*adoc,README: Option --scomm to strip "#" from function descriptions
-```
-
-## 2018-06-17, received ~$155 (200 CAD)
-
- * **Project**: **[zdharma/fast-syntax-highlighting](https://github.com/zdharma/fast-syntax-highlighting)**
- * **Goal**: No goal set up.
- * **Status**: Done intense research.
-
-I've created 2 new branches: `Hue-optimization` (33 commits) and `Tidbits-feature` (22 commits). Those were
-branches with architectural changes and extraordinary features. The changes yielded to be too slow, and I had
-to withdraw the merge. Below are fixing and optimizing commits (i.e. the valuable ones) that I've restored
-from the two branches into master.
-
-Commit list:
-```
-2018-07-21 dab6576 *-highlight: Merge-restore: remove old comments
-2018-07-21 637521f *-highlight: Merge-restore: a threshold on # of zle .redisplay calls
-2018-07-21 4163d4d *-highlight: Merge-restore: optimize four $__arg[1] = ... cases
-2018-07-21 0f01195 *-highlight: Merge-restore: can remove one (Q) dequoting
-2018-07-21 39a4ec6 *-highlight: Merge-restore: $v = A* is faster than $v[1] = A, tests:
-2018-07-21 99d6b33 *-highlight: Merge-restore: optimize-out ${var:1} Bash syntax
-2018-07-21 719c092 *-highlight: Merge-restore: allow $V/cmd, "$V/cmd, "$V/cmd", "${V}/cmd"
-2018-07-21 026941d *-highlight: Merge-restore: stack pop in single instruction, not two
-2018-07-21 3467e3d *-highlight: Merge-restore: more reasonable redirection-detecting code
-2018-07-21 00d25ee *-highlight: Merge-restore: one active_command="$__arg" not needed (?)
-2018-07-21 1daa6b3 *-highlight: Merge-restore: simplify ; and \n code short-paths
-2018-07-21 55d65be *-highlight: Merge-restore: proc_buf advancement via patterns (not (i))
-2018-07-21 cc55546 *-highlight: Merge-restore: pattern matching to replace (i) flag
-```
-
-## 2018-06-10, received $10
-
- * **Project**: **[zdharma/fast-syntax-highlighting](https://github.com/zdharma/fast-syntax-highlighting)**
- * **Goal**: No goal set up.
- * **Status**: Done intense experimenting.
-
-I was working on *chromas* – command-specific colorization. I've added `which` and
-`printf` colorization, then added asynchronous path checking (needed on slow network
-drives), then coded experimental `ZPath` feature for chromas, but it couldn't be optimized
-so I had to resign of it.
-
-Commit list:
-```
-2018-06-12 c4ed1c6 Optimization – the same idea as in previous patch, better method
-2018-06-12 c36feef Optimization – a) don't index large buffer, b) with negative index
-2018-06-12 2f03829 Performance status 2298 / 1850
-2018-06-12 14f5159 New working feature – ZPath. It requires optimization
-2018-06-12 e027c40 -which.ch: One of commands can apparently return via stderr (#27)
-2018-06-11 5b8004f New chroma `ruby', works like chroma `perl', checks syntax via -ce opts
-2018-06-10 ca2e18b *-highlight: Async path checking has now 8-second cache
-2018-06-10 e071469 *-highlight: Remove path-exists queue clearing
-2018-06-10 5a6684c *-highlight: Support for asynchronous path checking
-2018-06-10 1d7d6f5 New chroma: `printf', highlights special sequences like %s, %20s, etc.
-2018-06-10 8f59868 -which.ch: Update main comment on purpose of this chroma
-2018-06-10 5f4ece2 -which.ch: Added `whatis', it has only 1st line if output used
-2018-06-10 e2d173e -which.ch: Uplift: handle `which' called on a function, /usr/bin/which
-```
-
-## 2018-05-25, received $50
-
- * **Project**: **[zdharma/fast-syntax-highlighting](https://github.com/zdharma/fast-syntax-highlighting)**
- * **Goal**: No goal set up.
- * **Status**: New ideas and features.
-
-I was working from May, 25 to June, 9 and came up with key ideas and implemented them. First were *themes*
-that were very special because they were using `INI` files instead of some Zsh-script format. Creating themes
-for `fast-syntax-highlighting` is thus easy and fun. Then I came up with *chromas*, command-specific
-highlighting, which redefine how syntax-highlighting for Zshell works – detailed highlighting for e.g. Git
-became possible, the user is informed about e.g. a mistake even before running a command. Overall 178 commits
-in 16 days.
-
-```
-2018-06-09 3f72e6c -git.ch: `revert' works almost like `checkout', attach `revert' there
-2018-06-09 b892743 Updated CHROMA_GUIDE.adoc
-2018-06-09 f05643d Revert "Revert "Updated CHROMA_GUIDE.md""
-2018-06-09 729bf7f Revert "Revert "CHROMA_GUIDE: Remove redundant comments, uplift""
-2018-06-09 48a4e0c Revert "CHROMA_GUIDE: Remove redundant comments, uplift"
-2018-06-09 55ede0a Revert "Updated CHROMA_GUIDE.md"
-2018-06-09 17a28ba New chroma `-docker.ch' that verifies image ID passed to `image rm'
-2018-06-09 868812a -make.ch,*-make-targets: Check Makefile exists, use 7 second cache, #24
-2018-06-09 73df278 -sh.ch: Attach fish, has -c option, though different syntax, let's try
-2018-06-09 3a73b8e Updated CHROMA_GUIDE.md
-2018-06-09 29d04c8 CHROMA_GUIDE: Remove redundant comments, uplift
-2018-06-09 22ce1d8 -sh.ch,*-highlight: Attach to 2 other shells, Zsh and Bash
-2018-06-09 f54e44f New chroma `-sh.ch', colorizes code passed to `sh' with -c option
-2018-06-09 f5d2375 CHROMA_GUIDE: Add example code block (rendered broken in mdown)
-2018-06-09 08f4b28 CHROMA_GUIDE: Switch to asciidoc (rename)
-2018-06-09 4e03609 CHROMA_GUIDE.md
-2018-06-09 bbcf2d6 -source.ch: Word "source" should be highlighted as builtin
-2018-06-09 6739b8b New chroma – `source' to handle . and source builtins
-2018-06-09 b961211 gitignore: ignore more paths
-2018-06-09 59d5d09 Updated README.md
-2018-06-09 f6d4d19 Updated README.md
-2018-06-09 eb31324 Update README.md (figlet logo)
-2018-06-09 71dcc5f Performance status 298 / 479
-2018-06-09 00c5f8f *-highlight: Add comments
-2018-06-09 232903c -awk.ch: Highlight `sub' function, not working {, } highlighting
-2018-06-09 b5241ba *-highlight: Much better $( ) recursion, would say problems-free, maybe
-2018-06-08 6c69437 *-highlight: Larger buffer (110 -> 250) for $( ) matching
-2018-06-08 f2b7a96 -awk.ch: Syntax check code passed to awk. Awk is very forgiving, though
-2018-06-08 c53d8ba -vim.ch: Pass almost everything to big-loop, check if vim exists
-2018-06-08 7fbf7cd chroma: New chroma `vim', shows last opened files under prompt
-2018-06-08 06e4570 gitignore: Extend .gitignore
-2018-06-08 3184ba1 chroma: All chroma functions end chroma mode on e.g. | and similar
-2018-06-08 070077d *-highlight,-example.ch: Rename arg_type -> __arg_type, use it to end
-2018-06-08 6c2411e -awk.ch: Use the new theme style `subtle-bg'
-2018-06-08 9ec8d63 themes: All themes (remaining 4) to support `subtle-bg' style
-2018-06-08 66e848b fast-theme: New theme key `subtle-bg', default & clean.ini support it
-2018-06-08 1e794f9 -awk.ch: More keywords highlighted
-2018-06-08 f3bbaca -awk.ch: Don't highlight keywords when they only contain proper keyword
-2018-06-08 e4d5283 -awk.ch: Fix mistake (indices), was highlighting 1 extra trailing letter
-2018-06-08 eebbb19 -awk.ch: Initialize FSH_LIST
-2018-06-08 8ec24ca *-highlight: Missing math function for awk
-2018-06-08 d8e423a -awk.ch: Highlight more keywords, via more general code
-2018-06-07 ee26e66 Commit missing -fast-make-targets
-2018-06-07 9d4f2b5 New chroma `-awk.ch', colorizes regex characters and a keyword (print)
-2018-06-07 def5133 -example.ch: Add comments
-2018-06-07 f31a2d0 New chroma -make.ch, verifies if target is correct
-2018-06-07 623b8ce -perl.ch: Use correct keys in FAST_HIGHLIGHT hash
-2018-06-07 090f420 themes: Make all themes provide {in,}correct-subtle styles
-2018-06-07 2201fb6 New -perl.ch chroma, syntax-checks perl code; 2 new theme entries
-2018-06-06 4b9598e *-highlight: Fix bug in math highlight – allow variables starting with _
-2018-06-06 708afec *-highlight: Fix FAST_BLIST_PATTERNS not expanding path to absolute one
-2018-06-06 caef05a -example.ch: Update, fix typos, remove unused code
-2018-06-06 3fb192a Updated README.md
-2018-06-06 6de0c82 images: git_chroma.png
-2018-06-06 2852fdd -grep.ch (new): Special highlighting for grep – -grep.ch chroma function
-2018-06-06 f216785 -example.ch: Added comments
-2018-06-06 4ab5b36 -example.ch: Add comments
-2018-06-06 380cd12 -example.ch: Added comments
-2018-06-06 c8947cc -example.ch: Add comments
-2018-06-06 f2e273e -example.ch: Add comments
-2018-06-06 2f3565b plugin.zsh: Fix parse error
-2018-06-06 4f1a9bd plugin.zsh: Added $fpath handling, to match what README contains
-2018-06-06 cc9adb5 -example.ch: Change and extend comments
-2018-06-06 3128fff -git.ch: More intelligent `checkout' highlighting – ref is first
-2018-06-06 4b6f54b -git.ch: Support for `checkout' subcommand
-2018-06-06 1930d37 -example.ch: Added example chroma function
-2018-06-05 d79cd85 -git.ch: Add comments
-2018-06-05 1473c9e -git.ch: Add comments
-2018-06-05 0cb1419 -git.ch: Message passed after -m is checked for the 72 chars boundary
-2018-06-05 3f99944 -git.ch: Architectural uplift of git chroma
-2018-06-05 e044d13 -git.ch: Single place to add entry to $reply (target: region_highlight)
-2018-06-05 3a84364 -git.ch: Handle quoted non-option arguments, also partly quoted: "abc
-2018-06-05 d635bf4 -fast-run-git-command, it handles cache automatically, decimates source
-2018-06-05 102ea78 -git.ch: Smart handling of `git push', remotes and branches are verified
-2018-06-04 be88850 Performance status [+] 39+77=116 / -26+24=-2
-2018-06-04 0e033f8 Experimental chroma support, currently active only on command `git'
-2018-06-04 43ae221 *-highlight: Emacs mode-line
-2018-06-04 938ad29 test: New "-git" parsing option, test results, -git.ch included
-2018-06-04 e433fbc fast-theme: Explicitly return 0; added Emacs mode-line
-2018-06-04 66e9b3c *-highlight: Detection of $( ) now doesn't go for $(( )) as a candidate
-2018-06-04 488a580 chroma: Empty chroma function for `git'
-2018-06-04 f54d770 *-highlight: Rename $cur_cmd to $active_command
-2018-06-04 3f24e68 *-highlight: Make sudo and always-block compatible with `case' handling
-2018-06-02 cd82637 themes: forest.ini to support 3 new `case' styles
-2018-06-02 e1e993e themes: safari.ini & zdharma.ini to support 3 new `case' styles
-2018-06-02 2e78a02 themes: clean.ini & default.ini to support 3 new `case' styles
-2018-06-02 c1c3aab themes: free.ini to support 3 new `case' styles
-2018-06-02 70a7e18 fast-theme,*-highlight: 3 new styles for `case' higlighting
-2018-06-02 8d90dc2 *-highlight: Support for `case' highlighting
-2018-06-02 10d291c *-highlight: Softer state manipulation, less rigid =1 etc. assignments
-2018-06-02 6159507 *-highlight: Don't highlight closing ) with style `assign'
-2018-06-02 1fc2450 *-highlight: One complex math command optimization, top of the loop
-2018-06-02 cc49247 *-highlight: Fix improper state after assignment (command | regular)
-2018-06-02 02942b8 Updated README.md
-2018-06-02 5e28259 images: eval_cmp.png
-2018-06-02 df92fed *-highlight: Fix removal of trailing "/' when recursing in eval
-2018-06-02 4f61938 Performance status 46 / 44
-2018-06-02 a5ade0e *-highlight: Recursive highlighting of eval string argument
-2018-06-02 e91847b *-highlight: Don't recurse when not at main *-process call
-2018-06-02 fca8603 *-highlight: Support assignments of arrays when key is taken from array
-2018-06-02 5d70f01 *-highlight: Math highlighting recognizes ${+VAR}
-2018-06-02 c48eb0d *-highlight: Math colorizing recognizes variables in braces ${HISTISZE}
-2018-06-02 53dd85a *-highlight: Allow -- for precommand modifiers command & exec
-2018-06-02 d9fe110 *-highlight: Detect globbing also when `##' occurs
-2018-06-02 55c923d Performance status 132 / 66
-2018-06-02 3bd8f07 themes: safari.ini to have globbing color specifically selected
-2018-06-02 2b55260 themes: free.ini to have globbing color specifically selected
-2018-06-02 494868e themes: clean.ini to have globbing color specifically selected
-2018-06-01 fca6b3d images: herestring.png #9
-2018-06-01 f9842c1 themes: forest.ini to use underline instead of bg color #9
-2018-06-01 c25c539 themes: Small tune-up of forest & zdharma themes for here-string #9
-2018-06-01 988d504 themes: Rudimentary (all same) configuration of here-string tokens #9
-2018-06-01 99842d2 fast-theme,*-highlight: Support for here-string, can use bg color #9
-2018-06-01 f739c30 Updated README.md
-2018-06-01 7fa8451 images: execfd.png execfd_cmp.png
-2018-06-01 d7384f1 themes: All themes gained `exec-descriptor=` key, now supported by code
-2018-06-01 d66d140 themes: Fix improper effect of s/red/.../ substitution in clean,forest
-2018-06-01 f7ee5e2 fast-theme,*-highlight: Support highlighting of {FD} etc. passed to exec
-2018-06-01 e5c5534 *-highlight: Proper states for precmd (command,exec) option handling
-2018-06-01 647b198 images: New cmdsubst.png
-2018-06-01 74bdc4c Updated README.md
-2018-06-01 86eb15e images: theme.png
-2018-06-01 5169e82 Updated README.md
-2018-06-01 1c462b7 Updated README.md
-2018-06-01 4c21da4 images: cmdsubst.png
-2018-06-01 b39996e *-highlight: Switch theme to secondary when descending into $() #15
-2018-06-01 bf96045 themes: Equip all themes with key `secondary' (an alternate theme) #15
-2018-06-01 aa1b112 fast-theme: Generate secondary theme (from key `secondary' in theme) #15
-2018-06-01 6dd3bd3 *-highlight: Support for multiple active themes #15
-2018-06-01 8a32944 *-highlight: Fix "$() found?" comparison
-2018-06-01 3651605 *-highlight: Significant change: the parser is called recursively on $()
-2018-05-31 882d88b test,*-highlight: New -ooo performance test; highlighter takes arguments
-2018-05-31 5ba1178 *-highlight: Optimization - compute __arg length once
-2018-05-30 b2a0126 *-highlight: Allow multiple separate options for `command', `exec' (#10)
-2018-05-30 5804e9a *-highlight: Correct state after option for precommand (#10)
-2018-05-30 1247b64 *-highlight: Simpler and more accurate option-testing for exec, command (#10)
-2018-05-30 d87fed4 *-highlight: Correctly highlight options for `command' and `exec' (#10)
-2018-05-30 8c3e75e *-highlight: Double-hyphen (--) stops option recognition and colorizing
-2018-05-30 1c5a56c *-highlight: Support ${VAR} at command position (not only $VAR)
-2018-05-30 f19d761 Updated README.md
-2018-05-30 4a27351 images: for-loop
-2018-05-30 4d650de themes: zdharma.ini to support for-loop
-2018-05-30 45cafbc themes: safari.ini to support for-loop
-2018-05-30 8bb9ee0 themes: free.ini to support for-loop
-2018-05-30 f25a059 themes: forest.ini to support for-loop
-2018-05-29 093d79e themes: default.ini to support for-loop
-2018-05-29 446cb7b clean.ini,fast-theme: Clean-theme & theme subsystem to support for-loop
-2018-05-29 1bb701f *-highlight: Move $variable highlighting from case to if-block
-2018-05-29 b8413e9 *-highlight: For-loop highlighting, working, needs few upgrades
-2018-05-28 7bec6e5 *-highlight: Three more simple vs. complex math operation optimizations
-2018-05-27 baae683 *-highlight: Optimise complex math command into single one with & and ~
-2018-05-27 2dc3103 *-highlight: Optimise complex math command into single one with & and ~
-2018-05-27 291f905 _fast-theme: Update -t/--test description
-2018-05-27 ec305f6 fast-theme: Help message treats about -t/--test
-2018-05-27 0e1d19a Updated README.md
-2018-05-27 5c3c911 Updated README.md
-2018-05-26 76af248 themes: A fix for zdharma theme, 61 -> 63, a lighter color for builtins
-2018-05-26 8eca0f2 *fast-theme: Ability to test theme after setting it (-t/--test)
-2018-05-26 d3a7922 *-highlight: Fix in_array_assignment setting when closing ) found
-2018-05-26 796c482 *-highlight: Make parameters' names exotic blank-var detection to work
-2018-05-26 ae3913f _fast-theme: Complete theme names
-2018-05-26 d212945 *-highlight,plugin.zsh,default.ini: Uplift of fg=112-fix code
-2018-05-26 ee56f65 *-highlight,plugin.zsh: Final fix for fg=112 assignment – use zstyle
-2018-05-26 391f5a4 fast-theme: Set `theme' zstyle in `:plugin:fast...' to given theme
-2018-05-26 e0dc086 plugin.zsh: Fix the fg=112 assignment done for `variable' style
-2018-05-26 17c9286 Updated README.md
-2018-05-26 4774c1c fast-theme: Add completion for this function
-2018-05-26 d971f39 fast-theme: Detect lack of theme name in arguments
-2018-05-26 74f0d4d fast-theme: Use standard option parsing (zparseopts) and typical options
-2018-05-26 d9c6180 New theme: `forest'
-2018-05-26 419c156 New theme: `zdharma'
-2018-05-26 a7735df gitignore
-2018-05-26 99db69a New theme: `free'
-2018-05-26 73619ff New theme: `clean'
-2018-05-25 52307fb Theme support, 1 extra theme – `safari'
-2018-05-25 41df55b *-highlight: (k) subscript flag is sufficient, no need for (K)
-2018-05-25 cb21c05 Updated README.md
-2018-05-25 a580cff *-highlight: FAST_BLIST_PATTERNS
-```
diff --git a/.config/shell/zsh-fast-syntax-highlighting/README.md b/.config/shell/zsh-fast-syntax-highlighting/README.md
index 6ba4ee0..7f50905 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/README.md
+++ b/.config/shell/zsh-fast-syntax-highlighting/README.md
@@ -1,16 +1,10 @@
-[![paypal](https://img.shields.io/badge/-Donate-yellow.svg?longCache=true&style=for-the-badge)](https://www.paypal.me/ZdharmaInitiative)
-[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=D54B3S7C6HGME)
-[![patreon](https://img.shields.io/badge/-Patreon-orange.svg?longCache=true&style=for-the-badge)](https://www.patreon.com/psprint)
-<br/>New: You can request a feature when donating, even fancy or advanced ones get implemented this way. [There are
-reports](DONATIONS.md) about what is being done with the money received.
-
-# Fast Syntax Highlighting (F-Sy-H)
+# Fast Syntax Highlighting (F-Sy-H) [![Gitter][gitter-image]][gitter-link]
Feature rich syntax highlighting for Zsh.
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px">
<img
- src="https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/highlight-much.png"
+ src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/highlight-much.png"
alt="image could not be loaded"
style="color:red;background-color:black;font-weight:bold"
/>
@@ -22,22 +16,20 @@ Feature rich syntax highlighting for Zsh.
- [Installation](#installation)
- [Features](#features)
- [Performance](#performance)
-- [IRC Channel](#irc-channel)
### Other Contents
-- [License](https://github.com/zdharma/fast-syntax-highlighting/blob/master/LICENSE)
-- [Changelog](https://github.com/zdharma/fast-syntax-highlighting/blob/master/CHANGELOG.md)
-- [Theme Guide](https://github.com/zdharma/fast-syntax-highlighting/blob/master/THEME_GUIDE.md)
-- [Chroma Guide](https://github.com/zdharma/fast-syntax-highlighting/blob/master/CHROMA_GUIDE.adoc)
+
+- [License](https://github.com/zdharma-continuum/fast-syntax-highlighting/blob/master/LICENSE)
+- [Changelog](https://github.com/zdharma-continuum/fast-syntax-highlighting/blob/master/CHANGELOG.md)
+- [Theme Guide](https://github.com/zdharma-continuum/fast-syntax-highlighting/blob/master/THEME_GUIDE.md)
+- [Chroma Guide](https://github.com/zdharma-continuum/fast-syntax-highlighting/blob/master/CHROMA_GUIDE.adoc)
# News
-* 15-06-2019
- - A new architecture for defining the highlighting for **specific commands**: it now
- uses **abstract definitions** instead of **top-down, regular code**. The first effect
- is the highlighting for the `git` command it is now **maximally faithful**, it
- follows the `git` command almost completely.
- [Screencast](https://asciinema.org/a/253411)
+- 15-06-2019
+ - A new architecture for defining the highlighting for **specific commands**: it now uses **abstract definitions**
+ instead of **top-down, regular code**. The first effect is the highlighting for the `git` command it is now
+ **maximally faithful**, it follows the `git` command almost completely. [Screencast](https://asciinema.org/a/253411)
# Installation
@@ -46,20 +38,35 @@ Feature rich syntax highlighting for Zsh.
Clone the Repository.
```zsh
-git clone https://github.com/zdharma/fast-syntax-highlighting ~/path/to/fsh
+git clone https://github.com/zdharma-continuum/fast-syntax-highlighting ~/path/to/fsh
```
And add the following to your `zshrc` file.
+
```zsh
source ~/path/to/fsh/fast-syntax-highlighting.plugin.zsh
```
-### Zplugin
+### Zinit
Add the following to your `zshrc` file.
```zsh
-zplugin light zdharma/fast-syntax-highlighting
+zinit light zdharma-continuum/fast-syntax-highlighting
+```
+
+Here's an example of how to load the plugin together with a few other popular ones with the use of
+[Turbo](https://zdharma-continuum.org/zinit/wiki/INTRODUCTION/#turbo_mode_zsh_62_53), i.e.: speeding up the Zsh startup
+by loading the plugin right after the first prompt, in background:
+
+```zsh
+zinit wait lucid for \
+ atinit"ZINIT[COMPINIT_OPTS]=-C; zicompinit; zicdreplay" \
+ zdharma-continuum/fast-syntax-highlighting \
+ blockf \
+ zsh-users/zsh-completions \
+ atload"!_zsh_autosuggest_start" \
+ zsh-users/zsh-autosuggestions
```
### Antigen
@@ -67,26 +74,33 @@ zplugin light zdharma/fast-syntax-highlighting
Add the following to your `zshrc` file.
```zsh
-antigen bundle zdharma/fast-syntax-highlighting
+antigen bundle zdharma-continuum/fast-syntax-highlighting
```
+### Fig
+
+[Fig](https://fig.io) adds apps, shortcuts, and autocomplete to your existing terminal.
+
+Install `fast-syntax-highlighting` in just one click.
+
+<a href="https://fig.io/plugins/other/fast-syntax-highlighting_zdharma-continuum" target="_blank"><img src="https://fig.io/badges/install-with-fig.svg" /></a>
+
+
### Zgen
-Add the following to your `.zshrc` file in the same place you're doing
-your other `zgen load` calls in.
+Add the following to your `.zshrc` file in the same place you're doing your other `zgen load` calls in.
-```
-zgen load zdharma/fast-syntax-highlighting
+```zsh
+zgen load zdharma-continuum/fast-syntax-highlighting
```
-
### Oh-My-Zsh
Clone the Repository.
-```
-git clone https://github.com/zdharma/fast-syntax-highlighting.git \
- ~ZSH_CUSTOM/plugins/fast-syntax-highlighting
+```zsh
+git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git \
+ ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting
```
And add `fast-syntax-highlighting` to your plugin list.
@@ -99,7 +113,7 @@ Switch themes via `fast-theme {theme-name}`.
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px">
<img
- src="https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/theme.png"
+ src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/theme.png"
alt="image could not be loaded"
style="color:red;background-color:black;font-weight:bold"
/>
@@ -115,7 +129,7 @@ Comparing to the project `zsh-users/zsh-syntax-highlighting` (the upper line):
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px">
<img
- src="https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/parameter.png"
+ src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/parameter.png"
alt="image could not be loaded"
style="color:red;background-color:black;font-weight:bold"
/>
@@ -123,7 +137,7 @@ Comparing to the project `zsh-users/zsh-syntax-highlighting` (the upper line):
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px">
<img
- src="https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/in_string.png"
+ src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/in_string.png"
alt="image could not be loaded"
style="color:red;background-color:black;font-weight:bold"
/>
@@ -133,7 +147,7 @@ Comparing to the project `zsh-users/zsh-syntax-highlighting` (the upper line):
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px">
<img
- src="https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/brackets.gif"
+ src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/brackets.gif"
alt="image could not be loaded"
style="color:red;background-color:black;font-weight:bold"
/>
@@ -145,7 +159,7 @@ Comparing to the project `zsh-users/zsh-syntax-highlighting` (the upper line):
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px">
<img
- src="https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/cplx_cond.png"
+ src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/cplx_cond.png"
alt="image could not be loaded"
style="color:red;background-color:black;font-weight:bold"
/>
@@ -157,18 +171,17 @@ Exact highlighting that recognizes quotings.
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px">
<img
- src="https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/ideal-string.png"
+ src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/ideal-string.png"
alt="image could not be loaded"
style="color:red;background-color:black;font-weight:bold"
/>
</div>
-
### here-strings
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px">
<img
- src="https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/herestring.png"
+ src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/herestring.png"
alt="image could not be loaded"
style="color:red;background-color:black;font-weight:bold"
/>
@@ -180,7 +193,7 @@ Comparing to the project `zsh-users/zsh-syntax-highlighting` (the upper line):
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px">
<img
- src="https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/execfd_cmp.png"
+ src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/execfd_cmp.png"
alt="image could not be loaded"
style="color:red;background-color:black;font-weight:bold"
/>
@@ -190,7 +203,7 @@ Comparing to the project `zsh-users/zsh-syntax-highlighting` (the upper line):
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px">
<img
- src="https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/for-loop-cmp.png"
+ src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/for-loop-cmp.png"
alt="image could not be loaded"
style="color:red;background-color:black;font-weight:bold"
/>
@@ -202,7 +215,7 @@ Comparing to the project `zsh-users/zsh-syntax-highlighting` (the upper 2 lines)
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px">
<img
- src="https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/function.png"
+ src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/function.png"
alt="image could not be loaded"
style="color:red;background-color:black;font-weight:bold"
/>
@@ -214,7 +227,7 @@ Comparing to the project `zsh-users/zsh-syntax-highlighting` (the upper line):
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px">
<img
- src="https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/eval_cmp.png"
+ src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/eval_cmp.png"
alt="image could not be loaded"
style="color:red;background-color:black;font-weight:bold"
/>
@@ -226,21 +239,21 @@ Highlighting that is specific for a given command.
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px">
<img
- src="https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/git_chroma.png"
+ src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/git_chroma.png"
alt="image could not be loaded"
style="color:red;background-color:black;font-weight:bold"
/>
</div>
-The [chromas](https://github.com/zdharma/fast-syntax-highlighting/tree/master/chroma)
-that are enabled by default can be found
-[here](https://github.com/zdharma/fast-syntax-highlighting/blob/master/fast-highlight#L166).
+The [chromas](https://github.com/zdharma-continuum/fast-syntax-highlighting/tree/master/%E2%86%92chroma) that are
+enabled by default can be found
+[here](https://github.com/zdharma-continuum/fast-syntax-highlighting/blob/master/fast-highlight#L166).
### Math-mode highlighting
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px">
<img
- src="https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/math.gif"
+ src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/math.gif"
alt="image could not be loaded"
style="color:red;background-color:black;font-weight:bold"
/>
@@ -250,13 +263,14 @@ that are enabled by default can be found
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px">
<img
- src="https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/zcalc.png"
+ src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/zcalc.png"
alt="image could not be loaded"
style="color:red;background-color:black;font-weight:bold"
/>
</div>
# Performance
+
Performance differences can be observed in this Asciinema recording, where a `10 kB` function is being edited.
<div style="width:100%;background-color:#121314;border:3px solid #121314;border-radius:6px;margin:5px 0;padding:2px 5px">
@@ -265,10 +279,5 @@ Performance differences can be observed in this Asciinema recording, where a `10
</a>
</div>
-## IRC Channel
-
-Channel `#zplugin@freenode` is a support place for all author's projects. Connect to:
-[chat.freenode.net:6697](ircs://chat.freenode.net:6697/%23zplugin) (SSL) or [chat.freenode.net:6667](irc://chat.freenode.net:6667/%23zplugin)
- and join #zplugin.
-
-Following is a quick access via Webchat [![IRC](https://kiwiirc.com/buttons/chat.freenode.net/zplugin.png)](https://kiwiirc.com/client/chat.freenode.net:+6697/#zplugin)
+[gitter-image]: https://badges.gitter.im/zdharma-continuum/community.svg
+[gitter-link]: https://gitter.im/zdharma-continuum/community
diff --git a/.config/shell/zsh-fast-syntax-highlighting/THEME_GUIDE.md b/.config/shell/zsh-fast-syntax-highlighting/THEME_GUIDE.md
index 1d66dac..7f53c53 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/THEME_GUIDE.md
+++ b/.config/shell/zsh-fast-syntax-highlighting/THEME_GUIDE.md
@@ -1,14 +1,13 @@
# Theme Guide for F-Sy-H
-`fast-theme` tool is used to select a theme. There are 6 shipped themes, they can be listed with `fast-theme -l`.
-Themes are basic [INI files](https://github.com/zdharma/fast-syntax-highlighting/tree/master/themes) where each
-key is a *style*.
-Besides shipped themes, user can point this tool to any other theme, by simple `fast-theme ~/mytheme.ini`. To
+`fast-theme` tool is used to select a theme. There are 6 shipped themes, they can be listed with `fast-theme -l`. Themes
+are basic [INI files](https://github.com/zdharma/fast-syntax-highlighting/tree/master/themes) where each key is a
+*style*. Besides shipped themes, user can point this tool to any other theme, by simple `fast-theme ~/mytheme.ini`. To
obtain template to work on when creating own theme, issue `fast-theme --copy-shipped-theme {theme-name}`.
-To alter just a few styles and not create a whole new theme, use **overlay**. What is overlay? It is in the same
-format as full theme, but can have only a few styles defined, and these styles will overwrite styles in main-theme.
-Example overlay file:
+To alter just a few styles and not create a whole new theme, use **overlay**. What is overlay? It is in the same format
+as full theme, but can have only a few styles defined, and these styles will overwrite styles in main-theme. Example
+overlay file:
```ini
; overlay.ini
@@ -32,8 +31,8 @@ HOME: = ~/.fsh/
OPT: = /opt/local/share/fsh/
```
-So for example, issue `fast-theme XDG:overlay` to load `~/.config/fsh/overlay.ini` as overlay. The `.ini`
-extension is optional.
+So for example, issue `fast-theme XDG:overlay` to load `~/.config/fsh/overlay.ini` as overlay. The `.ini` extension is
+optional.
## Secondary Theme
@@ -50,27 +49,25 @@ unknown-token = red,bold
secondary = zdharma
```
-Secondary theme (`zdharma` in the example) will be used for highlighting of argument for `eval`
-and of `$( ... )` interior (i.e. of interior of command substitution). Basically, recursive
-highlighting uses alternate theme to make the highlighted code distinct:
+Secondary theme (`zdharma` in the example) will be used for highlighting of argument for `eval` and of `$( ... )`
+interior (i.e. of interior of command substitution). Basically, recursive highlighting uses alternate theme to make the
+highlighted code distinct:
-![sshot](https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/cmdsubst.png)
+![sshot](https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/cmdsubst.png)
-In the above screen-shot the interior of `$( ... )` uses different colors than the rest of the
-code. Example for `eval`:
+In the above screen-shot the interior of `$( ... )` uses different colors than the rest of the code. Example for `eval`:
-![image](https://raw.githubusercontent.com/zdharma/fast-syntax-highlighting/master/images/eval_cmp.png)
+![image](https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/eval_cmp.png)
-First line doesn't use recursive highlighting, highlights `eval` argument as regular string.
-Second line switches theme to `zdharma` and does full recursive highlighting of eval argument.
+First line doesn't use recursive highlighting, highlights `eval` argument as regular string. Second line switches theme
+to `zdharma` and does full recursive highlighting of eval argument.
## Custom Working Directory
-Set `$FAST_WORK_DIR` before loading the plugin to have e.g. processed theme files (ready to
-load, in Zsh format, not INI) kept under specified location. This is handy if e.g. you install
-Fast-Syntax-Highlighting system-wide (e.g. from AUR on ArchLinux) and want to have per-user
-theme setup.
+Set `$FAST_WORK_DIR` before loading the plugin to have e.g. processed theme files (ready to load, in Zsh format, not
+INI) kept under specified location. This is handy if e.g. you install Fast-Syntax-Highlighting system-wide (e.g. from
+AUR on ArchLinux) and want to have per-user theme setup.
-You can use "~" in the path, e.g. `FAST_WORK_DIR=~/.fsh` and also the `XDG:`, `LOCAL:`, `OPT:`,
-etc. short-hands, so e.g. `FAST_WORK_DIR=XDG` or `FAST_WORK_DIR=XDG:` is allowed (in this case
-it will be changed to `$HOME/.config/fsh` by default by F-Sy-H loader).
+You can use "~" in the path, e.g. `FAST_WORK_DIR=~/.fsh` and also the `XDG:`, `LOCAL:`, `OPT:`, etc. short-hands, so
+e.g. `FAST_WORK_DIR=XDG` or `FAST_WORK_DIR=XDG:` is allowed (in this case it will be changed to `$HOME/.config/fsh` by
+default by F-Sy-H loader).
diff --git a/.config/shell/zsh-fast-syntax-highlighting/_fast-theme b/.config/shell/zsh-fast-syntax-highlighting/_fast-theme
index 4c88062..67f8a4d 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/_fast-theme
+++ b/.config/shell/zsh-fast-syntax-highlighting/_fast-theme
@@ -26,6 +26,12 @@ arguments=(
typeset -a themes
themes=( "$FAST_WORK_DIR"/themes/*.ini(:t:r) )
+if [[ -d ${XDG_CONFIG_HOME:-$HOME/.config}/fsh ]] {
+ typeset -a themes2
+ themes2=( "${XDG_CONFIG_HOME:-$HOME/.config}"/fsh/*.ini(:t:r) )
+ themes+=( XDG:${^themes2[@]} )
+}
+
_wanted themes expl "Themes" \
compadd "$@" -a - themes && ret=0
_arguments -s $arguments && ret=0
diff --git a/.config/shell/zsh-fast-syntax-highlighting/fast-highlight b/.config/shell/zsh-fast-syntax-highlighting/fast-highlight
index c410c23..d82df20 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/fast-highlight
+++ b/.config/shell/zsh-fast-syntax-highlighting/fast-highlight
@@ -33,7 +33,10 @@ typeset -g FAST_WORK_DIR
: ${FAST_WORK_DIR:=$FAST_BASE_DIR}
FAST_WORK_DIR=${~FAST_WORK_DIR}
() {
- setopt localoptions extendedglob
+ # We must not use emulate -o if we want to keep compatibility with Zsh < v.5.0
+ # See https://github.com/zdharma-continuum/fast-syntax-highlighting/pull/7
+ emulate -L zsh
+ setopt extendedglob
local -A map
map=( "XDG:" "${XDG_CONFIG_HOME:-$HOME/.config}/fsh/"
"LOCAL:" "/usr/local/share/fsh/"
@@ -107,7 +110,7 @@ zstyle :plugin:fast-syntax-highlighting theme default
: ${FAST_HIGHLIGHT_STYLES[incorrect-subtle]:=fg=red}
: ${FAST_HIGHLIGHT_STYLES[subtle-separator]:=fg=green}
: ${FAST_HIGHLIGHT_STYLES[subtle-bg]:=bg=18}
-: ${FAST_HIGHLIGHT_STYLES[secondary]:=}
+: ${FAST_HIGHLIGHT_STYLES[secondary]:=free}
fi
# This can overwrite some of *_STYLES fields
@@ -165,107 +168,115 @@ typeset -gA FAST_HIGHLIGHT
: ${FAST_HIGHLIGHT[use_brackets]:=1}
FAST_HIGHLIGHT+=(
- chroma-fast-theme :chroma/-fast-theme.ch
- chroma-alias :chroma/-alias.ch
- chroma-autoload :chroma/-autoload.ch
- chroma-autorandr :chroma/-autorandr.ch
- chroma-docker :chroma/-docker.ch
- chroma-example :chroma/-example.ch
- chroma-ionice :chroma/-ionice.ch
- chroma-make :chroma/-make.ch
- chroma-nice :chroma/-nice.ch
- chroma-nmcli :chroma/-nmcli.ch
- chroma-node :chroma/-node.ch
- chroma-perl :chroma/-perl.ch
- chroma-printf :chroma/-printf.ch
- chroma-ruby :chroma/-ruby.ch
- chroma-scp :chroma/-scp.ch
- chroma-ssh :chroma/-ssh.ch
-
- chroma-git :chroma/main-chroma.ch%git
- chroma-hub :chroma/-hub.ch
- chroma-lab :chroma/-lab.ch
- chroma-svn :chroma/-subversion.ch
- chroma-svnadmin :chroma/-subversion.ch
- chroma-svndumpfilter :chroma/-subversion.ch
-
- chroma-egrep :chroma/-grep.ch
- chroma-fgrep :chroma/-grep.ch
- chroma-grep :chroma/-grep.ch
-
- chroma-awk :chroma/-awk.ch
- chroma-gawk :chroma/-awk.ch
- chroma-mawk :chroma/-awk.ch
-
- chroma-source :chroma/-source.ch
- chroma-. :chroma/-source.ch
-
- chroma-bash :chroma/-sh.ch
- chroma-fish :chroma/-sh.ch
- chroma-sh :chroma/-sh.ch
- chroma-zsh :chroma/-sh.ch
-
- chroma-whatis :chroma/-whatis.ch
- chroma-man :chroma/-whatis.ch
-
- chroma-- :chroma/-precommand.ch
- chroma-xargs :chroma/-precommand.ch
- chroma-nohup :chroma/-precommand.ch
-
- chroma-hg :chroma/-subcommand.ch
- chroma-cvs :chroma/-subcommand.ch
- chroma-pip :chroma/-subcommand.ch
- chroma-pip2 :chroma/-subcommand.ch
- chroma-pip3 :chroma/-subcommand.ch
- chroma-gem :chroma/-subcommand.ch
- chroma-bundle :chroma/-subcommand.ch
- chroma-yard :chroma/-subcommand.ch
- chroma-cabal :chroma/-subcommand.ch
- chroma-npm :chroma/-subcommand.ch
- chroma-nvm :chroma/-subcommand.ch
- chroma-yarn :chroma/-subcommand.ch
- chroma-brew :chroma/-subcommand.ch
- chroma-port :chroma/-subcommand.ch
- chroma-yum :chroma/-subcommand.ch
- chroma-dnf :chroma/-subcommand.ch
- chroma-tmux :chroma/-subcommand.ch
- chroma-pass :chroma/-subcommand.ch
- chroma-aws :chroma/-subcommand.ch
- chroma-apt :chroma/-subcommand.ch
- chroma-apt-get :chroma/-subcommand.ch
- chroma-apt-cache :chroma/-subcommand.ch
- chroma-aptitude :chroma/-subcommand.ch
- chroma-keyctl :chroma/-subcommand.ch
- chroma-systemctl :chroma/-subcommand.ch
- chroma-asciinema :chroma/-subcommand.ch
- chroma-ipfs :chroma/-subcommand.ch
- chroma-zplugin :chroma/main-chroma.ch%zplugin
- chroma-aspell :chroma/-subcommand.ch
- chroma-bspc :chroma/-subcommand.ch
- chroma-cryptsetup :chroma/-subcommand.ch
- chroma-diskutil :chroma/-subcommand.ch
- chroma-exercism :chroma/-subcommand.ch
- chroma-gulp :chroma/-subcommand.ch
- chroma-i3-msg :chroma/-subcommand.ch
- chroma-openssl :chroma/-subcommand.ch
- chroma-solargraph :chroma/-subcommand.ch
- chroma-subliminal :chroma/-subcommand.ch
- chroma-svnadmin :chroma/-subcommand.ch
- chroma-travis :chroma/-subcommand.ch
- chroma-udisksctl :chroma/-subcommand.ch
- chroma-xdotool :chroma/-subcommand.ch
- chroma-zmanage :chroma/-subcommand.ch
- chroma-zsystem :chroma/-subcommand.ch
- chroma-zypper :chroma/-subcommand.ch
-
- chroma-fpath+=\( :chroma/-fpath_peq.ch
- chroma-fpath=\( :chroma/-fpath_peq.ch
- chroma-FPATH+= :chroma/-fpath_peq.ch
- chroma-FPATH= :chroma/-fpath_peq.ch
- #chroma-which :chroma/-which.ch
- #chroma-vim :chroma/-vim.ch
+ chroma-fast-theme →chroma/-fast-theme.ch
+ chroma-alias →chroma/-alias.ch
+ chroma-autoload →chroma/-autoload.ch
+ chroma-autorandr →chroma/-autorandr.ch
+ chroma-docker →chroma/-docker.ch
+ chroma-example →chroma/-example.ch
+ chroma-ionice →chroma/-ionice.ch
+ chroma-make →chroma/-make.ch
+ chroma-nice →chroma/-nice.ch
+ chroma-nmcli →chroma/-nmcli.ch
+ chroma-node →chroma/-node.ch
+ chroma-perl →chroma/-perl.ch
+ chroma-podman →chroma/-podman.ch
+ chroma-printf →chroma/-printf.ch
+ chroma-ruby →chroma/-ruby.ch
+ chroma-scp →chroma/-scp.ch
+ chroma-ssh →chroma/-ssh.ch
+
+ chroma-git →chroma/main-chroma.ch%git
+ chroma-hub →chroma/-hub.ch
+ chroma-lab →chroma/-lab.ch
+ chroma-svn →chroma/-subversion.ch
+ chroma-svnadmin →chroma/-subversion.ch
+ chroma-svndumpfilter →chroma/-subversion.ch
+
+ chroma-egrep →chroma/-grep.ch
+ chroma-fgrep →chroma/-grep.ch
+ chroma-grep →chroma/-grep.ch
+
+ chroma-awk →chroma/-awk.ch
+ chroma-gawk →chroma/-awk.ch
+ chroma-goawk →chroma/-awk.ch
+ chroma-mawk →chroma/-awk.ch
+
+ chroma-source →chroma/-source.ch
+ chroma-. →chroma/-source.ch
+
+ chroma-bash →chroma/-sh.ch
+ chroma-fish →chroma/-sh.ch
+ chroma-sh →chroma/-sh.ch
+ chroma-zsh →chroma/-sh.ch
+
+ chroma-whatis →chroma/-whatis.ch
+ chroma-man →chroma/-whatis.ch
+
+ chroma-- →chroma/-precommand.ch
+ chroma-xargs →chroma/-precommand.ch
+ chroma-nohup →chroma/-precommand.ch
+ chroma-strace →chroma/-precommand.ch
+ chroma-ltrace →chroma/-precommand.ch
+
+ chroma-hg →chroma/-subcommand.ch
+ chroma-cvs →chroma/-subcommand.ch
+ chroma-pip →chroma/-subcommand.ch
+ chroma-pip2 →chroma/-subcommand.ch
+ chroma-pip3 →chroma/-subcommand.ch
+ chroma-gem →chroma/-subcommand.ch
+ chroma-bundle →chroma/-subcommand.ch
+ chroma-yard →chroma/-subcommand.ch
+ chroma-cabal →chroma/-subcommand.ch
+ chroma-npm →chroma/-subcommand.ch
+ chroma-nvm →chroma/-subcommand.ch
+ chroma-yarn →chroma/-subcommand.ch
+ chroma-brew →chroma/-subcommand.ch
+ chroma-port →chroma/-subcommand.ch
+ chroma-yum →chroma/-subcommand.ch
+ chroma-dnf →chroma/-subcommand.ch
+ chroma-tmux →chroma/-subcommand.ch
+ chroma-pass →chroma/-subcommand.ch
+ chroma-aws →chroma/-subcommand.ch
+ chroma-apt →chroma/-subcommand.ch
+ chroma-apt-get →chroma/-subcommand.ch
+ chroma-apt-cache →chroma/-subcommand.ch
+ chroma-aptitude →chroma/-subcommand.ch
+ chroma-keyctl →chroma/-subcommand.ch
+ chroma-systemctl →chroma/-subcommand.ch
+ chroma-asciinema →chroma/-subcommand.ch
+ chroma-ipfs →chroma/-subcommand.ch
+ chroma-zinit →chroma/main-chroma.ch%zinit
+ chroma-aspell →chroma/-subcommand.ch
+ chroma-bspc →chroma/-subcommand.ch
+ chroma-cryptsetup →chroma/-subcommand.ch
+ chroma-diskutil →chroma/-subcommand.ch
+ chroma-exercism →chroma/-subcommand.ch
+ chroma-gulp →chroma/-subcommand.ch
+ chroma-i3-msg →chroma/-subcommand.ch
+ chroma-openssl →chroma/-subcommand.ch
+ chroma-solargraph →chroma/-subcommand.ch
+ chroma-subliminal →chroma/-subcommand.ch
+ chroma-svnadmin →chroma/-subcommand.ch
+ chroma-travis →chroma/-subcommand.ch
+ chroma-udisksctl →chroma/-subcommand.ch
+ chroma-xdotool →chroma/-subcommand.ch
+ chroma-zmanage →chroma/-subcommand.ch
+ chroma-zsystem →chroma/-subcommand.ch
+ chroma-zypper →chroma/-subcommand.ch
+
+ chroma-fpath+=\( →chroma/-fpath_peq.ch
+ chroma-fpath=\( →chroma/-fpath_peq.ch
+ chroma-FPATH+= →chroma/-fpath_peq.ch
+ chroma-FPATH= →chroma/-fpath_peq.ch
+ #chroma-which →chroma/-which.ch
+ #chroma-vim →chroma/-vim.ch
)
+if [[ $OSTYPE == darwin* ]] {
+ noglob unset FAST_HIGHLIGHT[chroma-man] FAST_HIGHLIGHT[chroma-whatis]
+}
+
# Assignments seen, to know if math parameter exists
typeset -gA FAST_ASSIGNS_SEEN
@@ -288,7 +299,7 @@ typeset -ga ZLAST_COMMANDS
if zmodload -e zsh/parameter; then
if (( $+aliases[(e)$1] )); then
REPLY=alias
- elif (( ${+galiases[(e)$1]} )); then
+ elif (( ${+galiases[(e)${(Q)1}]} )); then
REPLY="global alias"
elif (( $+functions[(e)$1] )); then
REPLY=function
@@ -360,7 +371,7 @@ typeset -ga ZLAST_COMMANDS
-fast-highlight-process()
{
emulate -L zsh
- setopt extendedglob bareglobqual nonomatch noksharrays typesetsilent
+ setopt extendedglob bareglobqual nonomatch typesetsilent
[[ $CONTEXT == "select" ]] && return 0
@@ -434,9 +445,9 @@ typeset -ga ZLAST_COMMANDS
FAST_HIGHLIGHT[chroma-autoload-elements]=""
# Restart FPATH elements gathering
FAST_HIGHLIGHT[chroma-fpath_peq-elements]=""
- # Restart svn zplugin's ICE gathering
- FAST_HIGHLIGHT[chroma-zplugin-ice-elements-svn]=0
- FAST_HIGHLIGHT[chroma-zplugin-ice-elements-id-as]=""
+ # Restart svn zinit's ICE gathering
+ FAST_HIGHLIGHT[chroma-zinit-ice-elements-svn]=0
+ FAST_HIGHLIGHT[chroma-zinit-ice-elements-id-as]=""
[[ -n $ZCALC_ACTIVE ]] && {
_start_pos=0; _end_pos=__len; __arg=$__buf
@@ -629,11 +640,13 @@ typeset -ga ZLAST_COMMANDS
[[ $__arg = "[[" ]] && __style=${FAST_THEME_NAME}double-sq-bracket || __style=${FAST_THEME_NAME}reserved-word
if [[ $__arg == $'\x7b' ]]; then # Y - '{'
braces_stack='Y'$braces_stack
+
elif [[ $__arg == $'\x7d' && $braces_stack = Y* ]]; then # Y - '}'
# We're at command word, so no need to check right_brace_is_recognised_everywhere
braces_stack=${braces_stack#Y}
__style=${FAST_THEME_NAME}reserved-word
(( next_word = next_word | 16 ))
+
elif [[ $__arg == "[[" ]]; then # A - [[
braces_stack='A'$braces_stack
@@ -641,14 +654,17 @@ typeset -ga ZLAST_COMMANDS
_FAST_COMPLEX_BRACKETS+=( $(( _start_pos-__PBUFLEN )) $(( _start_pos-__PBUFLEN + 1 )) )
elif [[ $__arg == "for" ]]; then
(( next_word = next_word | 32 )) # BIT_for
+
elif [[ $__arg == "case" ]]; then
(( next_word = BIT_case_preamble ))
+
elif [[ $__arg = (typeset|declare|local|float|integer|export|readonly) ]]; then
braces_stack='T'$braces_stack
fi
;;
'suffix alias') __style=${FAST_THEME_NAME}suffix-alias;;
'global alias') __style=${FAST_THEME_NAME}global-alias;;
+
alias)
if [[ $__arg = ?*'='* ]]; then
# The so called (by old code) "insane_alias"
@@ -659,6 +675,7 @@ typeset -ga ZLAST_COMMANDS
[[ ${__FAST_HIGHLIGHT_TOKEN_TYPES[$alias_target]} = "1" && $__arg_type != "1" ]] && __FAST_HIGHLIGHT_TOKEN_TYPES[$__arg]="1"
fi
;;
+
builtin) [[ $__arg = "[" ]] && {
__style=${FAST_THEME_NAME}single-sq-bracket
_FAST_COMPLEX_BRACKETS+=( $(( _start_pos-__PBUFLEN )) )
@@ -667,12 +684,17 @@ typeset -ga ZLAST_COMMANDS
[[ $__arg = (typeset|declare|local|float|integer|export|readonly) ]] && braces_stack='T'$braces_stack
[[ $__arg = eval ]] && (( next_word = next_word | 256 ))
;;
+
function) __style=${FAST_THEME_NAME}function;;
+
command) __style=${FAST_THEME_NAME}command;;
+
hashed) __style=${FAST_THEME_NAME}hashed-command;;
+
dirpath) __style=${FAST_THEME_NAME}path-to-dir;;
+
none) # Assign?
- if [[ $__arg == [a-zA-Z_][a-zA-Z0-9_]#(|\[[^\]]#\])(|[^\]]#\])(|[+])=* || $__arg == [0-9]##(|[+])=* || ( $braces_stack = T* && ${__arg_type} != 3 ) ]]; then
+ if [[ $__arg == [a-zA-Z_][a-zA-Z0-9_]#(|\[[^\]]#\])(|[^\]]#\])(|[+])=* || $__arg == [0-9]##(|[+])=* || ( $braces_stack = T* && ${__arg_type} != 3 ) ]] {
__style=${FAST_THEME_NAME}assign
FAST_ASSIGNS_SEEN[${__arg%%=*}]=1
@@ -716,15 +738,19 @@ typeset -ga ZLAST_COMMANDS
} || -fast-highlight-string;
(( _start_pos = _start_pos - itmp + 1, 1 > 0 ))
}
- elif [[ $__arg = ${histchars[1]}* && -n ${__arg[2]} ]]; then
+
+ } elif [[ $__arg = ${histchars[1]}* && -n ${__arg[2]} ]] {
__style=${FAST_THEME_NAME}history-expansion
- elif [[ $__arg == ${histchars[2]}* ]]; then
+
+ } elif [[ $__arg == ${histchars[2]}* ]] {
__style=${FAST_THEME_NAME}history-expansion
- elif (( __arg_type == 3 )); then
+
+ } elif (( __arg_type == 3 )) {
# This highlights empty commands (semicolon follows nothing) as an error.
# Zsh accepts them, though.
(( this_word & 3 )) && __style=${FAST_THEME_NAME}commandseparator
- elif [[ $__arg[1,2] == '((' ]]; then
+
+ } elif [[ $__arg[1,2] == '((' ]] {
# Arithmetic evaluation.
#
# Note: prior to zsh-5.1.1-52-g4bed2cf (workers/36669), the ${(z)...}
@@ -752,25 +778,30 @@ typeset -ga ZLAST_COMMANDS
# Counting complex brackets (for brackets-highlighter): 7. )) for as-command ((
_FAST_COMPLEX_BRACKETS+=( $__start $(( __start + 1 )) )
}
- elif [[ $__arg == '()' ]]; then
+
+ } elif [[ $__arg == '()' ]] {
_FAST_COMPLEX_BRACKETS+=( $(( _start_pos-__PBUFLEN )) $(( _start_pos-__PBUFLEN + 1 )) )
# anonymous function
__style=${FAST_THEME_NAME}reserved-word
- elif [[ $__arg == $'\x28' ]]; then
+ } elif [[ $__arg == $'\x28' ]] {
# subshell '(', stack: letter 'R'
__style=${FAST_THEME_NAME}reserved-word
braces_stack='R'$braces_stack
- elif [[ $__arg == $'\x29' ]]; then
+
+ } elif [[ $__arg == $'\x29' ]] {
# ')', stack: letter 'R' for subshell
[[ $braces_stack = R* ]] && { braces_stack=${braces_stack#R}; __style=${FAST_THEME_NAME}reserved-word; }
- elif (( this_word & 14 )); then
+
+ } elif (( this_word & 14 )) {
__style=${FAST_THEME_NAME}default
- elif [[ $__arg = (';;'|';&'|';|') ]] && (( this_word & BIT_case_code )); then
+
+ } elif [[ $__arg = (';;'|';&'|';|') ]] && (( this_word & BIT_case_code )) {
(( next_word = (next_word | BIT_case_item) & ~(BIT_case_code+3) ))
__style=${FAST_THEME_NAME}default
- elif [[ $__arg = \$\([^\(]* ]]; then
+
+ } elif [[ $__arg = \$\([^\(]* ]] {
already_added=1
- fi
+ }
;;
*)
# ADD
@@ -1035,7 +1066,7 @@ typeset -ga ZLAST_COMMANDS
__style=${FAST_THEME_NAME}commandseparator
elif (( in_redirection == 2 )); then
__style=${FAST_THEME_NAME}redirection
- elif (( ${+galiases[(e)$__arg]} )); then
+ elif (( ${+galiases[(e)${(Q)__arg}]} )); then
__style=${FAST_THEME_NAME}global-alias
else
if [[ ${FAST_HIGHLIGHT[no_check_paths]} != 1 ]]; then
@@ -1119,6 +1150,18 @@ typeset -ga ZLAST_COMMANDS
fi
fi
fi
+ if [[ $__arg = (#b)*'#'(([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])|([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F]))(|[^[:alnum:]]*) || $__arg = (#b)*'rgb('(([0-9a-fA-F][0-9a-fA-F](#c0,1)),([0-9a-fA-F][0-9a-fA-F](#c0,1)),([0-9a-fA-F][0-9a-fA-F](#c0,1)))* ]]; then
+ if [[ -n $match[2] ]]; then
+ if [[ $match[2] = ?? || $match[3] = ?? || $match[4] = ?? ]]; then
+ (( __start=_start_pos-__PBUFLEN, __end=_end_pos-__PBUFLEN, __start >= 0 )) && reply+=("$__start $__end bg=#${(l:2::0:)match[2]}${(l:2::0:)match[3]}${(l:2::0:)match[4]}")
+ else
+ (( __start=_start_pos-__PBUFLEN, __end=_end_pos-__PBUFLEN, __start >= 0 )) && reply+=("$__start $__end bg=#$match[2]$match[3]$match[4]")
+ fi
+ else
+ (( __start=_start_pos-__PBUFLEN, __end=_end_pos-__PBUFLEN, __start >= 0 )) && reply+=("$__start $__end bg=#$match[5]$match[6]$match[7]")
+ fi
+ already_added=1
+ fi
# ADD
(( already_added == 0 )) && [[ ${FAST_HIGHLIGHT_STYLES[$__style]} != "none" ]] && (( __start=_start_pos-__PBUFLEN, __end=_end_pos-__PBUFLEN, __start >= 0 )) && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[$__style]}")
@@ -1373,10 +1416,12 @@ zle -N -- fast-highlight-check-path-handler -fast-highlight-check-path-handler
local i j k __style
local AA
integer c
+
# Starting dollar-quote is at 1:2, so __start parsing at offset 3 in the string.
for (( i = 3 ; i < _end_pos - _start_pos ; i += 1 )) ; do
(( j = i + _start_pos - 1 ))
(( k = j + 1 ))
+
case ${__arg[$i]} in
"\\") __style=${FAST_THEME_NAME}back-dollar-quoted-argument
for (( c = i + 1 ; c <= _end_pos - _start_pos ; c += 1 )); do
@@ -1384,13 +1429,13 @@ zle -N -- fast-highlight-check-path-handler -fast-highlight-check-path-handler
done
AA=$__arg[$i+1,$c-1]
# Matching for HEX and OCT values like \0xA6, \xA6 or \012
- if [[ "$AA" =~ "^(x|X)[0-9a-fA-F]{1,2}"
- || "$AA" =~ "^[0-7]{1,3}"
- || "$AA" =~ "^u[0-9a-fA-F]{1,4}"
- || "$AA" =~ "^U[0-9a-fA-F]{1,8}"
+ if [[ "$AA" == (#m)(#s)(x|X)[0-9a-fA-F](#c1,2)
+ || "$AA" == (#m)(#s)[0-7](#c1,3)
+ || "$AA" == (#m)(#s)u[0-9a-fA-F](#c1,4)
+ || "$AA" == (#m)(#s)U[0-9a-fA-F](#c1,8)
]]; then
- (( k += $#MATCH ))
- (( i += $#MATCH ))
+ (( k += MEND ))
+ (( i += MEND ))
else
if (( __asize > i+1 )) && [[ $__arg[i+1] == [xXuU] ]]; then
# \x not followed by hex digits is probably an error
diff --git a/.config/shell/zsh-fast-syntax-highlighting/fast-string-highlight b/.config/shell/zsh-fast-syntax-highlighting/fast-string-highlight
index dd8eb4f..cc8d860 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/fast-string-highlight
+++ b/.config/shell/zsh-fast-syntax-highlighting/fast-string-highlight
@@ -15,18 +15,18 @@ function -fast-highlight-string-process {
pair_map=( "(" ")" "{" "}" "[" "]" )
- while [[ $_mybuf = (#b)[^"{}()[]\\\"'"]#((["({[]})\"'"])|[\\](*))(*) ]]; do
- [[ -n ${match[3]} ]] && {
- __idx+=${mbegin[1]}
+ while [[ $_mybuf = (#b)([^"{}()[]\\\"'"]#)((["({[]})\"'"])|[\\](*))(*) ]]; do
+ if [[ -n ${match[4]} ]] {
+ __idx+=${mbegin[2]}
- [[ $__quoting = \' ]] && _mybuf=${match[3]} || { _mybuf=${match[3]:1}; (( ++ __idx )); }
- } || {
- __idx+=${mbegin[1]}
+ [[ $__quoting = \' ]] && _mybuf=${match[4]} || { _mybuf=${match[4]:1}; (( ++ __idx )); }
+ } else {
+ __idx+=${mbegin[2]}
[[ -z $__quoting && -z ${_FAST_COMPLEX_BRACKETS[(r)$((__idx-${#PREBUFFER}-1))]} ]] && {
- if [[ ${match[1]} = ["({["] ]]; then
+ if [[ ${match[2]} = ["({["] ]]; then
pos_to_level[$__idx]=$(( ++__level ))
level_to_pos[$__level]=$__idx
- elif [[ ${match[1]} = ["]})"] ]]; then
+ elif [[ ${match[2]} = ["]})"] ]]; then
if (( __level > 0 )); then
__pair_idx=${level_to_pos[$__level]}
pos_to_level[$__idx]=$(( __level -- ))
@@ -40,10 +40,21 @@ function -fast-highlight-string-process {
fi
}
- [[ ${match[1]} = \" && $__quoting != \' ]] && { [[ $__quoting = '"' ]] && __quoting="" || __quoting='"'; }
- [[ ${match[1]} = \' && $__quoting != \" ]] && { [[ $__quoting = "'" ]] && __quoting="" || __quoting="'"; }
-
- _mybuf=${match[4]}
+ if [[ ${match[2]} = \" && $__quoting != \' ]] {
+ [[ $__quoting = '"' ]] && __quoting="" || __quoting='"';
+ }
+ if [[ ${match[2]} = \' && $__quoting != \" ]] {
+ if [[ $__quoting = ("'"|"$'") ]] {
+ __quoting=""
+ } else {
+ if [[ $match[1] = *\$ ]] {
+ __quoting="\$'";
+ } else {
+ __quoting="'";
+ }
+ }
+ }
+ _mybuf=${match[5]}
}
done
diff --git a/.config/shell/zsh-fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh b/.config/shell/zsh-fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh
index c5357e1..40b30b5 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh
+++ b/.config/shell/zsh-fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh
@@ -33,25 +33,30 @@
# regardless of functionargzero and posixargzero,
# and with an option for a plugin manager to alter
# the plugin directory (i.e. set ZERO parameter)
-# http://zdharma.org/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html
+# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html
0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}"
0="${${(M)0:#/*}:-$PWD/$0}"
+typeset -g FAST_HIGHLIGHT_VERSION=1.55
typeset -g FAST_BASE_DIR="${0:h}"
typeset -ga _FAST_MAIN_CACHE
# Holds list of indices pointing at brackets that
# are complex, i.e. e.g. part of "[[" in [[ ... ]]
typeset -ga _FAST_COMPLEX_BRACKETS
-typeset -g FAST_WORK_DIR
-: ${FAST_WORK_DIR:=$FAST_BASE_DIR}
+typeset -g FAST_WORK_DIR=${FAST_WORK_DIR:-${XDG_CACHE_HOME:-~/.cache}/fast-syntax-highlighting}
+: ${FAST_WORK_DIR:=${FAST_BASE_DIR-}}
+# Expand any tilde in the (supposed) path.
FAST_WORK_DIR=${~FAST_WORK_DIR}
-if [[ -z "$ZPLG_CUR_PLUGIN" && "${fpath[(r)$FAST_BASE_DIR]}" != $FAST_BASE_DIR ]]; then
- fpath+=( "$FAST_BASE_DIR" )
+# Last (currently, possibly) loaded plugin isn't "fast-syntax-highlighting"?
+# And FPATH isn't containing plugin dir?
+if [[ ${zsh_loaded_plugins[-1]-} != */fast-syntax-highlighting && -z ${fpath[(r)${0:h}]-} ]]
+then
+ fpath+=( "${0:h}" )
fi
-if [[ "$FAST_WORK_DIR" = /usr/* || ( "$FAST_WORK_DIR" = /opt/* && ! -w "$FAST_WORK_DIR" ) ]]; then
+if [[ ! -w $FAST_WORK_DIR ]]; then
FAST_WORK_DIR="${XDG_CACHE_HOME:-$HOME/.cache}/fsh"
command mkdir -p "$FAST_WORK_DIR"
fi
@@ -70,7 +75,9 @@ _zsh_highlight()
return $ret
fi
- setopt localoptions warncreateglobal noksharrays noshwordsplit extendedglob typesetsilent nokshglob
+ emulate -LR zsh
+ setopt extendedglob warncreateglobal typesetsilent noshortloops
+
local REPLY # don't leak $REPLY into global scope
local -a reply
@@ -232,7 +239,7 @@ _zsh_highlight_bind_widgets()
# Override ZLE widgets to make them invoke _zsh_highlight.
local -U widgets_to_bind
- widgets_to_bind=(${${(k)widgets}:#(.*|run-help|which-command|beep|set-local-history|yank)})
+ widgets_to_bind=(${${(k)widgets}:#(.*|run-help|which-command|beep|set-local-history|yank|zle-line-pre-redraw|zle-keymap-select)})
# Always wrap special zle-line-finish widget. This is needed to decide if the
# current line ends and special highlighting logic needs to be applied.
@@ -245,7 +252,7 @@ _zsh_highlight_bind_widgets()
local cur_widget
for cur_widget in $widgets_to_bind; do
- case $widgets[$cur_widget] in
+ case ${widgets[$cur_widget]-} in
# Already rebound event: do nothing.
user:_zsh_highlight_widget_*);;
@@ -272,7 +279,7 @@ _zsh_highlight_bind_widgets()
# Incomplete or nonexistent widget: Bind to z-sy-h directly.
*)
- if [[ $cur_widget == zle-* ]] && [[ -z $widgets[$cur_widget] ]]; then
+ if [[ $cur_widget == zle-* ]] && [[ -z ${widgets[$cur_widget]-} ]]; then
_zsh_highlight_widget_${cur_widget}() { :; _zsh_highlight }
zle -N -- $cur_widget _zsh_highlight_widget_$cur_widget
else
@@ -311,23 +318,23 @@ add-zsh-hook preexec _zsh_highlight_preexec_hook 2>/dev/null || {
print -r -- "$@" >>! /tmp/reply
}
-ZSH_HIGHLIGHT_MAXLENGTH=10000
+typeset -g ZSH_HIGHLIGHT_MAXLENGTH=10000
# Load zsh/parameter module if available
zmodload zsh/parameter 2>/dev/null
zmodload zsh/system 2>/dev/null
-autoload -Uz -- is-at-least fast-theme fast-read-ini-file -fast-run-git-command -fast-make-targets \
- -fast-run-command -fast-zts-read-all
-autoload -Uz -- :chroma/-git.ch :chroma/-hub.ch :chroma/-lab.ch :chroma/-example.ch \
- :chroma/-grep.ch :chroma/-perl.ch :chroma/-make.ch :chroma/-awk.ch \
- :chroma/-vim.ch :chroma/-source.ch :chroma/-sh.ch :chroma/-docker.ch \
- :chroma/-autoload.ch :chroma/-ssh.ch :chroma/-scp.ch :chroma/-which.ch \
- :chroma/-printf.ch :chroma/-ruby.ch :chroma/-whatis.ch :chroma/-alias.ch \
- :chroma/-subcommand.ch :chroma/-autorandr.ch :chroma/-nmcli.ch \
- :chroma/-fast-theme.ch :chroma/-node.ch :chroma/-fpath_peq.ch \
- :chroma/-precommand.ch :chroma/-subversion.ch :chroma/-ionice.ch \
- :chroma/-nice.ch :chroma/main-chroma.ch :chroma/-ogit.ch :chroma/-zplugin.ch
+autoload -Uz -- is-at-least fast-theme .fast-read-ini-file .fast-run-git-command \
+ .fast-make-targets .fast-run-command .fast-zts-read-all
+autoload -Uz -- →chroma/-git.ch →chroma/-hub.ch →chroma/-lab.ch →chroma/-example.ch \
+ →chroma/-grep.ch →chroma/-perl.ch →chroma/-make.ch →chroma/-awk.ch \
+ →chroma/-vim.ch →chroma/-source.ch →chroma/-sh.ch →chroma/-docker.ch →chroma/-podman.ch \
+ →chroma/-autoload.ch →chroma/-ssh.ch →chroma/-scp.ch →chroma/-which.ch \
+ →chroma/-printf.ch →chroma/-ruby.ch →chroma/-whatis.ch →chroma/-alias.ch \
+ →chroma/-subcommand.ch →chroma/-autorandr.ch →chroma/-nmcli.ch \
+ →chroma/-fast-theme.ch →chroma/-node.ch →chroma/-fpath_peq.ch \
+ →chroma/-precommand.ch →chroma/-subversion.ch →chroma/-ionice.ch \
+ →chroma/-nice.ch →chroma/main-chroma.ch →chroma/-ogit.ch →chroma/-zinit.ch
source "${0:h}/fast-highlight"
source "${0:h}/fast-string-highlight"
@@ -355,3 +362,23 @@ unset __fsyh_theme
alias fsh-alias=fast-theme
-fast-highlight-fill-option-variables
+
+if [[ ! -e $FAST_WORK_DIR/secondary_theme.zsh ]] {
+ if { type curl &>/dev/null } {
+ curl -fsSL -o "$FAST_WORK_DIR/secondary_theme.zsh" \
+ https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/share/free_theme.zsh \
+ &>/dev/null
+ } elif { type wget &>/dev/null } {
+ wget -O "$FAST_WORK_DIR/secondary_theme.zsh" \
+ https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/share/free_theme.zsh \
+ &>/dev/null
+ }
+ touch "$FAST_WORK_DIR/secondary_theme.zsh"
+}
+
+if [[ $(uname -a) = (#i)*darwin* ]] {
+ typeset -gA FAST_HIGHLIGHT
+ FAST_HIGHLIGHT[chroma-man]=
+}
+
+[[ ${COLORTERM-} == (24bit|truecolor) || ${terminfo[colors]} -eq 16777216 ]] || zmodload zsh/nearcolor &>/dev/null || true
diff --git a/.config/shell/zsh-fast-syntax-highlighting/fast-theme b/.config/shell/zsh-fast-syntax-highlighting/fast-theme
index 0bc1188..06ad005 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/fast-theme
+++ b/.config/shell/zsh-fast-syntax-highlighting/fast-theme
@@ -234,13 +234,13 @@ if [[ "$1" = */* || "$1" = (XDG|LOCAL|HOME|OPT):* ]]; then
[[ ! -r "$1" ]] && { print -u2 "Theme \`$1' unreadable, aborting"; return 1; }
THEME_NAME="${1:t:r}"
- fast-read-ini-file "$1" out ""
+ .fast-read-ini-file "$1" out ""
else
[[ ! -f "$FAST_BASE_DIR/themes/$1.ini" ]] && { print -u2 "No such theme \`$1', aborting"; return 1; }
[[ ! -r "$FAST_BASE_DIR/themes/$1.ini" ]] && { print -u2 "Theme \`$1' unreadable, aborting"; return 1; }
THEME_NAME="$1"
- fast-read-ini-file "$FAST_BASE_DIR/themes/$1.ini" out ""
+ .fast-read-ini-file "$FAST_BASE_DIR/themes/$1.ini" out ""
fi
[[ -z "$OPT_SECONDARY" ]] && { [[ "$THEME_NAME" = *"overlay"* ]] && local outfile="theme_overlay.zsh" || local outfile="current_theme.zsh"; } || local outfile="secondary_theme.zsh"
diff --git a/.config/shell/zsh-fast-syntax-highlighting/share/free_theme.zsh b/.config/shell/zsh-fast-syntax-highlighting/share/free_theme.zsh
new file mode 100644
index 0000000..0f32d66
--- /dev/null
+++ b/.config/shell/zsh-fast-syntax-highlighting/share/free_theme.zsh
@@ -0,0 +1,61 @@
+: ${FAST_HIGHLIGHT_STYLES[freedefault]:=none}
+: ${FAST_HIGHLIGHT_STYLES[freeunknown-token]:=fg=red,bold}
+: ${FAST_HIGHLIGHT_STYLES[freereserved-word]:=fg=150}
+: ${FAST_HIGHLIGHT_STYLES[freealias]:=fg=180}
+: ${FAST_HIGHLIGHT_STYLES[freesuffix-alias]:=fg=180}
+: ${FAST_HIGHLIGHT_STYLES[freebuiltin]:=fg=180}
+: ${FAST_HIGHLIGHT_STYLES[freefunction]:=fg=180}
+: ${FAST_HIGHLIGHT_STYLES[freecommand]:=fg=180}
+: ${FAST_HIGHLIGHT_STYLES[freeprecommand]:=fg=180}
+: ${FAST_HIGHLIGHT_STYLES[freecommandseparator]:=none}
+: ${FAST_HIGHLIGHT_STYLES[freehashed-command]:=fg=180}
+: ${FAST_HIGHLIGHT_STYLES[freepath]:=fg=166}
+: ${FAST_HIGHLIGHT_STYLES[freepath_pathseparator]:=}
+: ${FAST_HIGHLIGHT_STYLES[freeglobbing]:=fg=112}
+: ${FAST_HIGHLIGHT_STYLES[freeglobbing-ext]:=fg=118}
+: ${FAST_HIGHLIGHT_STYLES[freehistory-expansion]:=fg=blue,bold}
+: ${FAST_HIGHLIGHT_STYLES[freesingle-hyphen-option]:=fg=110}
+: ${FAST_HIGHLIGHT_STYLES[freedouble-hyphen-option]:=fg=110}
+: ${FAST_HIGHLIGHT_STYLES[freeback-quoted-argument]:=none}
+: ${FAST_HIGHLIGHT_STYLES[freesingle-quoted-argument]:=fg=150}
+: ${FAST_HIGHLIGHT_STYLES[freedouble-quoted-argument]:=fg=150}
+: ${FAST_HIGHLIGHT_STYLES[freedollar-quoted-argument]:=fg=150}
+: ${FAST_HIGHLIGHT_STYLES[freeback-or-dollar-double-quoted-argument]:=fg=110}
+: ${FAST_HIGHLIGHT_STYLES[freeback-dollar-quoted-argument]:=fg=110}
+: ${FAST_HIGHLIGHT_STYLES[freeassign]:=none}
+: ${FAST_HIGHLIGHT_STYLES[freeredirection]:=none}
+: ${FAST_HIGHLIGHT_STYLES[freecomment]:=fg=black,bold}
+: ${FAST_HIGHLIGHT_STYLES[freevariable]:=none}
+: ${FAST_HIGHLIGHT_STYLES[freemathvar]:=fg=blue,bold}
+: ${FAST_HIGHLIGHT_STYLES[freemathnum]:=fg=166}
+: ${FAST_HIGHLIGHT_STYLES[freematherr]:=fg=red}
+: ${FAST_HIGHLIGHT_STYLES[freeassign-array-bracket]:=fg=180}
+: ${FAST_HIGHLIGHT_STYLES[freefor-loop-variable]:=none}
+: ${FAST_HIGHLIGHT_STYLES[freefor-loop-number]:=fg=150}
+: ${FAST_HIGHLIGHT_STYLES[freefor-loop-operator]:=fg=150}
+: ${FAST_HIGHLIGHT_STYLES[freefor-loop-separator]:=fg=109}
+: ${FAST_HIGHLIGHT_STYLES[freeexec-descriptor]:=fg=yellow,bold}
+: ${FAST_HIGHLIGHT_STYLES[freehere-string-tri]:=fg=yellow}
+: ${FAST_HIGHLIGHT_STYLES[freehere-string-text]:=bg=19}
+: ${FAST_HIGHLIGHT_STYLES[freehere-string-var]:=fg=110,bg=19}
+: ${FAST_HIGHLIGHT_STYLES[freesecondary]:=zdharma}
+: ${FAST_HIGHLIGHT_STYLES[freecase-input]:=fg=180}
+: ${FAST_HIGHLIGHT_STYLES[freecase-parentheses]:=fg=116}
+: ${FAST_HIGHLIGHT_STYLES[freecase-condition]:=bg=19}
+: ${FAST_HIGHLIGHT_STYLES[freecorrect-subtle]:=bg=55}
+: ${FAST_HIGHLIGHT_STYLES[freeincorrect-subtle]:=bg=52}
+: ${FAST_HIGHLIGHT_STYLES[freesubtle-separator]:=none}
+: ${FAST_HIGHLIGHT_STYLES[freesubtle-bg]:=bg=18}
+: ${FAST_HIGHLIGHT_STYLES[freepath-to-dir]:=fg=166,underline}
+: ${FAST_HIGHLIGHT_STYLES[freepaired-bracket]:=bg=blue}
+: ${FAST_HIGHLIGHT_STYLES[freebracket-level-1]:=fg=130}
+: ${FAST_HIGHLIGHT_STYLES[freebracket-level-2]:=fg=70}
+: ${FAST_HIGHLIGHT_STYLES[freebracket-level-3]:=fg=69}
+: ${FAST_HIGHLIGHT_STYLES[freeglobal-alias]:=bg=19}
+: ${FAST_HIGHLIGHT_STYLES[freesubcommand]:=fg=150}
+: ${FAST_HIGHLIGHT_STYLES[freesingle-sq-bracket]:=fg=180}
+: ${FAST_HIGHLIGHT_STYLES[freedouble-sq-bracket]:=fg=180}
+: ${FAST_HIGHLIGHT_STYLES[freedouble-paren]:=fg=150}
+: ${FAST_HIGHLIGHT_STYLES[freeoptarg-string]:=fg=150}
+: ${FAST_HIGHLIGHT_STYLES[freeoptarg-number]:=fg=166}
+: ${FAST_HIGHLIGHT_STYLES[freerecursive-base]:=fg=183}
diff --git a/.config/shell/zsh-fast-syntax-highlighting/themes/base16.ini b/.config/shell/zsh-fast-syntax-highlighting/themes/base16.ini
new file mode 100644
index 0000000..8c82598
--- /dev/null
+++ b/.config/shell/zsh-fast-syntax-highlighting/themes/base16.ini
@@ -0,0 +1,82 @@
+[base]
+default = none
+unknown-token = 1,bold
+commandseparator = none
+redirection = none
+here-string-tri = 14
+here-string-text = bg:11
+here-string-var = 1,bg:11
+exec-descriptor = 9,bold
+comment = 8
+correct-subtle = 12
+incorrect-subtle = 1
+subtle-separator = 12
+subtle-bg = bg:10
+; secondary =
+; recursive-base =
+
+[command-point]
+reserved-word = 5
+subcommand = 6
+alias = 4
+suffix-alias = 4
+global-alias = 4,bg:11
+builtin = 4
+function = 4
+command = 4
+precommand = 6
+hashed-command = 4
+single-sq-bracket = 4
+double-sq-bracket = 4
+double-paren = 5
+
+[paths]
+path = 9
+pathseparator =
+path-to-dir = 9,underline
+globbing = 6
+globbing-ext = 6,bold
+
+[brackets]
+paired-bracket = bg:8
+bracket-level-1 = 3,bold
+bracket-level-2 = 6,bold
+bracket-level-3 = 2,bold
+
+[arguments]
+single-hyphen-option = 3
+double-hyphen-option = 3
+back-quoted-argument = none
+single-quoted-argument = 2
+double-quoted-argument = 2
+dollar-quoted-argument = 2
+
+[in-string]
+; backslash in $'...'
+back-dollar-quoted-argument = 6
+; backslash or $... in "..."
+back-or-dollar-double-quoted-argument = 1
+
+[other]
+variable = 1
+assign = none
+assign-array-bracket = 5
+history-expansion = 6,bold
+
+[math]
+mathvar = 1
+mathnum = 9
+matherr = 1,bold
+
+[for-loop]
+forvar = 1
+fornum = 9
+; operator
+foroper = none
+; separator
+forsep = none
+
+[case]
+case-input = 1
+case-parentheses = 5
+case-condition = bg:10
diff --git a/.config/shell/zsh-fast-syntax-highlighting/themes/default.ini b/.config/shell/zsh-fast-syntax-highlighting/themes/default.ini
index a5abeab..c0840fb 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/themes/default.ini
+++ b/.config/shell/zsh-fast-syntax-highlighting/themes/default.ini
@@ -14,7 +14,7 @@ correct-subtle = 12
incorrect-subtle = red
subtle-separator = green
subtle-bg = bg:18
-secondary =
+secondary = free
; recursive-base =
[command-point]
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-alias.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-alias.ch
index d581341..d581341 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-alias.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-alias.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-autoload.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-autoload.ch
index 78a8924..78a8924 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-autoload.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-autoload.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-autorandr.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-autorandr.ch
index 9687db3..9687db3 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-autorandr.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-autorandr.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-awk.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-awk.ch
index 47b3ec7..47b3ec7 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-awk.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-awk.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-docker.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-docker.ch
index 0a6a3bb..31772f2 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-docker.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-docker.ch
@@ -61,7 +61,7 @@ local -a __lines_list
if (( __idx1 == 2 )); then
__style=${FAST_THEME_NAME}subcommand
elif (( __idx1 == 3 )); then
- -fast-run-command "docker images -q" chroma-docker-list ""
+ .fast-run-command "docker images -q" chroma-docker-list ""
[[ -n "${__lines_list[(r)$__wrd]}" ]] && {
(( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}, __start >= 0 )) && \
reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[${FAST_THEME_NAME}correct-subtle]}")
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-example.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-example.ch
index 8814922..8814922 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-example.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-example.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-fast-theme.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-fast-theme.ch
index 15bc210..15bc210 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-fast-theme.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-fast-theme.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-fpath_peq.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-fpath_peq.ch
index 072cee3..072cee3 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-fpath_peq.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-fpath_peq.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-git.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-git.ch
index bf5fbe5..43693ce 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-git.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-git.ch
@@ -17,20 +17,22 @@ fsh__git__chroma__def=(
subcmd:NULL "NULL_0_opt"
NULL_0_opt "(-C|--exec-path=|--git-dir=|--work-tree=|--namespace=|--super-prefix=)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-ARG-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-ARG-action
|| -c
<<>> __style=\${FAST_THEME_NAME}single-hyphen-option // NO-OP
<<>> __style=\${FAST_THEME_NAME}optarg-string // NO-OP
|| (--version|--help|--html-path|--man-path|--info-path|-p|--paginate|
-P|--no-pager|--no-replace-objects|--bare)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
- "subcommands" ":::chroma/-git-get-subcommands" # run a function (the :: causes this) and use `reply'
+ "subcommands" "::→chroma/-git-get-subcommands" # run a function (the :: causes this) and use `reply'
#"subcommands" "(fetch|pull)" # run a function (the :: causes this) and use `reply'
- "subcmd-hook" ":chroma/-git-check-if-alias"
+ "subcmd-hook" "→chroma/-git-check-if-alias"
+
+ "subcommands-blacklist" "mv,other"
## }}}
@@ -68,8 +70,8 @@ fsh__git__chroma__def=(
--refmap=|--recurse-submodules=|-j|--jobs=|--submodule-prefix=|
--recurse-submodules-default=|-o|--server-option=|--upload-pack|
--negotiation-tip=)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-ARG-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-ARG-action
|| (--help|--all|-a|--append|--unshallow|--update-shallow|--dry-run|-f|--force|
-k|--keep|--multiple|-p|--prune|-n|--no-tags|-t|--tags|--no-recurse-submodules|
-u|--update-head-ok|-q|--quiet|-v|--verbose|--progress|
@@ -82,9 +84,9 @@ fsh__git__chroma__def=(
# is set to be argument-less. The argument is a) -o/--option argument
# and b) -o/--option=argument.
- REMOTE_GR_1_arg "NO-OP // :::chroma/-git-verify-remote-or-group" # This definition is generic, reused later
- "REF_#_arg" "NO-OP // :::chroma/-git-verify-ref" # This too
- "REMOTE_GR_#_arg" "NO-OP // :::chroma/-git-verify-remote-or-group" # and this too
+ REMOTE_GR_1_arg "NO-OP // ::→chroma/-git-verify-remote-or-group" # This definition is generic, reused later
+ "REF_#_arg" "NO-OP // ::→chroma/-git-verify-ref" # This too
+ "REMOTE_GR_#_arg" "NO-OP // ::→chroma/-git-verify-remote-or-group" # and this too
# The hash `#' above denotes: an argument at any position
# It will nicely match any following (above the first explicitly
# numbered ones) arguments passed when using --multiple
@@ -105,8 +107,8 @@ fsh__git__chroma__def=(
PUSH_0_opt "
(--receive-pack=|--exec=|--repo=|--push-option=|--signed=|
--force-with-lease=|--signed=|--recurse-submodules=)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-ARG-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-ARG-action
|| (--help|--all|--mirror|--tags|--follow-tags|--atomic|-n|--dry-run|
--porcelain|--delete|--tags|--follow-tags|--signed|--no-signed|
--atomic|--no-atomic|-o|--push-option|--force-with-lease|
@@ -115,7 +117,7 @@ fsh__git__chroma__def=(
--verify|--no-verify|-4|--ipv4|-6|--ipv6)
<<>> __style=\${FAST_THEME_NAME}single-hyphen-option // NO-OP"
- REMOTE_1_arg "NO-OP // :::chroma/-git-verify-remote" # This definition is generic, reused later
+ REMOTE_1_arg "NO-OP // ::→chroma/-git-verify-remote" # This definition is generic, reused later
### }}}
@@ -131,8 +133,8 @@ fsh__git__chroma__def=(
--strategy-option=|--rebase=|--depth=|--deepen=|--shallow-exclude=|
--shallow-since=|--negotiation-tip|--upload-pack|-o|--server-option=|
--no-recurse-submodules=)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-ARG-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-ARG-action
|| (--help|-q|--quiet|-v|--verbose|--progress|--no-recurse-submodules|
--commit|--no-commit|--edit|--no-edit|--ff|--no-ff|--ff-only|
--log|--no-log|--signoff|--no-signoff|--stat|-n|--no-stat|--squash|
@@ -153,23 +155,23 @@ fsh__git__chroma__def=(
subcmd:commit "COMMIT_#_opt // FILE_#_arg // NO_MATCH_#_opt"
"COMMIT_#_opt" "
- (-m|--message=|-am)
- <<>> NO-OP // :::chroma/-git-commit-msg-opt-action
- <<>> NO-OP // :::chroma/-git-commit-msg-opt-ARG-action
+ (-m|--message=|--message|-am)
+ <<>> NO-OP // ::→chroma/-git-commit-msg-opt-action
+ <<>> NO-OP // ::→chroma/-git-commit-msg-opt-ARG-action
|| (--help|-a|--all|-p|--patch|--reset-author|--short|--branch|
--porcelain|--long|-z|--null|-s|--signoff|-n|--no-verify|
--allow-empty|--allow-empty-message|-e|--edit|--no-edit|
--amend|--no-post-rewrite|-i|--include|-o|--only|--untracked-files|
-v|--verbose|-q|--quiet|--dry-run|--status|--no-status|--no-gpg-sign)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
|| (-C|--reuse-message=|-c|--reedit-message=|--fixup=|--squash=|
-F|--file=|--author=|--date=|-t|--template=|--cleanup=|
-u|--untracked-files=|-S|--gpg-sign=)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-ARG-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-ARG-action"
# A generic action
- "FILE_#_arg" "NO-OP // :::chroma/-git-verify-file"
+ "FILE_#_arg" "NO-OP // ::→chroma/-git-verify-file"
## }}}
@@ -181,20 +183,20 @@ fsh__git__chroma__def=(
subcmd:merge "MERGE_0_opt // COMMIT_#_arg"
MERGE_0_opt
"(-m)
- <<>> NO-OP // :::chroma/-git-commit-msg-opt-action
- <<>> NO-OP // :::chroma/-git-commit-msg-opt-ARG-action
+ <<>> NO-OP // ::→chroma/-git-commit-msg-opt-action
+ <<>> NO-OP // ::→chroma/-git-commit-msg-opt-ARG-action
(-S|--gpg-sign=|--log=|-e|--strategy=|-X|--strategy-option=|-F|
--file)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-ARG-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-ARG-action
|| (--help|--commit|--no-commit|-e|--edit|--no-edit|--ff|--no-ff|--ff-only|
--log|--no-log|--signoff|--no-signoff|-n|--stat|--no-stat|--squash|
--no-squash|--verify-signatures|--no-verify-signatures|--summary|
--no-summary|-q|--quiet|-v|--verbose|--progress|--no-progress|
--allow-unrelated-histories|--rerere-autoupdate|--no-rerere-autoupdate|
--abort|--continue)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
- COMMIT_\#_arg "NO-OP // :::chroma/-git-verify-commit"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
+ COMMIT_\#_arg "NO-OP // ::→chroma/-git-verify-commit"
## }}}
@@ -206,7 +208,7 @@ fsh__git__chroma__def=(
subcmd:reset "RESET_0_opt^ // RESET_0_opt // RESET_#_arg // NO_MATCH_#_opt"
"RESET_0_opt^" "
(--soft|--mixed|--hard|--merge|--keep)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
|| (--soft|--mixed|--hard|--merge|--keep):del
<<>> RESET_0_opt // RESET_#_arg
|| (--soft|--mixed|--hard|--merge|--keep):add
@@ -215,11 +217,11 @@ fsh__git__chroma__def=(
RESET_0_opt "
(-q|-p|--patch)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
- RESET_1_arg "NO-OP // :::chroma/-git-verify-commit"
+ RESET_1_arg "NO-OP // ::→chroma/-git-verify-commit"
- "RESET_#_arg" "NO-OP // :::chroma/-git-RESET-verify-commit-or-file"
+ "RESET_#_arg" "NO-OP // ::→chroma/-git-RESET-verify-commit-or-file"
## }}}
@@ -232,20 +234,20 @@ fsh__git__chroma__def=(
subcmd:revert "REVERT_SEQUENCER_0_opt^ // REVERT_0_opt // REVERT_#_arg // NO_MATCH_#_opt"
REVERT_0_opt "
(-m|--mainline|-S|--gpg-sign=|--strategy=|-X|--strategy-option=)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-ARG-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-ARG-action
|| (-e|--edit|--no-edit|-n|--no-commit|-s|--signoff)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
"REVERT_SEQUENCER_0_opt^" "
(--continue|--quit|--abort)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
|| (--continue|--quit|--abort):del
<<>> REVERT_0_opt // REVERT_#_arg
|| (--continue|--quit|--abort):add
<<>> NO_MATCH_#_arg"
- "REVERT_#_arg" "NO-OP // :::chroma/-git-verify-commit"
+ "REVERT_#_arg" "NO-OP // ::→chroma/-git-verify-commit"
## }}}
@@ -260,7 +262,7 @@ fsh__git__chroma__def=(
"DIFF_NO_INDEX_0_opt^" "
--no-index
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
|| --no-index:del
<<>> COMMIT_FILE_DIR_#_arg
|| --no-index:add
@@ -273,8 +275,8 @@ fsh__git__chroma__def=(
--diff-filter=|-S|-G|--find-object=|--relative=|-O|--relative=|
--inter-hunk-context=|--ignore-submodules=|--src-prefix=|--dst-prefix=|
--line-prefix=)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-ARG-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-ARG-action
|| (-p|--patch|-u|-s|--no-patch|--raw|--patch-with-raw|--indent-heuristic|
--no-indent-heuristic|--minimal|--patience|--histogram|--stat|
--compact-summary|--numstat|--shortstat|--dirstat|--summary|
@@ -288,16 +290,16 @@ fsh__git__chroma__def=(
--ext-diff|--no-ext-diff|--textconv|--no-textconv|--ignore-submodules|
--no-prefix|--ita-invisible-in-index|-1|--base|-2|--ours|-3|--theirs|
-0|--cached)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
# A generic action
- "COMMIT_FILE_DIR_#_arg" "NO-OP // :::chroma/-git-verify-commit-or-file-or-dir"
+ "COMMIT_FILE_DIR_#_arg" "NO-OP // ::→chroma/-git-verify-commit-or-file-or-dir"
# A generic action
- "FILE_1_arg" "NO-OP // :::chroma/-git-verify-file"
+ "FILE_1_arg" "NO-OP // ::→chroma/-git-verify-file"
# A generic action
- "FILE_2_arg" "NO-OP // :::chroma/-git-verify-file"
+ "FILE_2_arg" "NO-OP // ::→chroma/-git-verify-file"
## }}}
@@ -310,16 +312,16 @@ fsh__git__chroma__def=(
ADD_0_opt "
--chmod=
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-ARG-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-ARG-action
|| (-v|--verbose|-f|--force|-i|--interactive|-n|--dry-run|
-p|--patch|-e|--edit|--all|--no-all|-A|--all|--no-all|
--ignore-removal|--no-ignore-removal|-u|--update|-N|
--intent-to-add|--refresh|--ignore-errors|--ignore-missing|
--renormalize|--no-warn-embedded-repo)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
- FILE_OR_DIR_#_arg "NO-OP // :::chroma/-git-verify-file-or-dir"
+ FILE_OR_DIR_#_arg "NO-OP // ::→chroma/-git-verify-file-or-dir"
## }}}
@@ -334,32 +336,32 @@ fsh__git__chroma__def=(
"CHECKOUT_BRANCH_0_opt^" "
(-b|-B|--orphan)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
|| (-b|-B|--orphan):del
<<>> FILE_OR_DIR_OR_BRANCH_OR_COMMIT_1_arg // FILE_#_arg // FILE_#_arg
|| (-b|-B|--orphan):add
<<>> NEW_BRANCH_1_arg // COMMIT_2_arg // NO_MATCH_#_arg"
- NEW_BRANCH_1_arg "NO-OP // :::chroma/-git-verify-correct-branch-name"
+ NEW_BRANCH_1_arg "NO-OP // ::→chroma/-git-verify-correct-branch-name"
- COMMIT_2_arg "NO-OP // :::chroma/-git-verify-commit"
+ COMMIT_2_arg "NO-OP // ::→chroma/-git-verify-commit"
CHECKOUT_0_opt "
--conflict=
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-ARG-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-ARG-action
|| (-q|--quiet|--progress|--no-progress|-f|--force|--ours|--theirs|
-b|-B|-t|--track|--no-track|-l|--detach|--orphan|
--ignore-skip-worktree-bits|-m|--merge|-p|--patch|
--ignore-other-worktrees|--no-ignore-other-worktrees)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
# A generic action
- COMMIT_1_arg "NO-OP // :::chroma/-git-verify-commit"
+ COMMIT_1_arg "NO-OP // ::→chroma/-git-verify-commit"
# Unused
- FILE_OR_BRANCH_OR_COMMIT_1_arg "NO-OP // :::chroma/-git-file-or-ubranch-or-commit-verify"
- FILE_OR_DIR_OR_BRANCH_OR_COMMIT_1_arg "NO-OP // :::chroma/-git-file-or-dir-or-ubranch-or-commit-verify"
+ FILE_OR_BRANCH_OR_COMMIT_1_arg "NO-OP // ::→chroma/-git-file-or-ubranch-or-commit-verify"
+ FILE_OR_DIR_OR_BRANCH_OR_COMMIT_1_arg "NO-OP // ::→chroma/-git-file-or-dir-or-ubranch-or-commit-verify"
## }}}
@@ -374,7 +376,7 @@ fsh__git__chroma__def=(
REMOTE_PRUNE_1_arg // REMOTE_UPDATE_1_arg"
REMOTE_0_opt "(-v|--verbose)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
REMOTE_ADD_1_arg "add ::::: __style=${FAST_THEME_NAME}subcommand // NO-OP <<>>
add:REMOTE_ADD_OPTS_1_opt // REMOTE_A_NAME_2_arg //
@@ -415,53 +417,53 @@ fsh__git__chroma__def=(
REMOTE_ADD_OPTS_1_opt "
(-t|-m|--mirror=)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-ARG-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-ARG-action
|| (-f|--tags|--no-tags)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
REMOTE_SET_HEAD_OPTS_1_opt "
(-a|--auto|-d|--delete)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
REMOTE_SET_HEAD_OPTS_2_opt "
(-a|--auto|-d|--delete)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
REMOTE_SET_BRANCHES_OPTS_1_opt "
--add
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
REMOTE_GET_URL_OPTS_1_opt "
(--push|--all)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
"REMOTE_SET_URL_OPTS_1_opt^" "
--push|--add|--delete
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
|| (--add|--delete):del
<<>> REMOTE_A_URL_4_arg"
REMOTE_SHOW_OPTS_1_opt "
-n
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
REMOTE_PRUNE_OPTS_1_opt "
(-n|--dry-run)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
REMOTE_UPDATE_OPTS_1_opt "
(-p|--prune)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
- REMOTE_A_NAME_2_arg "NO-OP // :::chroma/-git-verify-correct-branch-name"
- REMOTE_A_NAME_3_arg "NO-OP // :::chroma/-git-verify-correct-branch-name"
- REMOTE_A_URL_3_arg "NO-OP // :::chroma/main-chroma-std-verify-url"
- REMOTE_A_URL_4_arg "NO-OP // :::chroma/main-chroma-std-verify-url"
- BRANCH_3_arg "NO-OP // :::chroma/-git-verify-branch"
- BRANCH_\#_arg "NO-OP // :::chroma/-git-verify-branch"
- REMOTE_2_arg "NO-OP // :::chroma/-git-verify-remote"
- REMOTE_\#_arg "NO-OP // :::chroma/-git-verify-remote"
+ REMOTE_A_NAME_2_arg "NO-OP // ::→chroma/-git-verify-correct-branch-name"
+ REMOTE_A_NAME_3_arg "NO-OP // ::→chroma/-git-verify-correct-branch-name"
+ REMOTE_A_URL_3_arg "NO-OP // ::→chroma/main-chroma-std-verify-url"
+ REMOTE_A_URL_4_arg "NO-OP // ::→chroma/main-chroma-std-verify-url"
+ BRANCH_3_arg "NO-OP // ::→chroma/-git-verify-branch"
+ BRANCH_\#_arg "NO-OP // ::→chroma/-git-verify-branch"
+ REMOTE_2_arg "NO-OP // ::→chroma/-git-verify-remote"
+ REMOTE_\#_arg "NO-OP // ::→chroma/-git-verify-remote"
## }}}
@@ -483,8 +485,8 @@ fsh__git__chroma__def=(
--find-renames=|-C|--find-copies=|-l|--diff-filter=|-S|-G|--find-object=|
--relative=|-O|--relative=|--inter-hunk-context=|--ignore-submodules=|
--src-prefix=|--dst-prefix=|--line-prefix=)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-ARG-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-ARG-action
|| (--follow|--decorate|--no-decorate|--source|--use-mailmap|--full-diff|
--log-size|--all-match|--invert-grep|-i|--regexp-ignore-case|--basic-regexp|
@@ -510,9 +512,9 @@ fsh__git__chroma__def=(
--ignore-blank-lines|-W|--function-context|--ext-diff|--no-ext-diff|
--textconv|--no-textconv|--ignore-submodules|--no-prefix|
--ita-invisible-in-index)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
- LOG_1_arg "NO-OP // :::chroma/-git-verify-rev-range-or-file"
+ LOG_1_arg "NO-OP // ::→chroma/-git-verify-rev-range-or-file"
##
## TAG
@@ -522,65 +524,65 @@ fsh__git__chroma__def=(
"TAG_0_opt^" "
(-u|--local-user=|--cleanup=)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-ARG-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-ARG-action
|| -m
- <<>> NO-OP // :::chroma/-git-commit-msg-opt-action
- <<>> NO-OP // :::chroma/-git-commit-msg-opt-ARG-action
+ <<>> NO-OP // ::→chroma/-git-commit-msg-opt-action
+ <<>> NO-OP // ::→chroma/-git-commit-msg-opt-ARG-action
|| (-F|--file)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
- <<>> NO-OP // :::chroma/-git-verify-file
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/-git-verify-file
|| (-a|--annotate|-s|--sign|-f|-e|--edit)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
|| (-u|--local-user=|--cleanup=|-m|-F|--file|-a|--annotate|-s|--sign|
-f|-e|--edit):add
<<>> TAG_NEW_1_arg // COMMIT_2_arg // NO_MATCH_#_arg //
NO_MATCH_#_opt"
- TAG_NEW_1_arg "NO-OP // :::chroma/-git-verify-correct-branch-name"
+ TAG_NEW_1_arg "NO-OP // ::→chroma/-git-verify-correct-branch-name"
- TAG_1_arg "NO-OP // :::chroma/-git-verify-tag-name"
+ TAG_1_arg "NO-OP // ::→chroma/-git-verify-tag-name"
"TAG_D_0_opt^" "
(-d)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
|| -d:add
<<>> TAG_#_arg // NO_MATCH_#_opt
|| -d:del
<<>> TAG_0_opt // TAG_NEW_1_arg // COMMIT_2_arg"
- "TAG_#_arg" "NO-OP // :::chroma/-git-verify-tag-name"
+ "TAG_#_arg" "NO-OP // ::→chroma/-git-verify-tag-name"
"TAG_L_0_opt^" "
(-l)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
|| -l:add
<<>> TAG_L_0_opt // TAG_PAT_#_arg // NO_MATCH_#_opt
|| -l:del
<<>> TAG_0_opt // TAG_NEW_1_arg // COMMIT_2_arg"
- "TAG_L_0_opt" "
+ TAG_L_0_opt "
(-n|--contains|--no-contains|--points-at|--column=|--sort=|--format=|
--color=)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-ARG-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-ARG-action
|| (--column|--no-column|--create-reflog|--merged|--no-merged|--color|-i)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
- "TAG_PAT_#_arg" "NO-OP // :::chroma/main-chroma-std-verify-pattern"
+ "TAG_PAT_#_arg" "NO-OP // ::→chroma/main-chroma-std-verify-pattern"
"TAG_V_0_opt^" "
(-v)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
|| -v:add
<<>> TAG_V_0_opt // TAG_#_arg // NO_MATCH_#_opt
|| -v:del
<<>> TAG_0_opt // TAG_NEW_1_arg // COMMIT_2_arg"
- "TAG_V_0_opt" "
+ TAG_V_0_opt "
--format=
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-ARG-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-ARG-action"
##
## All remaining subcommands
@@ -588,13 +590,13 @@ fsh__git__chroma__def=(
## {{{
"subcmd:*" "CATCH_ALL_#_opt"
- "CATCH_ALL_#_opt" "* <<>> NO-OP // :::chroma/main-chroma-std-aopt-SEMI-action"
+ "CATCH_ALL_#_opt" "* <<>> NO-OP // ::→chroma/main-chroma-std-aopt-SEMI-action"
## }}}
)
# Called after entering just "git" on the command line
-:chroma/-git-first-call() {
+→chroma/-git-first-call() {
# Called for the first time - new command
# FAST_HIGHLIGHT is used because it survives between calls, and
# allows to use a single global hash only, instead of multiple
@@ -614,23 +616,23 @@ fsh__git__chroma__def=(
return 1
}
-:chroma/-git-check-if-alias() {
+→chroma/-git-check-if-alias() {
local _wrd="$1"
local -a _result
typeset -ga fsh__chroma__git__aliases
_result=( ${(M)fsh__chroma__git__aliases[@]:#${_wrd}[[:space:]]##*} )
- :chroma/main-chroma-print "Got is-alias-_result: $_result"
+ →chroma/main-chroma-print "Got is-alias-_result: $_result"
[[ -n "$_result" ]] && \
FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]="${${${_result#* }## ##}%% *}"
}
# A hook that returns the list of git's
# available subcommands in $reply
-:chroma/-git-get-subcommands() {
+→chroma/-git-get-subcommands() {
local __svalue
integer __ivalue
- LANG=C -fast-run-command "git help -a" chroma-${FAST_HIGHLIGHT[chroma-current]}-subcmd-list "" $(( 15 * 60 ))
+ LANG=C .fast-run-command "git help -a" chroma-${FAST_HIGHLIGHT[chroma-current]}-subcmd-list "" $(( 15 * 60 ))
if [[ "${__lines_list[1]}" = See* ]]; then
# (**)
# git >= v2.20, the aliases in the `git help -a' command
@@ -646,7 +648,7 @@ fsh__git__chroma__def=(
# This allows to check if the command is an alias - we want to
# highlight the aliased command just like the target command of
# the alias
- -fast-run-command "+git config --get-regexp 'alias.*'" chroma-${FAST_HIGHLIGHT[chroma-current]}-alias-list "[[:space:]]#alias." $(( 15 * 60 ))
+ .fast-run-command "+git config --get-regexp 'alias.*'" chroma-${FAST_HIGHLIGHT[chroma-current]}-alias-list "[[:space:]]#alias." $(( 15 * 60 ))
fi
__tmp=${#__lines_list}
@@ -658,9 +660,9 @@ fsh__git__chroma__def=(
}
# A generic handler
-:chroma/-git-verify-remote() {
+→chroma/-git-verify-remote() {
local _wrd="$4"
- -fast-run-git-command "git remote" "chroma-git-remotes-$PWD" "" $(( 2 * 60 ))
+ .fast-run-git-command "git remote" "chroma-git-remotes-$PWD" "" 10
[[ -n ${__lines_list[(r)$_wrd]} ]] && {
__style=${FAST_THEME_NAME}correct-subtle; return 0
} || {
@@ -669,25 +671,25 @@ fsh__git__chroma__def=(
}
# A generic handler - checks if given ref is correct
-:chroma/-git-verify-ref() {
+→chroma/-git-verify-ref() {
local _wrd="$4"
_wrd="${_wrd%%:*}"
- -fast-run-git-command "git for-each-ref --format='%(refname:short)' refs/heads" "chroma-git-refs-$PWD" "refs/heads" $(( 2 * 60 ))
+ .fast-run-git-command "git for-each-ref --format='%(refname:short)' refs/heads" "chroma-git-refs-$PWD" "refs/heads" 10
[[ -n ${__lines_list[(r)$_wrd]} ]] && \
{ __style=${FAST_THEME_NAME}correct-subtle; return 0; } || \
{ __style=${FAST_THEME_NAME}incorrect-subtle; return 1; }
}
# A generic handler - checks if given remote or group is correct
-:chroma/-git-verify-remote-or-group() {
- :chroma/-git-verify-remote "$@" && return 0
+→chroma/-git-verify-remote-or-group() {
+ →chroma/-git-verify-remote "$@" && return 0
# The check for a group is to follow below
integer _start="$2" _end="$3"
local _scmd="$1" _wrd="$4"
}
# A generic handler - checks whether the file exists
-:chroma/-git-verify-file() {
+→chroma/-git-verify-file() {
integer _start="$2" _end="$3" __pos __start __end
local _wrd="$4" bg
@@ -721,7 +723,7 @@ fsh__git__chroma__def=(
}
# A generic handler - checks whether the file exists
-:chroma/-git-verify-file-or-dir() {
+→chroma/-git-verify-file-or-dir() {
integer _start="$2" _end="$3" __pos __start __end retval
local _wrd="$4" bg
@@ -757,48 +759,54 @@ fsh__git__chroma__def=(
return $retval
}
-:chroma/-git-verify-branch() {
+→chroma/-git-verify-branch() {
local _wrd="$4"
- -fast-run-git-command "git for-each-ref --format='%(refname:short)' refs/heads" "chroma-git-branches-$PWD" "refs/heads" $(( 2 * 60 ))
- [[ -n ${__lines_list[(r)$_wrd]} ]] && \
- { __style=${FAST_THEME_NAME}correct-subtle; return 0; } || \
- { __style=${FAST_THEME_NAME}incorrect-subtle; return 1; }
+ .fast-run-git-command "git for-each-ref --format='%(refname:short)'" "chroma-git-branches-$PWD" "refs/heads" 10
+ if [[ -n ${__lines_list[(r)$_wrd]} ]] {
+ __style=${FAST_THEME_NAME}correct-subtle; return 0
+ } elif [[ -n ${__lines_list[(r)origin/$_wrd]} ]] {
+ __style=${FAST_THEME_NAME}correct-subtle; return 0
+ } else {
+ __style=${FAST_THEME_NAME}incorrect-subtle; return 1
+ }
}
-:chroma/-git-verify-also-unfetched-ref() {
+→chroma/-git-verify-also-unfetched-ref() {
local _wrd="$4"
- -fast-run-git-command "git config --get checkout.defaultRemote" \
- "chroma-git-defaultRemote-$PWD" "" $(( 2 * 60 ))
+ .fast-run-git-command "git config --get checkout.defaultRemote" \
+ "chroma-git-defaultRemote-$PWD" "" 10
local remote="${__lines_list[1]:-origin}"
- -fast-run-git-command "git rev-list --count --no-walk
+ .fast-run-git-command "git rev-list --count --no-walk
--glob=\"refs/remotes/$remote/$_wrd\"" \
- "chroma-git-unfetched-ref-$PWD" "" $(( 2 * 60 ))
+ "chroma-git-unfetched-ref-$PWD" "" 10
(( __lines_list[1] )) && { __style=${FAST_THEME_NAME}correct-subtle; return 0; } || \
{ __style=${FAST_THEME_NAME}incorrect-subtle; return 1; }
}
# A generic handler
-:chroma/-git-file-or-ubranch-or-commit-verify() {
- :chroma/-git-verify-commit "$@" && return
- :chroma/-git-verify-file "$@" && return
- :chroma/-git-verify-also-unfetched-ref "$@"
+→chroma/-git-file-or-ubranch-or-commit-verify() {
+ →chroma/-git-verify-commit "$@" && return
+ →chroma/-git-verify-file "$@" && return
+ →chroma/-git-verify-branch "$@" && return
+ →chroma/-git-verify-also-unfetched-ref "$@"
}
# A generic handler
-:chroma/-git-file-or-dir-or-ubranch-or-commit-verify() {
- :chroma/-git-verify-commit "$@" && return
- :chroma/-git-verify-file-or-dir "$@" && return
- :chroma/-git-verify-also-unfetched-ref "$@"
+→chroma/-git-file-or-dir-or-ubranch-or-commit-verify() {
+ →chroma/-git-verify-commit "$@" && return
+ →chroma/-git-verify-file-or-dir "$@" && return
+ →chroma/-git-verify-branch "$@" && return
+ →chroma/-git-verify-also-unfetched-ref "$@"
}
# A generic handler
-:chroma/-git-verify-correct-branch-name() {
+→chroma/-git-verify-correct-branch-name() {
local _wrd="$4"
- :chroma/-git-verify-commit "$@" && \
+ →chroma/-git-verify-commit "$@" && \
{ __style=${FAST_THEME_NAME}incorrect-subtle; return 0; }
- :chroma/-git-verify-remote "$@" && \
+ →chroma/-git-verify-remote "$@" && \
{ __style=${FAST_THEME_NAME}incorrect-subtle; return 0; }
[[ "$_wrd" != ./* && "$_wrd" != *..* && "$_wrd" != *[~\^\ $'\t']* &&
@@ -808,11 +816,12 @@ fsh__git__chroma__def=(
}
# A generic handler that checks if given commit reference is correct
-:chroma/-git-verify-commit() {
+→chroma/-git-verify-commit() {
local _wrd="$4"
__lines_list=()
- -fast-run-git-command "git rev-parse --verify --quiet \"$_wrd\"" "chroma-git-commits-$PWD-$_wrd" "" $(( 1.5 * 60 ))
- if (( ${#__lines_list} )); then
+ .fast-run-git-command --status "git rev-parse --verify --quiet \"$_wrd\"" \
+ "chroma-git-commits-$PWD-$_wrd" "" $(( 1.5 * 60 ))
+ if (( __lines_list[1] == 0 )); then
__style=${FAST_THEME_NAME}correct-subtle
return 0
fi
@@ -822,28 +831,28 @@ fsh__git__chroma__def=(
# A generic handler that checks if given commit reference
# is correct or if it's a file that exists
-:chroma/-git-verify-commit-or-file() {
- :chroma/-git-verify-commit "$@" && return
- :chroma/-git-verify-file "$@"
+→chroma/-git-verify-commit-or-file() {
+ →chroma/-git-verify-commit "$@" && return
+ →chroma/-git-verify-file "$@"
}
# A generic handler that checks if given commit reference
# is correct or if it's a file or directives that exists
-:chroma/-git-verify-commit-or-file-or-dir() {
- :chroma/-git-verify-commit "$@" && return
- :chroma/-git-verify-file-or-dir "$@"
+→chroma/-git-verify-commit-or-file-or-dir() {
+ →chroma/-git-verify-commit "$@" && return
+ →chroma/-git-verify-file-or-dir "$@"
}
# A generic handler that checks if given revision range
# is correct or if a file of that name exists
-:chroma/-git-verify-rev-range-or-file() {
+→chroma/-git-verify-rev-range-or-file() {
local _wrd="$4"
- :chroma/-git-verify-commit "$@" && return 0
+ →chroma/-git-verify-commit "$@" && return 0
if [[ "$_wrd" = *..* ]]; then
(( FAST_HIGHLIGHT[chroma-git-reset-etc-saw-file] )) && {
- :chroma/-git-verify-file "$@" && return 0
+ →chroma/-git-verify-file "$@" && return 0
__style=${FAST_THEME_NAME}unknown-token
return 1
}
@@ -852,29 +861,29 @@ fsh__git__chroma__def=(
return 0
fi
- :chroma/-git-verify-file "$@" && \
+ →chroma/-git-verify-file "$@" && \
{ FAST_HIGHLIGHT[chroma-git-reset-etc-saw-file]=1; return 0; }
__style=""
return 1
}
-:chroma/-git-verify-tag-name() {
+→chroma/-git-verify-tag-name() {
local _wrd="$4"
- -fast-run-git-command "git tag" "chroma-git-tags-$PWD" "" $(( 2*60 ))
+ .fast-run-git-command "git tag" "chroma-git-tags-$PWD" "" $(( 2*60 ))
[[ -n ${__lines_list[(r)$_wrd]} ]] && \
__style=${FAST_THEME_NAME}correct-subtle || \
__style=${FAST_THEME_NAME}incorrect-subtle
}
# A handler for the commit's -m/--message options.Currently
-# does the same what :chroma/main-chroma-std-aopt-action does
-:chroma/-git-commit-msg-opt-action() {
- :chroma/main-chroma-std-aopt-action "$@"
+# does the same what →chroma/main-chroma-std-aopt-action does
+→chroma/-git-commit-msg-opt-action() {
+ →chroma/main-chroma-std-aopt-action "$@"
}
# A handler for the commit's -m/--message options' argument
-:chroma/-git-commit-msg-opt-ARG-action() {
+→chroma/-git-commit-msg-opt-ARG-action() {
integer _start="$2" _end="$3"
local _scmd="$1" _wrd="$4"
@@ -913,9 +922,9 @@ fsh__git__chroma__def=(
# A RESET handler
# TODO: differentiate tree-ish from commit
-:chroma/-git-RESET-verify-commit-or-file() {
- :chroma/-git-verify-commit "$@" && {
- :chroma/-git-verify-file "$@" && {
+→chroma/-git-RESET-verify-commit-or-file() {
+ →chroma/-git-verify-commit "$@" && {
+ →chroma/-git-verify-file "$@" && {
# TODO: with -p/--patch, the <paths> are optional,
# and this argument will be taken as a commit in a
# specific circumstances
@@ -934,7 +943,7 @@ fsh__git__chroma__def=(
return 0
}
- :chroma/-git-verify-file "$@" && \
+ →chroma/-git-verify-file "$@" && \
{ FAST_HIGHLIGHT[chroma-git-reset-etc-saw-file]=1; return 0; }
return 1
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-grep.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-grep.ch
index 54309bf..54309bf 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-grep.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-grep.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-hub.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-hub.ch
index 466d2e5..2f0626a 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-hub.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-hub.ch
@@ -13,7 +13,7 @@ if (( in_redirection > 0 || this_word & 128 )) || [[ $__wrd == "<<<" ]]; then
fi
if [[ "$__wrd" != -* ]] && (( FAST_HIGHLIGHT[chroma-git-got-subcommand] == 0 )); then
- -fast-run-command "git config --get-regexp 'alias.*'" chroma-git-alias-list "" $(( 5 * 60 ))
+ .fast-run-command "git config --get-regexp 'alias.*'" chroma-git-alias-list "" $(( 5 * 60 ))
# Grep for line: alias.{user-entered-subcmd}[[:space:]], and remove alias. prefix
__lines_list=( ${${(M)__lines_list[@]:#alias.${__wrd}[[:space:]]##*}#alias.} )
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-ionice.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-ionice.ch
index f328f83..f328f83 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-ionice.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-ionice.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-lab.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-lab.ch
index cf3fc95..9c76e03 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-lab.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-lab.ch
@@ -17,7 +17,7 @@ if (( in_redirection > 0 || this_word & 128 )) || [[ $__wrd == "<<<" ]]; then
fi
if [[ "$__wrd" != -* ]] && (( FAST_HIGHLIGHT[chroma-git-got-subcommand] == 0 )); then
- -fast-run-command "git config --get-regexp 'alias.*'" chroma-git-alias-list "" $(( 5 * 60 ))
+ .fast-run-command "git config --get-regexp 'alias.*'" chroma-git-alias-list "" $(( 5 * 60 ))
# Grep for line: alias.{user-entered-subcmd}[[:space:]], and remove alias. prefix
__lines_list=( ${${(M)__lines_list[@]:#alias.${__wrd}[[:space:]]##*}#alias.} )
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-make.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-make.ch
index 91f7324..33f46bf 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-make.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-make.ch
@@ -73,7 +73,7 @@ local -a __lines_list reply2
__wrd="${(Q)__wrd}"
if [[ -f "${FAST_HIGHLIGHT[chroma-make-custom-dir]%/}/${FAST_HIGHLIGHT[chroma-make-custom-file]}" ]] && \
- -fast-make-targets < "${FAST_HIGHLIGHT[chroma-make-custom-dir]%/}/${FAST_HIGHLIGHT[chroma-make-custom-file]}"
+ make -f "${FAST_HIGHLIGHT[chroma-make-custom-dir]%/}/${FAST_HIGHLIGHT[chroma-make-custom-file]}" -Rrpq | awk '/^[a-zA-Z0-9][^$#\t=]*:/' | .fast-make-targets
then
if [[ "${reply2[(r)$__wrd]}" ]]; then
(( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}, __start >= 0 )) && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[${FAST_THEME_NAME}correct-subtle]}")
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-nice.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-nice.ch
index 7fa8a94..7fa8a94 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-nice.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-nice.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-nmcli.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-nmcli.ch
index be444e5..be444e5 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-nmcli.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-nmcli.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-node.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-node.ch
index 65f214c..65f214c 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-node.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-node.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-ogit.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-ogit.ch
index 06f0d75..6f76674 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-ogit.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-ogit.ch
@@ -79,7 +79,7 @@ else
# Check if the command is an alias - we want to highlight the
# aliased command just like the target command of the alias
- -fast-run-command "git config --get-regexp 'alias.*'" chroma-git-alias-list "" $(( 10 * 60 ))
+ .fast-run-command "git config --get-regexp 'alias.*'" chroma-git-alias-list "" $(( 10 * 60 ))
# Grep for line: alias.{user-entered-subcmd}[[:space:]], and remove alias. prefix
__lines_list=( ${${(M)__lines_list[@]:#alias.${__wrd}[[:space:]]##*}#alias.} )
@@ -95,7 +95,7 @@ else
fi
if (( __start_pos >= 0 )); then
# if subcommand exists
- LANG=C -fast-run-command "git help -a" chroma-git-subcmd-list "" $(( 10 * 60 ))
+ LANG=C .fast-run-command "git help -a" chroma-git-subcmd-list "" $(( 10 * 60 ))
# (s: :) will split on every space, but because the expression
# isn't double-quoted, the empty elements will be eradicated
# Some further knowledge-base: s-flag is special, it skips
@@ -144,10 +144,10 @@ else
if [[ "$__wrd" != -* || "${FAST_HIGHLIGHT[chrome-git-occurred-double-hyphen]}" -eq 1 ]]; then
(( FAST_HIGHLIGHT[chroma-git-counter] += 1, __idx1 = FAST_HIGHLIGHT[chroma-git-counter] ))
if (( __idx1 == 2 )); then
- -fast-run-git-command "git remote" "chroma-git-remotes" ""
+ .fast-run-git-command "git remote" "chroma-git-remotes" ""
else
__wrd="${__wrd%%:*}"
- -fast-run-git-command "git for-each-ref --format='%(refname:short)' refs/heads" "chroma-git-branches" "refs/heads"
+ .fast-run-git-command "git for-each-ref --format='%(refname:short)' refs/heads" "chroma-git-branches" "refs/heads"
fi
# if remote/ref exists
if [[ -n ${__lines_list[(r)$__wrd]} ]]; then
@@ -173,7 +173,7 @@ else
fi
elif (( ${FAST_HIGHLIGHT[chroma-git-fetch-multiple]} )) \
&& [[ "$__wrd" != -* || "${FAST_HIGHLIGHT[chrome-git-occurred-double-hyphen]}" -eq 1 ]]; then
- -fast-run-git-command "git remote" "chroma-git-remotes" ""
+ .fast-run-git-command "git remote" "chroma-git-remotes" ""
if [[ -n ${__lines_list[(r)$__wrd]} ]]; then
__style=${FAST_THEME_NAME}correct-subtle
fi
@@ -283,12 +283,12 @@ else
__style=${FAST_THEME_NAME}incorrect-subtle
fi
elif [[ "$__idx1" = 3 && "$FAST_HIGHLIGHT[chroma-git-remote-subcommand]" = "add" ]]; then
- -fast-run-git-command "git remote" "chroma-git-remotes" ""
+ .fast-run-git-command "git remote" "chroma-git-remotes" ""
if [[ -n ${__lines_list[(r)$__wrd]} ]]; then
__style=${FAST_THEME_NAME}incorrect-subtle
fi
elif [[ "$__idx1" = 3 && -n "$FAST_HIGHLIGHT[chroma-git-remote-subcommand]" ]]; then
- -fast-run-git-command "git remote" "chroma-git-remotes" ""
+ .fast-run-git-command "git remote" "chroma-git-remotes" ""
if [[ -n ${__lines_list[(r)$__wrd]} ]]; then
__style=${FAST_THEME_NAME}correct-subtle
else
@@ -305,7 +305,7 @@ else
FAST_HIGHLIGHT[chroma-git-branch-change]=1
return 1
elif [[ "$__wrd" != -* ]]; then
- -fast-run-git-command "git for-each-ref --format='%(refname:short)' refs/heads" "chroma-git-branches" "refs/heads"
+ .fast-run-git-command "git for-each-ref --format='%(refname:short)' refs/heads" "chroma-git-branches" "refs/heads"
if [[ -n ${__lines_list[(r)$__wrd]} ]]; then
__style=${FAST_THEME_NAME}correct-subtle
elif (( FAST_HIGHLIGHT[chroma-git-branch-change] )); then
@@ -328,8 +328,8 @@ else
if [[ "$__wrd" != -* ]]; then
(( FAST_HIGHLIGHT[chroma-git-counter] += 1, __idx1 = FAST_HIGHLIGHT[chroma-git-counter] ))
if [[ ${FAST_HIGHLIGHT[chroma-git-counter]} -eq 2 ]]; then
- -fast-run-git-command "git for-each-ref --format='%(refname:short)' refs/heads" "chroma-git-branches" "refs/heads"
- -fast-run-git-command "+git tag" "chroma-git-tags" ""
+ .fast-run-git-command "git for-each-ref --format='%(refname:short)' refs/heads" "chroma-git-branches" "refs/heads"
+ .fast-run-git-command "+git tag" "chroma-git-tags" ""
[[ -n ${__lines_list[(r)$__wrd]} ]] && __style=${FAST_THEME_NAME}incorrect-subtle
elif [[ ${FAST_HIGHLIGHT[chroma-git-counter]} -eq 3 ]]; then
fi
@@ -346,7 +346,7 @@ else
return 1;
;;
(3)
- -fast-run-git-command "git tag" "chroma-git-tags" ""
+ .fast-run-git-command "git tag" "chroma-git-tags" ""
[[ -n ${__lines_list[(r)$__wrd]} ]] && \
__style=${FAST_THEME_NAME}correct-subtle || \
__style=${FAST_THEME_NAME}incorrect-subtle
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-perl.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-perl.ch
index 49f0ad3..49f0ad3 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-perl.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-perl.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/→chroma/-podman.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-podman.ch
new file mode 100644
index 0000000..f74afd6
--- /dev/null
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-podman.ch
@@ -0,0 +1,90 @@
+# -*- mode: sh; sh-indentation: 4; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# Copyright (c) 2018 Sebastian Gniazdowski
+#
+# Chroma function for command `podman'. It verifies command line, by denoting
+# wrong and good arguments by color. Currently implemented: verification of
+# image IDs passed to: podman image rm <ID>.
+#
+# $1 - 0 or 1, denoting if it's first call to the chroma, or following one
+# $2 - the current token, also accessible by $__arg from the above scope -
+# basically a private copy of $__arg
+# $3 - a private copy of $_start_pos, i.e. the position of the token in the
+# command line buffer, used to add region_highlight entry (see man),
+# because Zsh colorizes by *ranges* in command line buffer
+# $4 - a private copy of $_end_pos from the above scope
+#
+
+(( next_word = 2 | 8192 ))
+
+local __first_call="$1" __wrd="$2" __start_pos="$3" __end_pos="$4"
+local __style
+integer __idx1 __idx2
+local -a __lines_list
+
+(( __first_call )) && {
+ # Called for the first time - new command
+ # FAST_HIGHLIGHT is used because it survives between calls, and
+ # allows to use a single global hash only, instead of multiple
+ # global variables
+ FAST_HIGHLIGHT[chroma-podman-counter]=0
+ FAST_HIGHLIGHT[chroma-podman-got-subcommand]=0
+ FAST_HIGHLIGHT[chroma-podman-subcommand]=""
+ FAST_HIGHLIGHT[chrome-podman-got-msg1]=0
+ return 1
+} || {
+ # Following call, i.e. not the first one
+
+ # Check if chroma should end – test if token is of type
+ # "starts new command", if so pass-through – chroma ends
+ [[ "$__arg_type" = 3 ]] && return 2
+
+ if (( in_redirection > 0 || this_word & 128 )) || [[ $__wrd == "<<<" ]]; then
+ return 1
+ fi
+
+ if [[ "$__wrd" = -* && ${FAST_HIGHLIGHT[chroma-podman-got-subcommand]} -eq 0 ]]; then
+ __style=${FAST_THEME_NAME}${${${__wrd:#--*}:+single-hyphen-option}:-double-hyphen-option}
+ else
+ if (( FAST_HIGHLIGHT[chroma-podman-got-subcommand] == 0 )); then
+ FAST_HIGHLIGHT[chroma-podman-got-subcommand]=1
+ FAST_HIGHLIGHT[chroma-podman-subcommand]="$__wrd"
+ __style=${FAST_THEME_NAME}subcommand
+ (( FAST_HIGHLIGHT[chroma-podman-counter] += 1 ))
+ else
+ __wrd="${__wrd//\`/x}"
+ __arg="${__arg//\`/x}"
+ __wrd="${(Q)__wrd}"
+ if [[ "${FAST_HIGHLIGHT[chroma-podman-subcommand]}" = "image" ]]; then
+ [[ "$__wrd" != -* ]] && {
+ (( FAST_HIGHLIGHT[chroma-podman-counter] += 1, __idx1 = FAST_HIGHLIGHT[chroma-podman-counter] ))
+
+ if (( __idx1 == 2 )); then
+ __style=${FAST_THEME_NAME}subcommand
+ elif (( __idx1 == 3 )); then
+ .fast-run-command "podman images -q" chroma-podman-list ""
+ [[ -n "${__lines_list[(r)$__wrd]}" ]] && {
+ (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}, __start >= 0 )) && \
+ reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[${FAST_THEME_NAME}correct-subtle]}")
+ } || {
+ (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}, __start >= 0 )) && \
+ reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[${FAST_THEME_NAME}incorrect-subtle]}")
+ }
+ fi
+ } || __style=${FAST_THEME_NAME}${${${__wrd:#--*}:+single-hyphen-option}:-double-hyphen-option}
+ else
+ return 1
+ fi
+ fi
+ fi
+}
+
+# Add region_highlight entry (via `reply' array)
+[[ -n "$__style" ]] && (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}, __start >= 0 )) && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[$__style]}")
+
+# We aren't passing-through, do obligatory things ourselves
+(( this_word = next_word ))
+_start_pos=$_end_pos
+
+return 0
+
+# vim:ft=zsh:et:sw=4
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-precommand.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-precommand.ch
index 7e85a06..7e85a06 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-precommand.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-precommand.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-printf.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-printf.ch
index 89d2789..89d2789 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-printf.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-printf.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-ruby.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-ruby.ch
index 3495cc8..3495cc8 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-ruby.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-ruby.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-scp.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-scp.ch
index d162284..d162284 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-scp.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-scp.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-sh.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-sh.ch
index 13c8ded..43fa8f9 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-sh.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-sh.ch
@@ -14,7 +14,7 @@
(( next_word = 2 | 8192 ))
-local __first_call="$1" __wrd="$2" __start_pos="$3" __end_pos="$4"
+local __first_call=$1 __wrd=$2 __start_pos=$3 __end_pos=$4
local __style
integer __idx1 __idx2
local -a __lines_list
@@ -28,31 +28,31 @@ local -a __lines_list
# Check if chroma should end – test if token is of type
# "starts new command", if so pass-through – chroma ends
- [[ "$__arg_type" = 3 ]] && return 2
+ [[ $__arg_type = 3 ]] && return 2
if (( in_redirection > 0 || this_word & 128 )) || [[ $__wrd == "<<<" ]]; then
return 1
fi
- __wrd="${${${(Q)__wrd}#[\"\']}%[\"\']}"
- if [[ "$__wrd" = -* && "$__wrd" != -*c* ]]; then
+ __wrd=${${${(Q)__wrd}#[\"\']}%[\"\']}
+ if [[ $__wrd = -* && $__wrd != -*c* ]]; then
__style=${FAST_THEME_NAME}${${${__wrd:#--*}:+single-hyphen-option}:-double-hyphen-option}
else
if (( FAST_HIGHLIGHT[chrome-git-got-c] == 1 )); then
for (( __idx1 = 1, __idx2 = 1; __idx2 <= __asize; ++ __idx1 )); do
- [[ "${__arg[__idx2]}" = "${__wrd[__idx1]}" ]] && break
- while [[ "${__arg[__idx2]}" != "${__wrd[__idx1]}" ]]; do
+ [[ ${__arg[__idx2]} = ${__wrd[__idx1]} ]] && break
+ while [[ ${__arg[__idx2]} != ${__wrd[__idx1]} ]]; do
(( ++ __idx2 ))
(( __idx2 > __asize )) && { __idx2=0; break; }
done
(( __idx2 == 0 )) && break
- [[ "${__arg[__idx2]}" = "${__wrd[__idx1]}" ]] && break
+ [[ ${__arg[__idx2]} = ${__wrd[__idx1]} ]] && break
done
FAST_HIGHLIGHT[chrome-git-got-c]=0
(( _start_pos-__PBUFLEN >= 0 )) && \
-fast-highlight-process "$PREBUFFER" "${__wrd}" "$(( __start_pos + __idx2 - 1 ))"
- elif [[ "$__wrd" = -*c* ]]; then
+ elif [[ $__wrd = -*c* ]]; then
FAST_HIGHLIGHT[chrome-git-got-c]=1
else
return 1
@@ -61,7 +61,7 @@ local -a __lines_list
}
# Add region_highlight entry (via `reply' array)
-[[ -n "$__style" ]] && (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}, __start >= 0 )) && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[$__style]}")
+[[ -n $__style ]] && (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}, __start >= 0 )) && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[$__style]}")
# We aren't passing-through, do obligatory things ourselves
(( this_word = next_word ))
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-source.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-source.ch
index dc27e76..dc27e76 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-source.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-source.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-ssh.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-ssh.ch
index 879158f..1d5e257 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-ssh.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-ssh.ch
@@ -25,7 +25,7 @@ setopt extended_glob warn_create_global typeset_silent
local __first_call="$1" __wrd="$2" __start_pos="$3" __end_pos="$4"
local __style check_port=0 host_start_offset host_style user_style possible_host
-local -a match mbegin mend completions_user completions_host
+local -a match mbegin mend completions_users completions_host
# First call, i.e. command starts, i.e. "grep" token etc.
(( __first_call )) && {
@@ -70,11 +70,14 @@ local -a match mbegin mend completions_user completions_host
# Zstyle clobbers reply for sure
zstyle -a ":completion:*:users" users completions_users
}
- (( ! $#completions_users )) && completions_users=(${(k)userdirs})
if (( $#completions_users )); then
[[ $match[2] = ${~${:-(${(j:|:)completions_users})}} ]] \
&& user_style=${FAST_THEME_NAME}correct-subtle \
|| user_style=${FAST_THEME_NAME}incorrect-subtle
+ elif (( $#userdirs )); then
+ [[ -n $userdirs[$match[2]] ]] \
+ && user_style=${FAST_THEME_NAME}correct-subtle \
+ || user_style=${FAST_THEME_NAME}incorrect-subtle
fi
[[ -n $user_style ]] \
&& (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}-(mend[5]-mend[2]), __start >= 0 )) \
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-subcommand.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-subcommand.ch
index 0665548..0665548 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-subcommand.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-subcommand.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/→chroma/-subversion.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-subversion.ch
new file mode 100644
index 0000000..4149cc6
--- /dev/null
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-subversion.ch
@@ -0,0 +1,250 @@
+# -*- mode: sh; sh-indentation: 4; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# -------------------------------------------------------------------------------------------------
+# Copyright (c) 2018 Sebastian Gniazdowski
+# Copyright (C) 2019 by Philippe Troin (F-i-f on GitHub)
+# All rights reserved.
+#
+# The only licensing for this file follows.
+#
+# Redistribution and use in source and binary forms, with or without modification, are permitted
+# provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice, this list of conditions
+# and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright notice, this list of
+# conditions and the following disclaimer in the documentation and/or other materials provided
+# with the distribution.
+# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
+# may be used to endorse or promote products derived from this software without specific prior
+# written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# -------------------------------------------------------------------------------------------------
+
+→chroma/-subversion.ch/parse-revision() {
+ setopt local_options extendedglob warn_create_global typeset_silent
+ local __wrd="$1" __start_pos="$2" __end_pos="$3" __style __start __end
+ case $__wrd in
+ (r|)[0-9]##) __style=${FAST_THEME_NAME}mathnum ;;
+ (HEAD|BASE|COMITTED|PREV)) __style=${FAST_THEME_NAME}correct-subtle ;;
+ '{'[^}]##'}') __style=${FAST_THEME_NAME}subtle-bg ;;
+ *) __style=${FAST_THEME_NAME}incorrect-subtle ;;
+ esac
+ (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}, __start >= 0 )) && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[$__style]}")
+}
+
+→chroma/-subversion.ch/parse-target() {
+ setopt local_options extendedglob warn_create_global typeset_silent
+ local __wrd="$1" __start_pos="$2" __end_pos="$3" __style __start __end
+ if [[ $__wrd == *@[^/]# ]]
+ then
+ local place=${__wrd%@[^/]#}
+ local rev=$__wrd[$(($#place+2)),$#__wrd]
+ if [[ -e $place ]]; then
+ local __style
+ [[ -d $place ]] && __style="${FAST_THEME_NAME}path-to-dir" || __style="${FAST_THEME_NAME}path"
+ (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}-$#rev-1, __start >= 0 )) \
+ && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[$__style]}")
+ fi
+ (( __start=__start_pos-${#PREBUFFER}+$#place, __end=__end_pos-${#PREBUFFER}-$#rev, __start >= 0 )) \
+ && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[${FAST_THEME_NAME}for-loop-separator]}")
+ →chroma/-subversion.ch/parse-revision $rev $((__start_pos+$#place+1)) $__end_pos
+ else
+ return 1
+ fi
+}
+
+setopt local_options extendedglob warn_create_global
+
+# Keep chroma-takever state meaning: until ;, handle highlighting via chroma.
+# So the below 8192 assignment takes care that next token will be routed to chroma.
+(( next_word = 2 | 8192 ))
+
+local __first_call="$1" __wrd="$2" __start_pos="$3" __end_pos="$4"
+local __style
+integer __idx1 __idx2
+
+(( __first_call )) && {
+ # Called for the first time - new command.
+ # FAST_HIGHLIGHT is used because it survives between calls, and
+ # allows to use a single global hash only, instead of multiple
+ # global string variables.
+ FAST_HIGHLIGHT[subversion-command]=$__wrd
+ FAST_HIGHLIGHT[subversion-option-argument]=
+ FAST_HIGHLIGHT[subversion-subcommand]=
+ FAST_HIGHLIGHT[subversion-subcommand-arguments]=0
+
+ # Set style for region_highlight entry. It is used below in
+ # '[[ -n "$__style" ]] ...' line, which adds highlight entry,
+ # like "10 12 fg=green", through `reply' array.
+ #
+ # Could check if command `example' exists and set `unknown-token'
+ # style instead of `command'
+ __style=${FAST_THEME_NAME}command
+
+} || {
+ # Following call, i.e. not the first one
+
+ # Check if chroma should end – test if token is of type
+ # "starts new command", if so pass-through – chroma ends
+ [[ "$__arg_type" = 3 ]] && return 2
+
+ if (( in_redirection > 0 || this_word & 128 )) || [[ $__wrd == "<<<" ]]; then
+ return 1
+ fi
+
+ if [[ "$__wrd" = -* ]]; then
+ # Detected option, add style for it.
+ [[ "$__wrd" = --* ]] && __style=${FAST_THEME_NAME}double-hyphen-option || \
+ __style=${FAST_THEME_NAME}single-hyphen-option
+ case $FAST_HIGHLIGHT[subversion-command]/$FAST_HIGHLIGHT[subversion-subcommand] in
+ svn/)
+ case $__wrd in
+ --username|-u) FAST_HIGHLIGHT[subversion-option-argument]=any;;
+ --password|-p) FAST_HIGHLIGHT[subversion-option-argument]=any;;
+ --config-(dir|option)) FAST_HIGHLIGHT[subversion-option-argument]=any;;
+ esac
+ ;;
+ svn/?*)
+ case $__wrd in
+ --accept) FAST_HIGHLIGHT[subversion-option-argument]=accept;;
+ --change|-c) FAST_HIGHLIGHT[subversion-option-argument]=revision;;
+ --changelist|--cl) FAST_HIGHLIGHT[subversion-option-argument]=any;;
+ --(set-|)depth) FAST_HIGHLIGHT[subversion-option-argument]=depth;;
+ --diff(3|)-cmd) FAST_HIGHLIGHT[subversion-option-argument]=cmd;;
+ --editor-cmd) FAST_HIGHLIGHT[subversion-option-argument]=cmd;;
+ --encoding) FAST_HIGHLIGHT[subversion-option-argument]=any;;
+ --file) FAST_HIGHLIGHT[subversion-option-argument]=any;;
+ --limit|-l) FAST_HIGHLIGHT[subversion-option-argument]=number;;
+ --message|-m) FAST_HIGHLIGHT[subversion-option-argument]=any;;
+ --native-eol) FAST_HIGHLIGHT[subversion-option-argument]=eol;;
+ --new|--old) FAST_HIGHLIGHT[subversion-option-argument]=target;;
+ --revision|-r) FAST_HIGHLIGHT[subversion-option-argument]=revision-pair;;
+ --show-revs) FAST_HIGHLIGHT[subversion-option-argument]=show-revs;;
+ --strip) FAST_HIGHLIGHT[subversion-option-argument]=number;;
+ --with-revprop) FAST_HIGHLIGHT[subversion-option-argument]=revprop;;
+ esac
+ ;;
+ svnadmin/*)
+ case $__wrd in
+ --config-dir) FAST_HIGHLIGHT[subversion-option-argument]=any;;
+ --fs-type) FAST_HIGHLIGHT[subversion-option-argument]=any;;
+ --memory-cache-size|-M) FAST_HIGHLIGHT[subversion-option-argument]=number;;
+ --parent-dir) FAST_HIGHLIGHT[subversion-option-argument]=any;;
+ --revision|-r) FAST_HIGHLIGHT[subversion-option-argument]=revision-pair;;
+ esac
+ ;;
+ svndumpfilter/*)
+ case $__wrd in
+ --targets) FAST_HIGHLIGHT[subversion-option-argument]=any;;
+ esac
+ ;;
+ esac
+ elif [[ -n $FAST_HIGHLIGHT[subversion-option-argument] ]]; then
+ case $FAST_HIGHLIGHT[subversion-option-argument] in
+ any)
+ FAST_HIGHLIGHT[subversion-option-argument]=
+ return 1
+ ;;
+ accept)
+ [[ $__wrd = (p(|ostpone)|e(|dit)|l(|aunch)|base|working|recommended|[mt][cf]|(mine|theirs)-(conflict|full)) ]] \
+ && __style=${FAST_THEME_NAME}correct-subtle \
+ || __style=${FAST_THEME_NAME}incorrect-subtle
+ ;;
+ depth)
+ [[ $__wrd = (empty|files|immediates|infinity) ]] \
+ && __style=${FAST_THEME_NAME}correct-subtle \
+ || __style=${FAST_THEME_NAME}incorrect-subtle
+ ;;
+ number)
+ [[ $__wrd = [0-9]## ]] \
+ && __style=${FAST_THEME_NAME}mathnum \
+ || __style=${FAST_THEME_NAME}incorrect-subtle
+ ;;
+ eol)
+ [[ $__wrd = (CR(|LF)|LF) ]] \
+ && __style=${FAST_THEME_NAME}correct-subtle \
+ || __style=${FAST_THEME_NAME}incorrect-subtle
+ ;;
+ show-revs)
+ [[ $__wrd = (merged|eligible) ]] \
+ && __style=${FAST_THEME_NAME}correct-subtle \
+ || __style=${FAST_THEME_NAME}incorrect-subtle
+ ;;
+ revision)
+ →chroma/-subversion.ch/parse-revision $__wrd $__start_pos $__end_pos
+ ;;
+ revision-pair)
+ local -a match mbegin mend
+ if [[ $__wrd = (#b)(\{[^}]##\}|[^:]##)(:)(*) ]]; then
+ →chroma/-subversion.ch/parse-revision $match[1] $__start_pos $(( __end_pos - ( mend[3]-mend[2] ) - 1 ))
+ →chroma/-subversion.ch/parse-revision $match[3] $(( __start_pos + ( mbegin[3]-mbegin[1] ) )) $__end_pos
+ (( __start=__start_pos-${#PREBUFFER}+(mbegin[2]-mbegin[1]), __end=__end_pos-${#PREBUFFER}-(mend[3]-mend[2]), __start >= 0 )) \
+ && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[${FAST_THEME_NAME}for-loop-separator]}")
+ else
+ →chroma/-subversion.ch/parse-revision $__wrd $__start_pos $__end_pos
+ fi
+ ;;
+ target)
+ →chroma/-subversion.ch/parse-target $__wrd $__start_pos $__end_pos || return $?
+ ;;
+ cmd)
+ this_word=1
+ return 1
+ ;;
+ esac
+ FAST_HIGHLIGHT[subversion-option-argument]=
+ elif [[ -z $FAST_HIGHLIGHT[subversion-subcommand] ]]
+ then
+ FAST_HIGHLIGHT[subversion-subcommand]=$__wrd
+ local subcmds
+ case $FAST_HIGHLIGHT[subversion-command] in
+ svn) subcmds='(add|auth|blame|praise|annotate|ann|cat|changelist|cl|checkout|co|cleanup|commit|ci|copy|cp|delete|del|remove|rm|diff|di|export|help|\?|h|import|info|list|ls|lock|log|merge|mergeinfo|mkdir|move|mv|rename|ren|patch|propdel|pdel|pd|propedit|pedit|pe|propget|pget|pg|proplist|plist|pl|propset|pset|ps|relocate|resolve|resolved|revert|status|stat|st|switch|sw|unlock|update|up|upgrade|x-shelf-diff|x-shelf-drop|x-shelf-list|x-shelves|x-shelf-list-by-paths|x-shelf-log|x-shelf-save|x-shelve|x-unshelve)' ;;
+ svnadmin) subcmds="(crashtest|create|delrevprop|deltify|dump|dump-revprops|freeze|help|\?|h|hotcopy|info|list-dblogs|list-unused-dblogs|load|load-revprops|lock|lslocks|lstxns|pack|recover|rmlocks|rmtxns|setlog|setrevprop|setuuid|unlock|upgrade|verify)";;
+ svndumpfilter) subcmds='(include|exclude|help|\?)';;
+ esac
+ [[ $FAST_HIGHLIGHT[subversion-subcommand] = $~subcmds ]] \
+ && __style=${FAST_THEME_NAME}subcommand \
+ || __style=${FAST_THEME_NAME}incorrect-subtle
+ FAST_HIGHLIGHT[subversion-subcommand-arguments]=0
+ else
+ (( FAST_HIGHLIGHT[subversion-subcommand-arguments]+=1 ))
+ if [[ ( $FAST_HIGHLIGHT[subversion-subcommand] == (checkout|co|export|log|merge|switch|sw) && $FAST_HIGHLIGHT[subversion-subcommand-arguments] -eq 1 ) \
+ || $FAST_HIGHLIGHT[subversion-subcommand] == (blame|praise|annotate|ann|cat|copy|cp|diff|info|list|ls|mergeinfo) ]]; then
+ →chroma/-subversion.ch/parse-target $__wrd $__start_pos $__end_pos || return $?
+ else
+ return 1
+ fi
+ fi
+}
+
+# Add region_highlight entry (via `reply' array).
+# If 1 will be added to __start_pos, this will highlight "oken".
+# If 1 will be subtracted from __end_pos, this will highlight "toke".
+# $PREBUFFER is for specific situations when users does command \<ENTER>
+# i.e. when multi-line command using backslash is entered.
+#
+# This is a common place of adding such entry, but any above code can do
+# it itself (and it does in other chromas) and skip setting __style to
+# this way disable this code.
+[[ -n "$__style" ]] && (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}, __start >= 0 )) && reply+=("$__start $__end ${FAST_HIGHLIGHT_STYLES[$__style]}")
+
+# We aren't passing-through, do obligatory things ourselves.
+# _start_pos=$_end_pos advainces pointers in command line buffer.
+#
+# To pass through means to `return 1'. The highlighting of
+# this single token is then done by fast-syntax-highlighting's
+# main code and chroma doesn't have to do anything.
+(( this_word = next_word ))
+_start_pos=$_end_pos
+
+return 0
+
+# vim:ft=zsh:et:sw=4
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-vim.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-vim.ch
index b3fecd1..b3fecd1 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-vim.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-vim.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-whatis.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-whatis.ch
index ce59e8f..c0c90c6 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-whatis.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-whatis.ch
@@ -3,6 +3,18 @@
(( next_word = 2 | 8192 ))
local THEFD check __first_call="$1" __wrd="$2" __start_pos="$3" __end_pos="$4"
+local __style __term __section __section_flag
+
+# extact manual subsection
+# NOTE: __term should be separated from __wrd to prevent incorrect cache hits
+if command -v mandb > /dev/null; then
+ __term="${__wrd%.[0-8n](|p|type|const|head|perl)}"
+ __section="${${2#$__term}#.}"
+else
+ __term=$__wrd
+fi
+
+[[ -n $__section ]] && __section_flag="-s $__section"
(( ! ${+FAST_HIGHLIGHT[whatis_chroma_callback_was_ran]} )) && \
FAST_HIGHLIGHT[whatis_chroma_callback_was_ran]=0
@@ -18,7 +30,7 @@ local THEFD check __first_call="$1" __wrd="$2" __start_pos="$3" __end_pos="$4"
local THEFD="$1" input check=2 nl=$'\n' __wrd __style
- -fast-zts-read-all "$THEFD" input
+ .fast-zts-read-all "$THEFD" input
zle -F "$THEFD"
exec {THEFD}<&-
@@ -96,7 +108,7 @@ else
print "$__wrd"
(( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER} ))
print "$__start/$__end"
- LANG=C whatis "$__wrd" 2>/dev/null
+ LANG=C whatis "${(z)__section_flag}" "$__term" 2>/dev/null
)
command true # see above
zle -F ${${FAST_HIGHLIGHT[whatis_chroma_zle_-F_have_-w_opt]:#0}:+-w} "$THEFD" -fast-whatis-chroma-callback
@@ -106,12 +118,15 @@ else
print "$__wrd"
(( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER} ))
print "$__start/$__end"
- LANG=C whatis "$__wrd" &> /dev/null
+ LANG=C whatis "${(z)__section_flag}" "$__term" &> /dev/null
print "$?"
)
command true
zle -F ${${FAST_HIGHLIGHT[whatis_chroma_zle_-F_have_-w_opt]:#0}:+-w} "$THEFD" -fast-whatis-chroma-callback
fi
+ __style=${FAST_HIGHLIGHT_STYLES[${FAST_THEME_NAME}incorrect-subtle]}
+ (( __start=__start_pos-${#PREBUFFER}, __end=__end_pos-${#PREBUFFER}, __start >= 0 )) && \
+ reply+=("$__start $__end $__style")
else
check=${FAST_HIGHLIGHT[whatis-cache-$__wrd]}
if (( check )) then
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-which.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-which.ch
index 5a5d7b3..5a5d7b3 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-which.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-which.ch
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-zplugin.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-zinit.ch
index 2302da5..06637a8 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/-zplugin.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/-zinit.ch
@@ -4,12 +4,12 @@
# Chroma function for command `git'. It colorizes the part of command
# line that holds `git' invocation.
-(( FAST_HIGHLIGHT[-zplugin.ch-chroma-def] )) && return 1
+(( FAST_HIGHLIGHT[-zinit.ch-chroma-def] )) && return 1
-FAST_HIGHLIGHT[-zplugin.ch-chroma-def]=1
+FAST_HIGHLIGHT[-zinit.ch-chroma-def]=1
-typeset -gA fsh__zplugin__chroma__def
-fsh__zplugin__chroma__def=(
+typeset -gA fsh__zinit__chroma__def
+fsh__zinit__chroma__def=(
##
## No subcommand
##
@@ -17,7 +17,7 @@ fsh__zplugin__chroma__def=(
subcmd:NULL "NULL_0_opt"
NULL_0_opt "(-help|--help|-h)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
"subcommands" "(help|man|self-update|cd|times|zstatus|load|light|unload|snippet|ls|ice|<ice|specification>|update|status|report|delete|loaded|list|cd|create|edit|glance|stress|changes|recently|clist|completions|cdisable|cname|cenable|cname|creinstall|cuninstall|csearch|compinit|dtrace|dstart|dstop|dunload|dreport|dclear|compile|uncompile|compiled|cdlist|cdreplay|cdclear|srv|recall|env-whitelist|bindkeys|module)"
@@ -35,7 +35,7 @@ fsh__zplugin__chroma__def=(
subcmd:ice "ICE_#_arg // NO_MATCH_#_opt"
- "ICE_#_arg" "NO-OP // :::chroma/-zplugin-check-ice-mod"
+ "ICE_#_arg" "NO-OP // ::→chroma/-zinit-check-ice-mod"
## }}}
@@ -48,9 +48,9 @@ fsh__zplugin__chroma__def=(
NO_MATCH_#_arg"
SNIPPET_0_opt "(-f|--command)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
- SNIPPET_1_arg "NO-OP // :::chroma/-zplugin-verify-snippet"
+ SNIPPET_1_arg "NO-OP // ::→chroma/-zinit-verify-snippet"
## }}}
@@ -59,12 +59,26 @@ fsh__zplugin__chroma__def=(
##
## {{{
- "subcmd:(load|light|compile|stress|edit|glance|recall|status|cd|changes)"
+ "subcmd:load"
"LOAD_1_arg // LOAD_2_arg // NO_MATCH_#_opt // NO_MATCH_#_arg"
- LOAD_1_arg "NO-OP // :::chroma/-zplugin-verify-plugin"
+ LOAD_1_arg "NO-OP // ::→chroma/-zinit-verify-plugin"
- LOAD_2_arg "NO-OP // :::chroma/-zplugin-verify-plugin"
+ LOAD_2_arg "NO-OP // ::→chroma/-zinit-verify-plugin"
+
+ ## }}}
+
+ ##
+ ## `compile|uncompile|stress|edit|glance|recall|status|cd|changes`
+ ##
+ ## {{{
+
+ "subcmd:(compile|uncompile|stress|edit|glance|recall|status|cd|changes)"
+ "PLGSNP_1_arg // PLGSNP_2_arg // NO_MATCH_#_opt // NO_MATCH_#_arg"
+
+ PLGSNP_1_arg "NO-OP // ::→chroma/-zinit-verify-plugin-or-snippet"
+
+ PLGSNP_2_arg "NO-OP // ::→chroma/-zinit-verify-plugin-or-snippet"
## }}}
@@ -73,16 +87,12 @@ fsh__zplugin__chroma__def=(
##
## {{{
- subcmd:update "UPDATE_0_opt // LOAD_1_arg // LOAD_2_arg //
+ subcmd:update "UPDATE_0_opt // PLGSNP_1_arg // PLGSNP_2_arg //
NO_MATCH_#_opt // NO_MATCH_#_arg"
UPDATE_0_opt "
- (--all|-r|--reset|-q|--quiet)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
-
- LOAD_1_arg "NO-OP // :::chroma/-zplugin-verify-plugin"
-
- LOAD_2_arg "NO-OP // :::chroma/-zplugin-verify-plugin"
+ (--all|-r|--reset|-q|--quiet|-p|--parallel)
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
## }}}
@@ -95,21 +105,37 @@ fsh__zplugin__chroma__def=(
NO_MATCH_#_arg"
LIGHT_0_opt "-b
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
## }}}
##
- ## `unload|report'
+ ## `unload'
##
## {{{
- subcmd:"(unload|report)" "UNLOAD_1_arg // UNLOAD_2_arg // NO_MATCH_#_opt //
+ subcmd:unload "UNLOAD_0_opt // UNLOAD_1_arg // UNLOAD_2_arg // NO_MATCH_#_opt //
NO_MATCH_#_arg"
- UNLOAD_1_arg "NO-OP // :::chroma/-zplugin-verify-loaded-plugin"
+ UNLOAD_0_opt "-q
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
+
+ UNLOAD_1_arg "NO-OP // ::→chroma/-zinit-verify-loaded-plugin"
+
+ UNLOAD_2_arg "NO-OP // ::→chroma/-zinit-verify-loaded-plugin"
- UNLOAD_2_arg "NO-OP // :::chroma/-zplugin-verify-loaded-plugin"
+ ## }}}
+
+ ##
+ ## `report'
+ ##
+ ## {{{
+
+ subcmd:report "REPORT_0_opt // UNLOAD_1_arg // UNLOAD_2_arg // NO_MATCH_#_opt //
+ NO_MATCH_#_arg"
+
+ REPORT_0_opt "--all
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
## }}}
@@ -119,15 +145,11 @@ fsh__zplugin__chroma__def=(
## {{{
"subcmd:delete"
- "DELETE_0_opt // LOAD_1_arg // LOAD_2_arg // NO_MATCH_#_opt // NO_MATCH_#_arg"
+ "DELETE_0_opt // PLGSNP_1_arg // PLGSNP_2_arg // NO_MATCH_#_opt // NO_MATCH_#_arg"
DELETE_0_opt "
(--all|--clean|-y|--yes|-q|--quiet)
- <<>> NO-OP // :::chroma/main-chroma-std-aopt-action"
-
- LOAD_1_arg "NO-OP // :::chroma/-zplugin-verify-plugin"
-
- LOAD_2_arg "NO-OP // :::chroma/-zplugin-verify-plugin"
+ <<>> NO-OP // ::→chroma/main-chroma-std-aopt-action"
## }}}
@@ -138,7 +160,7 @@ fsh__zplugin__chroma__def=(
subcmd:cenable "COMPLETION_1_arg // NO_MATCH_#_opt // NO_MATCH_#_arg"
- COMPLETION_1_arg "NO-OP // :::chroma/-zplugin-verify-disabled-completion"
+ COMPLETION_1_arg "NO-OP // ::→chroma/-zinit-verify-disabled-completion"
## }}}
@@ -149,7 +171,7 @@ fsh__zplugin__chroma__def=(
subcmd:cdisable "DISCOMPLETION_1_arg // NO_MATCH_#_opt // NO_MATCH_#_arg"
- DISCOMPLETION_1_arg "NO-OP // :::chroma/-zplugin-verify-completion"
+ DISCOMPLETION_1_arg "NO-OP // ::→chroma/-zinit-verify-completion"
## }}}
@@ -161,7 +183,7 @@ fsh__zplugin__chroma__def=(
subcmd:uncompile "UNCOMPILE_1_arg // NO_MATCH_#_opt // NO_MATCH_#_arg"
- UNCOMPILE_1_arg "NO-OP // :::chroma/-zplugin-verify-compiled-plugin"
+ UNCOMPILE_1_arg "NO-OP // ::→chroma/-zinit-verify-compiled-plugin"
## }}}
@@ -171,26 +193,26 @@ fsh__zplugin__chroma__def=(
## {{{
"subcmd:*" "CATCH_ALL_#_opt"
- "CATCH_ALL_#_opt" "* <<>> NO-OP // :::chroma/main-chroma-std-aopt-SEMI-action"
+ "CATCH_ALL_#_opt" "* <<>> NO-OP // ::→chroma/main-chroma-std-aopt-SEMI-action"
## }}}
)
-#:chroma/-zplugin-first-call() {
+#→chroma/-zinit-first-call() {
# This is being done in the proper place - in -fast-highlight-process
- #FAST_HIGHLIGHT[chroma-zplugin-ice-elements-svn]=0
+ #FAST_HIGHLIGHT[chroma-zinit-ice-elements-svn]=0
#}
-:chroma/-zplugin-verify-plugin() {
+→chroma/-zinit-verify-plugin() {
local _scmd="$1" _wrd="$4"
[[ -d "$_wrd" ]] && \
{ __style=${FAST_THEME_NAME}correct-subtle; return 0; }
typeset -a plugins
- plugins=( "${ZPLGM[PLUGINS_DIR]}"/*(N:t) )
+ plugins=( "${ZINIT[PLUGINS_DIR]}"/*(N:t) )
plugins=( "${plugins[@]//---//}" )
- plugins=( "${plugins[@]:#_local/zplugin}" )
+ plugins=( "${plugins[@]:#_local/zinit}" )
plugins=( "${plugins[@]:#custom}" )
[[ -n "${plugins[(r)$_wrd]}" ]] && \
@@ -200,10 +222,16 @@ fsh__zplugin__chroma__def=(
return 0
}
-:chroma/-zplugin-verify-loaded-plugin() {
+→chroma/-zinit-verify-plugin-or-snippet() {
+ →chroma/-zinit-verify-plugin "$1" "" "" "$4" || \
+ →chroma/-zinit-verify-snippet "$1" "" "" "$4"
+ return $?
+}
+
+→chroma/-zinit-verify-loaded-plugin() {
local _scmd="$1" _wrd="$4"
typeset -a plugins absolute1 absolute2 absolute3 normal
- plugins=( "${ZPLG_REGISTERED_PLUGINS[@]:#_local/zplugin}" )
+ plugins=( "${ZINIT_REGISTERED_PLUGINS[@]:#_local/zinit}" )
normal=( "${plugins[@]:#%*}" )
absolute1=( "${(M)plugins[@]:#%*}" )
absolute1=( "${absolute1[@]/\%\/\//%/}" )
@@ -220,11 +248,11 @@ fsh__zplugin__chroma__def=(
return 0
}
-:chroma/-zplugin-verify-completion() {
+→chroma/-zinit-verify-completion() {
local _scmd="$1" _wrd="$4"
# Find enabled completions
typeset -a completions
- completions=( "${ZPLGM[COMPLETIONS_DIR]}"/_*(N:t) )
+ completions=( "${ZINIT[COMPLETIONS_DIR]}"/_*(N:t) )
completions=( "${completions[@]#_}" )
[[ -n "${completions[(r)${_wrd#_}]}" ]] && \
@@ -234,11 +262,11 @@ fsh__zplugin__chroma__def=(
return 0
}
-:chroma/-zplugin-verify-disabled-completion() {
+→chroma/-zinit-verify-disabled-completion() {
local _scmd="$1" _wrd="$4"
# Find enabled completions
typeset -a completions
- completions=( "${ZPLGM[COMPLETIONS_DIR]}"/[^_]*(N:t) )
+ completions=( "${ZINIT[COMPLETIONS_DIR]}"/[^_]*(N:t) )
[[ -n "${completions[(r)${_wrd#_}]}" ]] && \
__style=${FAST_THEME_NAME}correct-subtle || \
@@ -247,18 +275,18 @@ fsh__zplugin__chroma__def=(
return 0
}
-:chroma/-zplugin-verify-compiled-plugin() {
+→chroma/-zinit-verify-compiled-plugin() {
local _scmd="$1" _wrd="$4"
typeset -a plugins
- plugins=( "${ZPLGM[PLUGINS_DIR]}"/*(N) )
+ plugins=( "${ZINIT[PLUGINS_DIR]}"/*(N) )
typeset -a show_plugins p matches
for p in "${plugins[@]}"; do
matches=( $p/*.zwc(N) )
if [ "$#matches" -ne "0" ]; then
p="${p:t}"
- [[ "$p" = (_local---zplugin|custom) ]] && continue
+ [[ "$p" = (_local---zinit|custom) ]] && continue
p="${p//---//}"
show_plugins+=( "$p" )
fi
@@ -269,18 +297,18 @@ fsh__zplugin__chroma__def=(
return 1
}
-:chroma/-zplugin-verify-snippet() {
+→chroma/-zinit-verify-snippet() {
local _scmd="$1" url="$4" dirname local_dir
url="${${url#"${url%%[! $'\t']*}"}%/}"
- id_as="${FAST_HIGHLIGHT[chroma-zplugin-ice-elements-id-as]:-${ZPLG_ICE[id-as]:-$url}}"
+ id_as="${FAST_HIGHLIGHT[chroma-zinit-ice-elements-id-as]:-${ZINIT_ICE[id-as]:-$url}}"
filename="${${id_as%%\?*}:t}"
dirname="${${id_as%%\?*}:t}"
local_dir="${${${id_as%%\?*}:h}/:\/\//--}"
[[ "$local_dir" = "." ]] && local_dir="" || local_dir="${${${${${local_dir#/}//\//--}//=/--EQ--}//\?/--QM--}//\&/--AMP--}"
- local_dir="${ZPLGM[SNIPPETS_DIR]}${local_dir:+/$local_dir}"
+ local_dir="${ZINIT[SNIPPETS_DIR]}${local_dir:+/$local_dir}"
- (( ${+ZPLG_ICE[svn]} || ${FAST_HIGHLIGHT[chroma-zplugin-ice-elements-svn]} )) && {
+ (( ${+ZINIT_ICE[svn]} || ${FAST_HIGHLIGHT[chroma-zinit-ice-elements-svn]} )) && {
# TODO: handle the SVN path's specifics
[[ -d "$local_dir/$dirname" ]] && \
{ __style=${FAST_THEME_NAME}correct-subtle; return 0; } || \
@@ -293,16 +321,16 @@ fsh__zplugin__chroma__def=(
}
}
-:chroma/-zplugin-check-ice-mod() {
+→chroma/-zinit-check-ice-mod() {
local _scmd="$1" _wrd="$4"
[[ "$_wrd" = (svn(\'|\")*|svn) ]] && \
- FAST_HIGHLIGHT[chroma-zplugin-ice-elements-svn]=1
+ FAST_HIGHLIGHT[chroma-zinit-ice-elements-svn]=1
[[ "$_wrd" = (#b)(id-as(:|)(\'|\")(*)(\'|\")|id-as:(*)|id-as(*)) ]] && \
- FAST_HIGHLIGHT[chroma-zplugin-ice-elements-id-as]="${match[4]}${match[6]}${match[7]}"
+ FAST_HIGHLIGHT[chroma-zinit-ice-elements-id-as]="${match[4]}${match[6]}${match[7]}"
- # Copy from zplugin-autoload.zsh / -zplg-recall
+ # Copy from zinit-autoload.zsh / -zplg-recall
local -a ice_order nval_ices ext_val_ices
- ext_val_ices=( ${(@)${(@Ms.|.)ZPLG_EXTS[ice-mods]:#*\'\'*}//\'\'/} )
+ ext_val_ices=( ${(@)${(@Ms.|.)ZINIT_EXTS[ice-mods]:#*\'\'*}//\'\'/} )
ice_order=(
svn proto from teleid bindmap cloneopts id-as depth if wait load
@@ -310,20 +338,22 @@ fsh__zplugin__chroma__def=(
atinit atclone atload atpull nocd run-atpull has cloneonly make
service trackbinds multisrc compile nocompile nocompletions
reset-prompt wrap-track reset sh \!sh bash \!bash ksh \!ksh csh
- \!csh aliases countdown
+ \!csh aliases countdown ps-on-unload ps-on-update trigger-load
+ light-mode is-snippet atdelete pack git verbose on-update-of
+ subscribe param extract
# Include all additional ices – after
# stripping them from the possible: ''
- ${(@s.|.)${ZPLG_EXTS[ice-mods]//\'\'/}}
+ ${(@s.|.)${ZINIT_EXTS[ice-mods]//\'\'/}}
)
nval_ices=(
blockf silent lucid trackbinds cloneonly nocd run-atpull
nocompletions sh \!sh bash \!bash ksh \!ksh csh \!csh
- aliases countdown
+ aliases countdown light-mode is-snippet git verbose
# Include only those additional ices,
# don't have the '' in their name, i.e.
# aren't designed to hold value
- ${(@)${(@s.|.)ZPLG_EXTS[ice-mods]}:#*\'\'*}
+ ${(@)${(@s.|.)ZINIT_EXTS[ice-mods]}:#*\'\'*}
# Must be last
svn
diff --git a/.config/shell/zsh-fast-syntax-highlighting/:chroma/main-chroma.ch b/.config/shell/zsh-fast-syntax-highlighting/→chroma/main-chroma.ch
index 842bf8b..323a978 100644
--- a/.config/shell/zsh-fast-syntax-highlighting/:chroma/main-chroma.ch
+++ b/.config/shell/zsh-fast-syntax-highlighting/→chroma/main-chroma.ch
@@ -15,7 +15,7 @@
(( next_word = 2 | 8192 ))
-:chroma/main-chroma-print() {
+→chroma/main-chroma-print() {
(( FAST_HIGHLIGHT[DEBUG] )) && print "$@" >> /tmp/fsh-dbg
}
@@ -25,10 +25,10 @@ local __chroma_name="${1#\%}" __first_call="$2" __wrd="$3" __start_pos="$4" __en
[[ -z "$__chroma_name" ]] && return 1
# Load the fsh_{name-of-the-chroma}_chroma_def array
-(( !FAST_HIGHLIGHT[-${__chroma_name}.ch-chroma-def] )) && :chroma/-${__chroma_name}.ch
+(( !FAST_HIGHLIGHT[-${__chroma_name}.ch-chroma-def] )) && →chroma/-${__chroma_name}.ch
-:chroma/main-chroma-print -r -- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-:chroma/main-chroma-print -r -- @@@@@@@ local __chroma_name="${1#\%}" __first_call="$2" __wrd="$3" __start_pos="$4" __end_pos="$5" @@@@@@@
+→chroma/main-chroma-print -r -- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+→chroma/main-chroma-print -r -- @@@@@@@ local __chroma_name="${1#\%}" __first_call="$2" __wrd="$3" __start_pos="$4" __end_pos="$5" @@@@@@@
local __style __entry __value __action __handler __tmp __svalue __hspaces=$'\t ' __nl=$'\n' __ch_def_name
integer __idx1 __idx2 __start __end __ivalue __have_value=0
local -a __lines_list __avalue
@@ -38,7 +38,7 @@ map=( "#" "_H" "^" "_D" "*" "_S" )
(( __start=_start_pos-__PBUFLEN, __end=_end_pos-__PBUFLEN ))
# Handler that highlights the options
-:chroma/main-chroma-std-aopt-action() {
+→chroma/main-chroma-std-aopt-action() {
integer _start="$2" _end="$3"
local _scmd="$1" _wrd="$4"
@@ -51,7 +51,7 @@ map=( "#" "_H" "^" "_D" "*" "_S" )
}
# Handler that highlights the options' arguments
-:chroma/main-chroma-std-aopt-ARG-action() {
+→chroma/main-chroma-std-aopt-ARG-action() {
integer _start="$2" _end="$3"
local _scmd="$1" _wrd="$4"
@@ -61,7 +61,7 @@ map=( "#" "_H" "^" "_D" "*" "_S" )
}
# This handler also highlights explicit arguments, i.e. --opt=the-explicit-arg
-:chroma/main-chroma-std-aopt-SEMI-action() {
+→chroma/main-chroma-std-aopt-SEMI-action() {
integer _start="$2" _end="$3"
local _scmd="$1" _wrd="$4"
@@ -75,7 +75,7 @@ map=( "#" "_H" "^" "_D" "*" "_S" )
}
# A handler which verifies the token as an GIT url
-:chroma/main-chroma-std-verify-url() {
+→chroma/main-chroma-std-verify-url() {
setopt localoptions extendedglob
local _wrd="$4"
integer url_correct=0
@@ -99,21 +99,21 @@ map=( "#" "_H" "^" "_D" "*" "_S" )
}
# A handler which verifies the token as a shell wildcard
-:chroma/main-chroma-std-verify-pattern() {
+→chroma/main-chroma-std-verify-pattern() {
setopt localoptions extendedglob
local _wrd="$4"
__style=${FAST_THEME_NAME}globbing-ext
}
# Creates a hash table for given option set (an *_opt field in the chroma def.)
-:chroma/main-create-OPTION-hash.ch() {
+→chroma/main-create-OPTION-hash.ch() {
local __subcmd="$1" __option_set_id="$2" __the_hash_name="$3" __ __e __el __the_hash_name __var_name
local -a __split __sp __s
- :chroma/main-chroma-print -rl "======================" " **## STARTING ##** :chroma/main-##CREATE##-option-HASH.ch // subcmd:$__subcmd // option_set_id:$__option_set_id // h-nam:$__the_hash_name"
- :chroma/main-chroma-print "[D] Got option-set: ${(j:,:)__option_set_id}"
+ →chroma/main-chroma-print -rl "======================" " **## STARTING ##** →chroma/main-##CREATE##-option-HASH.ch // subcmd:$__subcmd // option_set_id:$__option_set_id // h-nam:$__the_hash_name"
+ →chroma/main-chroma-print "[D] Got option-set: ${(j:,:)__option_set_id}"
typeset -gA "$__the_hash_name"
- :chroma/main-chroma-print "[E] __the_hash_name ${__the_hash_name}:[$__option_set_id]"
+ →chroma/main-chroma-print "[E] __the_hash_name ${__the_hash_name}:[$__option_set_id]"
# Split on ||
__ch_def_name="fsh__${__chroma_name}__chroma__def[${__option_set_id}]"
@@ -122,13 +122,13 @@ map=( "#" "_H" "^" "_D" "*" "_S" )
# Remove only leading and trailing whitespace
__split=( "${__split[@]//((#s)[[:space:]]##|[[:space:]]##(#e))/}" )
- :chroma/main-chroma-print -rl "[F] Got ||-__split: _________" ${${(@)${${__split[@]##[[:space:]]##}[@]//[${__hspaces}]##/ }[@]//[${__nl}]##/$__nl}[@]//(#s)/:::} "_________"
+ →chroma/main-chroma-print -rl "[F] Got ||-__split: _________" ${${(@)${${__split[@]##[[:space:]]##}[@]//[${__hspaces}]##/ }[@]//[${__nl}]##/$__nl}[@]//(#s)/:::} "_________"
for __el in $__split; do
__sp=( "${(@s:<<>>:)__el}" )
[[ ${#__sp} -eq 1 && -z "${__sp[1]}" ]] && __sp=()
__sp=( "${__sp[@]//((#s)[[:space:]]##|[[:space:]]##(#e))/}" )
- :chroma/main-chroma-print -l -- "Processing an ||-part - got <<>>-split: _________" "${${__sp[@]}[@]/(#s)/-\\t}" "_________"
+ →chroma/main-chroma-print -l -- "Processing an ||-part - got <<>>-split: _________" "${${__sp[@]}[@]/(#s)/-\\t}" "_________"
__e="${__sp[1]}"
local __e1=${${__e#\(}%\)(:add|:del|)}
local __e2=${(M)__e##\(*\)(:add|:del)}
@@ -145,12 +145,12 @@ map=( "#" "_H" "^" "_D" "*" "_S" )
for __ in $__s; do
__=${__%\^}
[[ "$__" = -*:(add|del) ]] && __var_name="${__the_hash_name}[${__}-directive]" || __var_name="${__the_hash_name}[${__}-opt-action]"
- :chroma/main-chroma-print "${(r:70:: :):-${__var_name}} := >>${__sp[1]}${${${#__sp}:#(0|1)}:+ +}<<"
+ →chroma/main-chroma-print "${(r:70:: :):-${__var_name}} := >>${__sp[1]}${${${#__sp}:#(0|1)}:+ +}<<"
: ${(P)__var_name::=${__sp[1]}${${${#__sp}:#(0|1)}:+ +}}
if (( ${#__sp} >= 2 )); then
__var_name="${__the_hash_name}[${__}-opt-arg-action]"
- :chroma/main-chroma-print "${(r:70:: :):-${__var_name}} := >>${__sp[2]}<<}"
+ →chroma/main-chroma-print "${(r:70:: :):-${__var_name}} := >>${__sp[2]}<<}"
: ${(P)__var_name::=$__sp[2]}
fi
done
@@ -158,18 +158,18 @@ map=( "#" "_H" "^" "_D" "*" "_S" )
}
# Processes given token
-:chroma/main-process-token.ch() {
+→chroma/main-process-token.ch() {
local __subcmd="$1" __wrd="$2" __val __var_name __main_hash_name __the_hash_name __i __size
local -a __splitted __split __added
- :chroma/main-chroma-print "\n******************* Starting :chroma/main-process-token <<$__wrd>>// subcmd:${(qq)__subcmd}"
+ →chroma/main-chroma-print "\n******************* Starting →chroma/main-process-token <<$__wrd>>// subcmd:${(qq)__subcmd}"
__main_hash_name="fsh__chroma__main__${${FAST_HIGHLIGHT[chroma-current]//[^a-zA-Z0-9_]/_}//(#b)([\#\^\*])/${map[${match[1]}]}}"
__var_name="${__main_hash_name}[subcmd:$__subcmd]"
__splitted=( "${(@s://:P)__var_name}" )
[[ ${#__splitted} -eq 1 && -z "${__splitted[1]}" ]] && __splitted=()
__splitted=( "${__splitted[@]//((#s)[[:space:]]##|[[:space:]]##(#e))/}" )
- :chroma/main-chroma-print -rl -- "[B] MAIN-PROCESS-TOKEN: got [OPTION/ARG-**S-E-T-S**] //-splitted from subcmd:$__subcmd: ${${(j:, :)__splitted}:-EMPTY-SET!}" "----- __splitted\\Deleted: -----" ${${(j:, :)${__splitted[@]:#(${(~j:|:)${(@)=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-deleted-nodes]}})}}:-EMPTY-SET (deleted)!} "----- Added\\Deleted: -----" ${${(j:, :)${${(@)=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-added-nodes]}:#(${(~j:|:)${(@)=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-deleted-nodes]}})}}:-EMPTY-SET (added)!} -----\ Deleted:\ ----- ${(j:, :)${(@)=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-deleted-nodes]}} >> /tmp/reply
+ →chroma/main-chroma-print -rl -- "[B] MAIN-PROCESS-TOKEN: got [OPTION/ARG-**S-E-T-S**] //-splitted from subcmd:$__subcmd: ${${(j:, :)__splitted}:-EMPTY-SET!}" "----- __splitted\\Deleted: -----" ${${(j:, :)${__splitted[@]:#(${(~j:|:)${(@)=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-deleted-nodes]}})}}:-EMPTY-SET (deleted)!} "----- Added\\Deleted: -----" ${${(j:, :)${${(@)=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-added-nodes]}:#(${(~j:|:)${(@)=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-deleted-nodes]}})}}:-EMPTY-SET (added)!} -----\ Deleted:\ ----- ${(j:, :)${(@)=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-deleted-nodes]}} >> /tmp/reply
(( ! ${#__splitted} )) && {
__var_name="${__main_hash_name}[subcmd:*]"
@@ -179,24 +179,24 @@ map=( "#" "_H" "^" "_D" "*" "_S" )
(( ! ${#__splitted} )) && return 1
}
- :chroma/main-chroma-print -rl -- "---NO-HASH-CREATE-FROM-NOW-ON---"
+ →chroma/main-chroma-print -rl -- "---NO-HASH-CREATE-FROM-NOW-ON---"
if [[ -z "${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-option-with-arg-active]}" ]]; then
- :chroma/main-chroma-print -rl -- "-z OPT-WITH-ARG-ACTIVE == true"
+ →chroma/main-chroma-print -rl -- "-z OPT-WITH-ARG-ACTIVE == true"
if [[ "$__wrd" = -* ]]; then
- :chroma/main-chroma-print "1st-PATH (-z opt-with-arg-active, non-opt-arg branch, i.e. OPTION BRANCH) [#${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]}]"
+ →chroma/main-chroma-print "1st-PATH (-z opt-with-arg-active, non-opt-arg branch, i.e. OPTION BRANCH) [#${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]}]"
for __val in ${__splitted[@]:#(${(~j:|:)${(@)=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-deleted-nodes]}})} ${${(@)=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-added-nodes]}:#(${(~j:|:)${(@)=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-deleted-nodes]}})}; do
- [[ "${__val}" != "${__val%%_([0-9]##|\#)##*}"_${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]}_opt(\*|\^|) && "${__val}" != "${__val%%_([0-9]##|\#)*}"_"#"_opt(\*|\^|) ]] && { :chroma/main-chroma-print "DIDN'T MATCH $__val / arg counter:${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]}" ; continue; } || :chroma/main-chroma-print "Got candidate: $__val"
+ [[ "${__val}" != "${__val%%_([0-9]##|\#)##*}"_${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]}_opt(\*|\^|) && "${__val}" != "${__val%%_([0-9]##|\#)*}"_"#"_opt(\*|\^|) ]] && { →chroma/main-chroma-print "DIDN'T MATCH $__val / arg counter:${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]}" ; continue; } || →chroma/main-chroma-print "Got candidate: $__val"
# Create the hash cache-parameter if needed
__the_hash_name="fsh__chroma__${FAST_HIGHLIGHT[chroma-current]//[^a-zA-Z0-9_]/_}__${__subcmd//[^a-zA-Z0-9_]/_}__${${__val//(#b)([\#\^\*])/${map[${match[1]}]}}//[^a-zA-Z0-9_]/_}"
- [[ "$__val" = *_opt(\*|\^|) && "${(P)+__the_hash_name}" -eq 0 ]] && :chroma/main-create-OPTION-hash.ch "$__subcmd" "$__val" "$__the_hash_name" || :chroma/main-chroma-print "Not creating, the hash already exists..."
+ [[ "$__val" = *_opt(\*|\^|) && "${(P)+__the_hash_name}" -eq 0 ]] && →chroma/main-create-OPTION-hash.ch "$__subcmd" "$__val" "$__the_hash_name" || →chroma/main-chroma-print "Not creating, the hash already exists..."
# Try dedicated-entry for the option
__var_name="${__the_hash_name}[${${${${(M)__wrd#?*=}:+${__wrd%=*}=}:-$__wrd}}-opt-action]"
__split=( "${(@s://:P)__var_name}" )
[[ ${#__split} -eq 1 && -z "${__split[1]}" ]] && __split=()
# If no result, then try with catch-all entry
(( ! ${#__split} )) && {
- :chroma/main-chroma-print "% no ${(q-)${${${(M)__wrd#?*=}:+${__wrd%=*}=}:-$__wrd}}-opt-action, retrying with *-opt-action" "|__var_name|:$__var_name"
+ →chroma/main-chroma-print "% no ${(q-)${${${(M)__wrd#?*=}:+${__wrd%=*}=}:-$__wrd}}-opt-action, retrying with *-opt-action" "|__var_name|:$__var_name"
__var_name="${__the_hash_name}[*-opt-action]"
__split=( "${(@s://:P)__var_name}" )
[[ ${#__split} -eq 1 && -z "${__split[1]}" ]] && __split=()
@@ -204,19 +204,19 @@ map=( "#" "_H" "^" "_D" "*" "_S" )
__svalue="$__var_name"
# Remove whitespace
__split=( "${__split[@]//((#s)[[:space:]]##|[[:space:]]##(#e))/}" )
- :chroma/main-chroma-print -l -- "\`$__val' // ${#__split} // $__wrd: (ch.run #${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-call-nr]}), deref. of \`$__var_name'"
+ →chroma/main-chroma-print -l -- "\`$__val' // ${#__split} // $__wrd: (ch.run #${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-call-nr]}), deref. of \`$__var_name'"
if (( ${#__split} )); then
- :chroma/main-chroma-print -l -- "Got split of {\$#__split:$#__split} ${__wrd}-opt-action or *-opt-action" "${${(q-)__split[@]}[@]/(#s)/->\\t}"
+ →chroma/main-chroma-print -l -- "Got split of {\$#__split:$#__split} ${__wrd}-opt-action or *-opt-action" "${${(q-)__split[@]}[@]/(#s)/->\\t}"
if [[ "${__split[2]}" = *[[:blank:]]+ ]]; then
- :chroma/main-chroma-print "YES handling the value (the OPT.ARGUMENT)! [${__split[2]}]"
+ →chroma/main-chroma-print "YES handling the value (the OPT.ARGUMENT)! [${__split[2]}]"
if [[ "$__wrd" = *=* ]]; then
- :chroma/main-chroma-print "The-immediate Arg-Acquiring, of option"
+ →chroma/main-chroma-print "The-immediate Arg-Acquiring, of option"
FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-option-with-arg-active]="${__svalue%-opt-action\]}-opt-arg-action]"
FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-option-arg]="${__wrd#*=}"
__have_value=2
else
- :chroma/main-chroma-print "Enable Arg-Awaiting, of option"
- :chroma/main-chroma-print "FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-option-with-arg-active]=\"${__svalue%-opt-action\]}-opt-arg-action]\""
+ →chroma/main-chroma-print "Enable Arg-Awaiting, of option"
+ →chroma/main-chroma-print "FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-option-with-arg-active]=\"${__svalue%-opt-action\]}-opt-arg-action]\""
__have_value=0
FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-option-with-arg-active]="${__svalue%-opt-action\]}-opt-arg-action]"
fi
@@ -240,27 +240,27 @@ map=( "#" "_H" "^" "_D" "*" "_S" )
# First: del-directive
FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-deleted-nodes]+="${(j: :)__split[__ivalue+1,__tmp]} "
- :chroma/main-chroma-print -rl ":add / :del directives: __ivalue:$__ivalue, THE __SPLIT[#$__tmp]: " "${__split[@]}" "//" "The FAST_HIGHLIGHT[chroma-*deleted-nodes]: " ${=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-deleted-nodes]} >> /tmp/reply
+ →chroma/main-chroma-print -rl ":add / :del directives: __ivalue:$__ivalue, THE __SPLIT[#$__tmp]: " "${__split[@]}" "//" "The FAST_HIGHLIGHT[chroma-*deleted-nodes]: " ${=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-deleted-nodes]} >> /tmp/reply
# Second: add-directive
FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-added-nodes]+="${(j: :)__split[1,__ivalue]} "
fi
[[ "$__handler" = ::[^[:space:]]* ]] && __handler="${__handler#::}" || __handler=""
- [[ -n "$__handler" && "$__handler" != "NO-OP" ]] && { :chroma/main-chroma-print -rl -- "Running handler(1): $__handler" ; "$__handler" "${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]:-NULL}" "$__start" "$__end" "$__wrd"; }
- [[ "$__have_value" -ne 2 && -n "$__action" && "$__action" != "NO-OP" ]] && { :chroma/main-chroma-print -rl "Running action (1): $__action" ; eval "() { $__action; }"; }
+ [[ -n "$__handler" && "$__handler" != "NO-OP" ]] && { →chroma/main-chroma-print -rl -- "Running handler(1): $__handler" ; "$__handler" "${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]:-NULL}" "$__start" "$__end" "$__wrd"; }
+ [[ "$__have_value" -ne 2 && -n "$__action" && "$__action" != "NO-OP" ]] && { →chroma/main-chroma-print -rl "Running action (1): $__action" ; eval "() { $__action; }"; }
[[ "$__val" != *\* ]] && break
else
- :chroma/main-chroma-print -rl -- "NO-MATCH ROUTE TAKEN"
+ →chroma/main-chroma-print -rl -- "NO-MATCH ROUTE TAKEN"
fi
done
else
- :chroma/main-chroma-print "1st-PATH-B (-z opt-with-arg-active, non-opt-arg branch, ARGUMENT BRANCH [#${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]}]) //// added-nodes: ${=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-added-nodes]}"
+ →chroma/main-chroma-print "1st-PATH-B (-z opt-with-arg-active, non-opt-arg branch, ARGUMENT BRANCH [#${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]}]) //// added-nodes: ${=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-added-nodes]}"
for __val in ${__splitted[@]:#(${(~j:|:)${(@)=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-deleted-nodes]}})} ${${(@)=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-added-nodes]}:#(${(~j:|:)${(@)=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-deleted-nodes]}})}; do
- [[ "${__val}" != "${__val%%_([0-9]##|\#)*}"_"${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]}"_arg(\*|\^|) && "${__val}" != "${__val%%_([0-9]##|\#)*}"_"#"_arg(\*|\^|) ]] && { :chroma/main-chroma-print "Continuing for $__val / arg counter ${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]}" ; continue }
+ [[ "${__val}" != "${__val%%_([0-9]##|\#)*}"_"${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]}"_arg(\*|\^|) && "${__val}" != "${__val%%_([0-9]##|\#)*}"_"#"_arg(\*|\^|) ]] && { →chroma/main-chroma-print "Continuing for $__val / arg counter ${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]}" ; continue }
# Create the hash cache-parameter if needed
__the_hash_name="fsh__chroma__${FAST_HIGHLIGHT[chroma-current]//[^a-zA-Z0-9_]/_}__${__subcmd//[^a-zA-Z0-9_]/_}__${${__val//\#/H}//[^a-zA-Z0-9_]/_}"
__action="" __handler=""
- :chroma/main-chroma-print "A hit, chosen __val:$__val!"
+ →chroma/main-chroma-print "A hit, chosen __val:$__val!"
__ch_def_name="fsh__${__chroma_name}__chroma__def[$__val]"
__split=( "${(P@s:<<>>:)__ch_def_name}" )
__split=( "${__split[@]//((#s)[[:space:]]##|[[:space:]]##(#e))/}" )
@@ -271,13 +271,13 @@ map=( "#" "_H" "^" "_D" "*" "_S" )
# Verify if it's the expected argument
[[ "${__sp[1]}" = *:::::* && "$__wrd" != ${~${__sp[1]%% ##:::::*}} ]] && \
- { :chroma/main-chroma-print -r "mismatch ${__sp[1]%% ##:::::*} != $__wrd, continuing" ; continue; }
+ { →chroma/main-chroma-print -r "mismatch ${__sp[1]%% ##:::::*} != $__wrd, continuing" ; continue; }
- :chroma/main-chroma-print -l -- "Got action record for $__val, i.e. the split:" "${__sp[@]//(#s)/-\t}" "_________"
+ →chroma/main-chroma-print -l -- "Got action record for $__val, i.e. the split:" "${__sp[@]//(#s)/-\t}" "_________"
- [[ "${__sp[2]}" = ::[^[:space:]]* ]] && __handler="${__sp[2]#::}" || { [[ -n "$__handler" && "$__handler" != "NO-OP" ]] && :chroma/main-chroma-print "=== Error === In chroma definition: a handler entry ${(q)__sp[2]} without leading \`::'" ; }
- [[ -n "$__handler" && "$__handler" != "NO-OP" ]] && { :chroma/main-chroma-print -rl -- "Running handler(3): $__handler" ; "$__handler" "${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]:-NULL}" "$__start" "$__end" "$__wrd"; }
- [[ -n "$__action" && "$__action" != "NO-OP" ]] && { :chroma/main-chroma-print -rl -- "Running action(3): $__action" ; eval "() { $__action; } \"${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]:-NULL}\" \"$__start\" \"$__end\" \"$__wrd\""; }
+ [[ "${__sp[2]}" = ::[^[:space:]]* ]] && __handler="${__sp[2]#::}" || { [[ -n "$__handler" && "$__handler" != "NO-OP" ]] && →chroma/main-chroma-print "=== Error === In chroma definition: a handler entry ${(q)__sp[2]} without leading \`::'" ; }
+ [[ -n "$__handler" && "$__handler" != "NO-OP" ]] && { →chroma/main-chroma-print -rl -- "Running handler(3): $__handler" ; "$__handler" "${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]:-NULL}" "$__start" "$__end" "$__wrd"; }
+ [[ -n "$__action" && "$__action" != "NO-OP" ]] && { →chroma/main-chroma-print -rl -- "Running action(3): $__action" ; eval "() { $__action; } \"${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]:-NULL}\" \"$__start\" \"$__end\" \"$__wrd\""; }
# Check for argument directives (like :add)
if (( ${#__split} >= 2 )); then
@@ -289,54 +289,54 @@ map=( "#" "_H" "^" "_D" "*" "_S" )
FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-deleted-nodes]+="${__splitted[1]#del:} ${(j: :)__splitted[2,-1]} "
fi
done
- :chroma/main-chroma-print -l "ARGUMENT :add / :del directives: THE __SPLIT[#${#__split}]: " "${__split[@]//(#s)/-\\t}" "//" "The FAST_HIGHLIGHT[chroma-*deleted-nodes]: " ${(@)${=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-deleted-nodes]}//(#s)/-\\t} "The FAST_HIGHLIGHT[chroma-*added-nodes]: " ${(@)${=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-added-nodes]}//(#s)/-\\t}
+ →chroma/main-chroma-print -l "ARGUMENT :add / :del directives: THE __SPLIT[#${#__split}]: " "${__split[@]//(#s)/-\\t}" "//" "The FAST_HIGHLIGHT[chroma-*deleted-nodes]: " ${(@)${=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-deleted-nodes]}//(#s)/-\\t} "The FAST_HIGHLIGHT[chroma-*added-nodes]: " ${(@)${=FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-added-nodes]}//(#s)/-\\t}
fi
[[ "$__val" != *\* ]] && break
done
fi
else
- :chroma/main-chroma-print -- "2nd-PATH (-n opt-with-arg-active) NON-EMPTY arg-active:\nThe actual opt-val <<< \$__wrd:$__wrd >>> store (after the \`Arg-Awaiting' in the chroma-run: #$(( FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-call-nr]-1 )) [current: #$(( FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-call-nr] ))])"
+ →chroma/main-chroma-print -- "2nd-PATH (-n opt-with-arg-active) NON-EMPTY arg-active:\nThe actual opt-val <<< \$__wrd:$__wrd >>> store (after the \`Arg-Awaiting' in the chroma-run: #$(( FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-call-nr]-1 )) [current: #$(( FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-call-nr] ))])"
FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-option-arg]="$__wrd"
__have_value=1
fi
# Execute the action if not during simulated opt-argument (--opt=...)
- :chroma/main-chroma-print "** BEFORE: \`if (( __have_value ))'"
+ →chroma/main-chroma-print "** BEFORE: \`if (( __have_value ))'"
if (( __have_value )); then
- :chroma/main-chroma-print "In the \`if (( __have_value ))' [have_value: $__have_value]"
+ →chroma/main-chroma-print "In the \`if (( __have_value ))' [have_value: $__have_value]"
# Split
__var_name="${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-option-with-arg-active]}"
FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-option-with-arg-active]=""
__split=( "${(@s://:P)__var_name}" )
- [[ ${#__split} -eq 1 && -z "${__split[1]}" ]] && { :chroma/main-chroma-print -rl "NULL at __var_name:$__var_name" ; __split=(); }
+ [[ ${#__split} -eq 1 && -z "${__split[1]}" ]] && { →chroma/main-chroma-print -rl "NULL at __var_name:$__var_name" ; __split=(); }
__split=( "${__split[@]//((#s)[[:space:]]##|[[:space:]]##(#e))/}" )
# Remember 1st level action
(( __have_value == 2 )) && __value="$__action" || __value=""
if (( ${#__split} )); then
- :chroma/main-chroma-print -l -- "Got //-split (3, for opt-ARG-action, from [$__var_name]):" "${${(q-)__split[@]}[@]/(#s)/+\\t}"
+ →chroma/main-chroma-print -l -- "Got //-split (3, for opt-ARG-action, from [$__var_name]):" "${${(q-)__split[@]}[@]/(#s)/+\\t}"
__action="${__split[1]}"
__handler="${__split[2]}"
[[ "$__handler" = ::[^[:space:]]* ]] && __handler="${__handler#::}"
- [[ -n "$__handler" && "$__handler" != "NO-OP" ]] && { :chroma/main-chroma-print -rl -- "Running handler(2): $__handler" ; "$__handler" "${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]:-NULL}" "$__start" "$__end" "$__wrd"; }
- [[ -n "$__action" && "$__action" != "NO-OP" ]] && { :chroma/main-chroma-print -rl -- "Running action(2): $__action" ; eval "$__action"; }
- :chroma/main-chroma-print -rl -- "The __action value: [$__value]"
- [[ "$__have_value" -eq 2 && -n "$__value" && "$__value" != "NO-OP" ]] && { :chroma/main-chroma-print -rl "Running action (of 1, at 2): $__value" ; eval "$__value"; }
+ [[ -n "$__handler" && "$__handler" != "NO-OP" ]] && { →chroma/main-chroma-print -rl -- "Running handler(2): $__handler" ; "$__handler" "${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]:-NULL}" "$__start" "$__end" "$__wrd"; }
+ [[ -n "$__action" && "$__action" != "NO-OP" ]] && { →chroma/main-chroma-print -rl -- "Running action(2): $__action" ; eval "$__action"; }
+ →chroma/main-chroma-print -rl -- "The __action value: [$__value]"
+ [[ "$__have_value" -eq 2 && -n "$__value" && "$__value" != "NO-OP" ]] && { →chroma/main-chroma-print -rl "Running action (of 1, at 2): $__value" ; eval "$__value"; }
fi
fi
- :chroma/main-chroma-print -- "_________ Exiting :chroma/main-process-token.ch $__subcmd / $__wrd _________"
+ →chroma/main-chroma-print -- "_________ Exiting →chroma/main-process-token.ch $__subcmd / $__wrd _________"
}
# Iterates over the chroma def. fields and creates initial
# fields in the fsh__${__chroma_name}__chroma__def hash
-:chroma/-pre_process_chroma_def.ch() {
+→chroma/-pre_process_chroma_def.ch() {
local __key __value __ke _val __the_hash_name="$1" __var_name
local -a __split
- :chroma/main-chroma-print -rl -- "Starting PRE_PROCESS for __the_hash_name:$__the_hash_name"
+ →chroma/main-chroma-print -rl -- "Starting PRE_PROCESS for __the_hash_name:$__the_hash_name"
__ch_def_name="fsh__${__chroma_name}__chroma__def[subcommands]"
local __subcmds="${(P)__ch_def_name}"
@@ -348,7 +348,7 @@ map=( "#" "_H" "^" "_D" "*" "_S" )
__var_name="${__the_hash_name}[subcommands]"
: ${(P)__var_name::=$__subcmds}
fi
- :chroma/main-chroma-print "Got SUBCOMMANDS: ${(P)__var_name}"
+ →chroma/main-chroma-print "Got SUBCOMMANDS: ${(P)__var_name}"
__ch_def_name="fsh__${__chroma_name}__chroma__def[subcmd-hook]"
local __subcmd_hook="${(P)__ch_def_name}"
@@ -366,13 +366,13 @@ map=( "#" "_H" "^" "_D" "*" "_S" )
__var_name="${__the_hash_name}[subcmd:$__ke]"
__ch_def_name="fsh__${__chroma_name}__chroma__def[$__key]"
: ${(P)__var_name::=${(P)__ch_def_name}}
- :chroma/main-chroma-print -rl -- "Storred ${__var_name}=chroma_def[$__key], i.e. = ${(P)__ch_def_name}"
+ →chroma/main-chroma-print -rl -- "Storred ${__var_name}=chroma_def[$__key], i.e. = ${(P)__ch_def_name}"
done
done
}
if (( __first_call )); then
- :chroma/-${__chroma_name}-first-call
+ →chroma/-${__chroma_name}-first-call
FAST_HIGHLIGHT[chroma-current]="$__wrd"
FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]=0
FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-got-subcommand]=0
@@ -386,8 +386,8 @@ if (( __first_call )); then
__the_hash_name="fsh__chroma__main__${${FAST_HIGHLIGHT[chroma-current]//[^a-zA-Z0-9_]/_}//(#b)([\#\^])/${map[${match[1]}]}}"
(( 0 == ${(P)+__the_hash_name} )) && {
typeset -gA "$__the_hash_name"
- :chroma/-pre_process_chroma_def.ch "$__the_hash_name"
- } || :chroma/main-chroma-print "...No... [\${+$__the_hash_name} ${(P)+__the_hash_name}]"
+ →chroma/-pre_process_chroma_def.ch "$__the_hash_name"
+ } || →chroma/main-chroma-print "...No... [\${+$__the_hash_name} ${(P)+__the_hash_name}]"
return 1
else
(( ++ FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-call-nr] ))
@@ -397,43 +397,50 @@ else
# "starts new command", if so pass-through – chroma ends
[[ "$__arg_type" = 3 ]] && return 2
- :chroma/main-chroma-print "== @@ Starting @@ #${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-call-nr]} Main-Chroma-call == // << __WORD:$__wrd >> ## Subcommand: ${${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]}:-NULL} //@@// -n option-with-arg-active:${(q-)FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-option-with-arg-active]}"
+ →chroma/main-chroma-print "== @@ Starting @@ #${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-call-nr]} Main-Chroma-call == // << __WORD:$__wrd >> ## Subcommand: ${${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]}:-NULL} //@@// -n option-with-arg-active:${(q-)FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-option-with-arg-active]}"
if [[ "$__wrd" = -* || -n "${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-option-with-arg-active]}"
]]; then
- :chroma/main-chroma-print "## The \`if -*' i.e. \`IF OPTION' MAIN branch"
- :chroma/main-process-token.ch "${${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]}:-NULL}" "$__wrd"
+ →chroma/main-chroma-print "## The \`if -*' i.e. \`IF OPTION' MAIN branch"
+ →chroma/main-process-token.ch "${${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]}:-NULL}" "$__wrd"
else
# If at e.g. '>' or destination/source spec (of the redirection)
if (( in_redirection > 0 || this_word & 128 )) || [[ $__wrd == "<<<" ]]; then
return 1
- elif (( FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-got-subcommand] == 0 )); then
+ elif (( FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-got-subcommand] == 0 )) {
__the_hash_name="fsh__chroma__main__${${FAST_HIGHLIGHT[chroma-current]//[^a-zA-Z0-9_]/_}//(#b)([\#\^])/${map[${match[1]}]}}"
__var_name="${__the_hash_name}[subcommands]"
if [[ "$__wrd" = ${(P)~__var_name} ]]; then
- :chroma/main-chroma-print "GOT-SUBCOMMAND := $__wrd, subcmd verification / OK"
+ →chroma/main-chroma-print "GOT-SUBCOMMAND := $__wrd, subcmd verification / OK"
FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-got-subcommand]=1
FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]="$__wrd"
__var_name="${__the_hash_name}[subcmd-hook]"
- (( ${(P)+__var_name} )) && { :chroma/main-chroma-print -r -- "Running subcmd-hook: ${(P)__var_name}" ; "${(P)__var_name}" "$__wrd"; }
+ (( ${(P)+__var_name} )) && { →chroma/main-chroma-print -r -- "Running subcmd-hook: ${(P)__var_name}" ; "${(P)__var_name}" "$__wrd"; }
__style="${FAST_THEME_NAME}subcommand"
else
- :chroma/main-chroma-print "subcmd verif / NOT OK; Incrementing the COUNTER-ARG ${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]} -> $(( FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg] + 1 ))" >> /tmp/fsh-dbg
+ →chroma/main-chroma-print "subcmd verif / NOT OK; Incrementing the COUNTER-ARG ${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]} -> $(( FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg] + 1 ))" >> /tmp/fsh-dbg
(( FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg] += 1 ))
- :chroma/main-chroma-print "UNRECOGNIZED ARGUMENT ${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]}"
- :chroma/main-process-token.ch "${${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]}:-NULL}" "$__wrd"
+ →chroma/main-chroma-print "UNRECOGNIZED ARGUMENT ${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]}"
+ →chroma/main-process-token.ch "${${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]}:-NULL}" "$__wrd"
fi
- else
+ } else {
__wrd="${__wrd//\`/x}"
__arg="${__arg//\`/x}"
__wrd="${(Q)__wrd}"
- :chroma/main-chroma-print "Incrementing the COUNTER-ARG ${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]} -> $(( FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg] + 1 ))"
+ local __tmp_def_name="fsh__${__chroma_name}__chroma__def[subcommands-blacklist]"
+ if [[ ${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]} = \
+ (${(~j:|:)${(@s:,:)${(PA)__tmp_def_name}}})
+ ]] {
+ return 1
+ }
+
+ →chroma/main-chroma-print "Incrementing the COUNTER-ARG ${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]} -> $(( FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg] + 1 ))"
(( FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg] += 1 ))
- :chroma/main-chroma-print "ARGUMENT ${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]}"
+ →chroma/main-chroma-print "ARGUMENT ${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-counter-arg]}"
- :chroma/main-chroma-print "ELSE *-got-subcommand == 1 is TRUE"
- :chroma/main-process-token.ch "${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]}" "$__wrd"
- fi
+ →chroma/main-chroma-print "ELSE *-got-subcommand == 1 is TRUE"
+ →chroma/main-process-token.ch "${FAST_HIGHLIGHT[chroma-${FAST_HIGHLIGHT[chroma-current]}-subcommand]}" "$__wrd"
+ }
fi
fi