@kecan0406/ttheme 1.1.1 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -4
- package/bin/ttheme.js +169 -169
- package/bin/ttheme.js.map +1 -1
- package/dist/manifest.json +1 -1
- package/package.json +1 -1
- package/shell/ttheme.zsh +94 -33
package/dist/manifest.json
CHANGED
package/package.json
CHANGED
package/shell/ttheme.zsh
CHANGED
|
@@ -4,7 +4,7 @@ zmodload -F zsh/stat b:zstat 2>/dev/null
|
|
|
4
4
|
|
|
5
5
|
__tt_palettes_load() {
|
|
6
6
|
local -a at
|
|
7
|
-
unset TTHEME_PALETTE TTHEME_GROUP TTHEME_NATIVE TTHEME_SRC
|
|
7
|
+
unset TTHEME_PALETTE TTHEME_GROUP TTHEME_CATALOG TTHEME_NATIVE TTHEME_SRC
|
|
8
8
|
source $TTHEME_HOME/palettes.zsh || return 1
|
|
9
9
|
zstat -F %s.%N -A at +mtime -- $TTHEME_HOME/palettes.zsh 2>/dev/null
|
|
10
10
|
TTHEME_PALETTES_AT=$at[1]
|
|
@@ -231,7 +231,7 @@ __tt_name_of() { REPLY=${${(k)TTHEME_PALETTE[(re)$1]}:-custom} }
|
|
|
231
231
|
__tt_color() { [[ -t 1 && -z $NO_COLOR && $TERM != dumb ]] }
|
|
232
232
|
|
|
233
233
|
__tt_palette_line() {
|
|
234
|
-
local name=$1 width=$2 on=$3 hex cell="" bar=""
|
|
234
|
+
local name=$1 width=$2 on=$3 label=${4:-$1} hex cell="" bar=""
|
|
235
235
|
local -a p=(${=TTHEME_PALETTE[$name]}) sw=(${=TTHEME_SWATCH[$name]})
|
|
236
236
|
(( ${#p} >= 20 )) || return 1
|
|
237
237
|
for hex in $sw; do
|
|
@@ -243,9 +243,9 @@ __tt_palette_line() {
|
|
|
243
243
|
printf -v ac '\e[38;2;%d;%d;%dm' $((16#${cur:0:2})) $((16#${cur:2:2})) $((16#${cur:4:2}))
|
|
244
244
|
printf -v bar '\e[48;2;%d;%d;%d;38;2;%d;%d;%dm' \
|
|
245
245
|
$((16#${sel:0:2})) $((16#${sel:2:2})) $((16#${sel:4:2})) $((16#${fg:0:2})) $((16#${fg:2:2})) $((16#${fg:4:2}))
|
|
246
|
-
printf '%s▌\e[39m %s %s■\e[39m \e[1m%-*s\e[22m %s\e[0m\n' "$ac" "$bar" "$ac" "$width" "$
|
|
246
|
+
printf '%s▌\e[39m %s %s■\e[39m \e[1m%-*s\e[22m %s\e[0m\n' "$ac" "$bar" "$ac" "$width" "$label" "$cell"
|
|
247
247
|
else
|
|
248
|
-
printf ' %-*s %s\e[0m\n' "$width" "$
|
|
248
|
+
printf ' %-*s %s\e[0m\n' "$width" "$label" "$cell"
|
|
249
249
|
fi
|
|
250
250
|
}
|
|
251
251
|
|
|
@@ -457,7 +457,7 @@ __tt_order() {
|
|
|
457
457
|
}
|
|
458
458
|
|
|
459
459
|
__tt_menu() {
|
|
460
|
-
local k cur="" grp last_grp="" REPLY
|
|
460
|
+
local k cur="" grp last_grp="" shelf last_shelf="" label REPLY
|
|
461
461
|
local -a reply
|
|
462
462
|
local -i width=0
|
|
463
463
|
__tt_order
|
|
@@ -469,7 +469,9 @@ __tt_menu() {
|
|
|
469
469
|
fi
|
|
470
470
|
[[ -n $TTHEME_SPEC ]] && __tt_name_of "$TTHEME_SPEC" && cur=$REPLY
|
|
471
471
|
for k in $reply; do
|
|
472
|
-
|
|
472
|
+
label=${k##*/}
|
|
473
|
+
[[ -n ${TTHEME_CATALOG[$k]} && ${TTHEME_GROUP[$k]} == *@* ]] && label=" $label"
|
|
474
|
+
(( ${#label} > width )) && width=${#label}
|
|
473
475
|
done
|
|
474
476
|
for k in $reply; do
|
|
475
477
|
grp=${TTHEME_GROUP[$k]:-Other}
|
|
@@ -478,9 +480,17 @@ __tt_menu() {
|
|
|
478
480
|
printf ' \033[1m%s\033[0m' "$grp"
|
|
479
481
|
[[ -n ${TTHEME_NATIVE[$k]} ]] && printf ' \033[2m%s\033[0m' "${TTHEME_NATIVE[$k]}"
|
|
480
482
|
printf '\n'
|
|
481
|
-
last_grp=$grp
|
|
483
|
+
last_grp=$grp last_shelf=""
|
|
482
484
|
fi
|
|
483
|
-
|
|
485
|
+
shelf=""
|
|
486
|
+
[[ $grp == *@* ]] && shelf=${TTHEME_CATALOG[$k]}
|
|
487
|
+
if [[ -n $shelf && $shelf != "$last_shelf" ]]; then
|
|
488
|
+
printf ' \033[1m%s\033[0m\n' "$shelf"
|
|
489
|
+
last_shelf=$shelf
|
|
490
|
+
fi
|
|
491
|
+
label=${k##*/}
|
|
492
|
+
[[ -n $shelf ]] && label=" $label"
|
|
493
|
+
__tt_palette_line "$k" $width "${${(M)k:#$cur}:+1}" "$label"
|
|
484
494
|
done
|
|
485
495
|
printf '\n \033[2mttheme use <palette> paints this tab · ttheme preview · ttheme help\033[0m\n'
|
|
486
496
|
}
|
|
@@ -671,14 +681,14 @@ __tt_rotate() {
|
|
|
671
681
|
|
|
672
682
|
__tt_pv_rows() {
|
|
673
683
|
rtype=() rval=() rcnt=()
|
|
674
|
-
local g t gm ruled=""
|
|
675
|
-
local -a ts
|
|
684
|
+
local g t c gm ruled=""
|
|
685
|
+
local -a ts cs loose inside
|
|
676
686
|
for g in $groups; do
|
|
677
687
|
ts=()
|
|
678
688
|
gm=""
|
|
679
689
|
[[ -n $flt && ${(L)g} == *$flt* ]] && gm=1
|
|
680
690
|
for t in ${=gthemes[$g]}; do
|
|
681
|
-
[[ -z $flt || -n $gm || $t == *$flt* ]] && ts+=($t)
|
|
691
|
+
[[ -z $flt || -n $gm || $t == *$flt* || ${(L)TTHEME_CATALOG[$t]} == *$flt* ]] && ts+=($t)
|
|
682
692
|
done
|
|
683
693
|
[[ -n $flt ]] && (( ! ${#ts} )) && continue
|
|
684
694
|
if [[ $g == *@* && -z $ruled ]]; then
|
|
@@ -686,12 +696,38 @@ __tt_pv_rows() {
|
|
|
686
696
|
(( ${#rtype} )) && { rtype+=(rule); rval+=(''); rcnt+=(0) }
|
|
687
697
|
fi
|
|
688
698
|
rtype+=(hdr); rval+=($g); rcnt+=(${#ts})
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
699
|
+
[[ -n $flt || -n ${exp[$g]} ]] || continue
|
|
700
|
+
cs=() loose=()
|
|
701
|
+
for t in $ts; do
|
|
702
|
+
c=${TTHEME_CATALOG[$t]}
|
|
703
|
+
if [[ -n $c && $g == *@* ]]; then
|
|
704
|
+
(( ${cs[(Ie)$c]} )) || cs+=($c)
|
|
705
|
+
else
|
|
706
|
+
loose+=($t)
|
|
707
|
+
fi
|
|
708
|
+
done
|
|
709
|
+
for c in $cs; do
|
|
710
|
+
inside=()
|
|
711
|
+
for t in $ts; do
|
|
712
|
+
[[ ${TTHEME_CATALOG[$t]} == "$c" ]] && inside+=($t)
|
|
713
|
+
done
|
|
714
|
+
rtype+=(cat); rval+=("$g/$c"); rcnt+=(${#inside})
|
|
715
|
+
if [[ -n $flt || -n ${exp[$g/$c]} ]]; then
|
|
716
|
+
for t in $inside; do rtype+=(thm); rval+=($t); rcnt+=(0); done
|
|
717
|
+
fi
|
|
718
|
+
done
|
|
719
|
+
for t in $loose; do rtype+=(thm); rval+=($t); rcnt+=(0); done
|
|
692
720
|
done
|
|
693
721
|
}
|
|
694
722
|
|
|
723
|
+
__tt_pv_at() {
|
|
724
|
+
local i
|
|
725
|
+
for (( i = 1; i <= ${#rval}; i++ )); do
|
|
726
|
+
[[ ${rtype[i]} == (hdr|cat) && ${rval[i]} == "$1" ]] && { cur=$i; return 0 }
|
|
727
|
+
done
|
|
728
|
+
return 0
|
|
729
|
+
}
|
|
730
|
+
|
|
695
731
|
__tt_pv_first() {
|
|
696
732
|
local name=$1 i
|
|
697
733
|
cur=1 top=1
|
|
@@ -707,8 +743,9 @@ __tt_pv_first() {
|
|
|
707
743
|
}
|
|
708
744
|
|
|
709
745
|
__tt_pv_goto() {
|
|
710
|
-
local name=$1 i
|
|
711
|
-
exp[$
|
|
746
|
+
local name=$1 i g=${TTHEME_GROUP[$1]:-Other} c=${TTHEME_CATALOG[$1]}
|
|
747
|
+
exp[$g]=1
|
|
748
|
+
[[ -n $c && $g == *@* ]] && exp[$g/$c]=1
|
|
712
749
|
__tt_pv_rows
|
|
713
750
|
for (( i = 1; i <= ${#rval}; i++ )); do
|
|
714
751
|
[[ ${rtype[i]} == thm && ${rval[i]} == $name ]] && { cur=$i; return 0 }
|
|
@@ -738,16 +775,19 @@ __tt_pv_toggle() {
|
|
|
738
775
|
|
|
739
776
|
__tt_pv_left() {
|
|
740
777
|
[[ -n $flt ]] && return 0
|
|
741
|
-
if [[ ${rtype[cur]} == hdr ]]; then
|
|
742
|
-
[[ -n ${exp[${rval[cur]}]} ]]
|
|
778
|
+
if [[ ${rtype[cur]} == (hdr|cat) ]]; then
|
|
779
|
+
if [[ -n ${exp[${rval[cur]}]} ]]; then
|
|
780
|
+
__tt_pv_toggle
|
|
781
|
+
elif [[ ${rtype[cur]} == cat ]]; then
|
|
782
|
+
__tt_pv_at ${rval[cur]%%/*}
|
|
783
|
+
fi
|
|
743
784
|
return 0
|
|
744
785
|
fi
|
|
745
|
-
local g=${TTHEME_GROUP[${rval[cur]}]:-Other}
|
|
746
|
-
|
|
747
|
-
[[ ${rtype[i]} == hdr ]] && { cur=$i; break }
|
|
748
|
-
done
|
|
786
|
+
local g=${TTHEME_GROUP[${rval[cur]}]:-Other} c=${TTHEME_CATALOG[${rval[cur]}]}
|
|
787
|
+
[[ -n $c && $g == *@* ]] && g=$g/$c
|
|
749
788
|
exp[$g]=""
|
|
750
789
|
__tt_pv_rows
|
|
790
|
+
__tt_pv_at $g
|
|
751
791
|
}
|
|
752
792
|
|
|
753
793
|
typeset -gA TTHEME_GLYPHS=(
|
|
@@ -815,7 +855,7 @@ __tt_pv_hl() {
|
|
|
815
855
|
}
|
|
816
856
|
|
|
817
857
|
__tt_pv_row() {
|
|
818
|
-
local t=${rval[$1]} b=$'\e[1m' d=$'\e[2m' r=$'\e[22;24;39m' z=$'\e[0m' on="" gut=" " base="" lead=$'\e[2m' mark=" " name arrow=▸
|
|
858
|
+
local t=${rval[$1]} b=$'\e[1m' d=$'\e[2m' r=$'\e[22;24;39m' z=$'\e[0m' on="" gut=" " base="" lead=$'\e[2m' mark=" " name arrow=▸ ind=" "
|
|
819
859
|
local -i w
|
|
820
860
|
(( color )) || b= d= r= z= lead=
|
|
821
861
|
if (( $1 == cur )); then
|
|
@@ -843,19 +883,37 @@ __tt_pv_row() {
|
|
|
843
883
|
REPLY=$gut$on" "$lead$arrow$r" "$base$REPLY$r${(l:w:: :)}$d${rcnt[$1]}$r" "$z
|
|
844
884
|
return 0
|
|
845
885
|
fi
|
|
886
|
+
if [[ ${rtype[$1]} == cat ]]; then
|
|
887
|
+
[[ -n $flt || -n ${exp[$t]} ]] && arrow=▾
|
|
888
|
+
name=${t#*/}
|
|
889
|
+
(( ${(m)#name} > lw - 12 )) && name="${name[1,lw-13]}…"
|
|
890
|
+
base=$b
|
|
891
|
+
if (( color )) && [[ $t == "$acat" ]]; then
|
|
892
|
+
base+=$ac lead=$ac
|
|
893
|
+
elif (( $1 == cur )); then
|
|
894
|
+
lead=""
|
|
895
|
+
fi
|
|
896
|
+
__tt_pv_hl "$name" "$base"
|
|
897
|
+
w=$(( lw - 8 - ${(m)#name} - ${#rcnt[$1]} ))
|
|
898
|
+
(( w < 1 )) && w=1
|
|
899
|
+
REPLY=$gut$on" "$lead$arrow$r" "$base$REPLY$r${(l:w:: :)}$d${rcnt[$1]}$r" "$z
|
|
900
|
+
return 0
|
|
901
|
+
fi
|
|
846
902
|
if (( $1 == cur )); then
|
|
847
903
|
mark=$ac"■"$r base=$b
|
|
848
904
|
elif [[ -n $cdot && $t == "$cn" ]]; then
|
|
849
905
|
mark=$cdot
|
|
850
906
|
fi
|
|
851
|
-
|
|
907
|
+
name=${t##*/}
|
|
908
|
+
[[ -n ${TTHEME_CATALOG[$t]} && ${TTHEME_GROUP[$t]} == *@* ]] && ind=" "
|
|
909
|
+
__tt_pv_hl "$name" "$base"
|
|
852
910
|
if (( color )); then
|
|
853
911
|
[[ -n ${tstrip[$t]} ]] || __tt_pv_strip $t
|
|
854
|
-
w=$(( lw -
|
|
912
|
+
w=$(( lw - 16 - ${#ind} - ${#name} ))
|
|
855
913
|
(( w < 1 )) && w=1
|
|
856
|
-
REPLY=$gut$on"
|
|
914
|
+
REPLY=$gut$on"$ind$mark $base$REPLY$r${(l:w:: :)}${tstrip[$t]} "$z
|
|
857
915
|
else
|
|
858
|
-
REPLY="$gut
|
|
916
|
+
REPLY="$gut$ind$mark $REPLY"
|
|
859
917
|
fi
|
|
860
918
|
}
|
|
861
919
|
|
|
@@ -919,7 +977,7 @@ __tt_pv_foot() {
|
|
|
919
977
|
[[ -n $flt ]] && badge=FILTER
|
|
920
978
|
if (( ! ${#rval} )); then
|
|
921
979
|
kk=(bksp) kl=(edit)
|
|
922
|
-
elif [[ ${rtype[cur]} == hdr ]]; then
|
|
980
|
+
elif [[ ${rtype[cur]} == (hdr|cat) ]]; then
|
|
923
981
|
if [[ -z $flt && -n ${exp[${rval[cur]}]} ]]; then
|
|
924
982
|
kk=(←) kl=(close)
|
|
925
983
|
elif [[ -z $flt ]]; then
|
|
@@ -1270,7 +1328,7 @@ __tt_pv_flush() {
|
|
|
1270
1328
|
}
|
|
1271
1329
|
|
|
1272
1330
|
__tt_pv_draw() {
|
|
1273
|
-
local out line cnt ex ag="" ac="" sb="" dd="" zz="" state=on src="" REPLY
|
|
1331
|
+
local out line cnt ex ag="" acat="" ac="" sb="" dd="" zz="" state=on src="" REPLY
|
|
1274
1332
|
local -i lw sw split sc se=$(( pw - 2 )) h k i N=${#rval} mt=${#TTHEME_ORDER} wiped=0
|
|
1275
1333
|
__tt_pv_lw
|
|
1276
1334
|
lw=$reply[1] sw=$reply[2]
|
|
@@ -1291,7 +1349,10 @@ __tt_pv_draw() {
|
|
|
1291
1349
|
printf -v ac '\e[38;2;%d;%d;%dm' $((16#${acx:0:2})) $((16#${acx:2:2})) $((16#${acx:4:2}))
|
|
1292
1350
|
printf -v sb '\e[48;2;%d;%d;%dm' $((16#${sbx:0:2})) $((16#${sbx:2:2})) $((16#${sbx:4:2}))
|
|
1293
1351
|
fi
|
|
1294
|
-
[[ ${rtype[cur]} == thm ]]
|
|
1352
|
+
if [[ ${rtype[cur]} == thm ]]; then
|
|
1353
|
+
ag=${TTHEME_GROUP[${rval[cur]}]:-Other}
|
|
1354
|
+
[[ -n ${TTHEME_CATALOG[${rval[cur]}]} ]] && acat=$ag/${TTHEME_CATALOG[${rval[cur]}]}
|
|
1355
|
+
fi
|
|
1295
1356
|
fi
|
|
1296
1357
|
if [[ -n $flt ]]; then
|
|
1297
1358
|
local -a mm=(${(M)rtype:#thm})
|
|
@@ -1597,13 +1658,13 @@ __tt_pv_handle() {
|
|
|
1597
1658
|
sel=${rval[cur]}
|
|
1598
1659
|
return 1
|
|
1599
1660
|
fi
|
|
1600
|
-
elif [[ ${rtype[cur]} == hdr ]]; then
|
|
1661
|
+
elif [[ ${rtype[cur]} == (hdr|cat) ]]; then
|
|
1601
1662
|
__tt_pv_toggle
|
|
1602
1663
|
fi
|
|
1603
1664
|
;;
|
|
1604
1665
|
up) (( cur > 1 )) && cur=$(( cur - 1 )); [[ ${rtype[cur]} == rule ]] && cur=$(( cur - 1 )) ;;
|
|
1605
1666
|
down) (( cur < ${#rval} )) && cur=$(( cur + 1 )); [[ ${rtype[cur]} == rule ]] && cur=$(( cur + 1 )) ;;
|
|
1606
|
-
right) [[ ${rtype[cur]} == hdr && -z ${exp[${rval[cur]}]} ]] && __tt_pv_toggle ;;
|
|
1667
|
+
right) [[ ${rtype[cur]} == (hdr|cat) && -z ${exp[${rval[cur]}]} ]] && __tt_pv_toggle ;;
|
|
1607
1668
|
left) __tt_pv_left ;;
|
|
1608
1669
|
home) cur=1 ;;
|
|
1609
1670
|
end) (( ${#rval} )) && cur=${#rval} ;;
|
|
@@ -1618,7 +1679,7 @@ __tt_pv_handle() {
|
|
|
1618
1679
|
(( cur < 1 )) && cur=1
|
|
1619
1680
|
[[ ${rtype[cur]} == rule ]] && cur=$(( cur + 1 ))
|
|
1620
1681
|
;;
|
|
1621
|
-
' ') [[ ${rtype[cur]} == hdr ]] && __tt_pv_toggle ;;
|
|
1682
|
+
' ') [[ ${rtype[cur]} == (hdr|cat) ]] && __tt_pv_toggle ;;
|
|
1622
1683
|
$'\t')
|
|
1623
1684
|
[[ ${rtype[cur]} == thm ]] || return 0
|
|
1624
1685
|
name=${rval[cur]}
|