@kecan0406/ttheme 1.2.14 → 1.2.16

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": 1,
3
- "version": "1.2.14",
3
+ "version": "1.2.16",
4
4
  "gate": [
5
5
  {
6
6
  "rule": "foreground",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kecan0406/ttheme",
3
- "version": "1.2.14",
3
+ "version": "1.2.16",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "ttheme": "bin/ttheme.js"
@@ -45,6 +45,6 @@
45
45
  },
46
46
  "engines": {
47
47
  "bun": ">=1.3",
48
- "node": ">=20.11"
48
+ "node": ">=22"
49
49
  }
50
50
  }
@@ -8,8 +8,6 @@ __tt_bg_saved() {
8
8
 
9
9
  __tt_bg_refresh() { : }
10
10
 
11
- __tt_bg_hide() { : }
12
-
13
11
  __tt_bg_lasting() { : }
14
12
 
15
13
  __tt_bg_wipe() { REPLY=$'\e_Ga=d,d=A,q=2\e\\' }
@@ -124,6 +124,10 @@ __tt_pv_bg_strip_off() { : }
124
124
 
125
125
  __tt_pv_bg_close() { : }
126
126
 
127
+ __tt_pv_bg_reset() { : }
128
+
129
+ __tt_bg_hide() { : }
130
+
127
131
  __tt_pv_bg_save() { : }
128
132
 
129
133
  zmodload zsh/system
@@ -178,6 +182,7 @@ __tt_ask() {
178
182
  done
179
183
  [[ -n $saved ]] && stty "$saved" <&$fd 2>/dev/null
180
184
  exec {fd}>&-
185
+ [[ $buf == *$'\e[0n'* ]] || __tt_owed
181
186
  while [[ $buf == (#b)([^$'\e']#)(${~seqs})(*) ]]; do
182
187
  TTHEME_TYPED+=$match[1] REPLY+=$match[2] buf=$match[-1]
183
188
  done
@@ -185,6 +190,31 @@ __tt_ask() {
185
190
  REPLY=${REPLY%$'\e[0n'}
186
191
  }
187
192
 
193
+ __tt_owed() {
194
+ local k
195
+ [[ -o zle && -z $TTHEME_OWED ]] || return 0
196
+ typeset -g TTHEME_OWED=1
197
+ zle -N __tt_late
198
+ zle -N __tt_quiet
199
+ for k in emacs viins vicmd; do
200
+ [[ $(bindkey -M $k '^[]') == *undefined-key ]] && bindkey -M $k '^[]' __tt_late
201
+ [[ $(bindkey -M $k '^[[0n') == *undefined-key ]] && bindkey -M $k '^[[0n' __tt_quiet
202
+ done
203
+ }
204
+
205
+ __tt_late() {
206
+ emulate -L zsh ${=${options[xtrace]:#off}:+-o xtrace}
207
+ local ch prev=""
208
+ while read -s -k 1 -t 0.2 ch; do
209
+ [[ $ch == $'\a' || ( $prev == $'\e' && $ch == \\ ) ]] && return 0
210
+ prev=$ch
211
+ done
212
+ }
213
+
214
+ __tt_quiet() {
215
+ emulate -L zsh ${=${options[xtrace]:#off}:+-o xtrace}
216
+ }
217
+
188
218
  __tt_typed() {
189
219
  [[ -n $TTHEME_TYPED ]] || return 0
190
220
  zle -U -- "$TTHEME_TYPED"
package/shell/preview.zsh CHANGED
@@ -2115,7 +2115,7 @@ __tt_preview() {
2115
2115
  local tty=""
2116
2116
  local -i TTHEME_RAW=0
2117
2117
  {
2118
- tty=$(stty -g 2>/dev/null) && stty -echo -icanon min 1 time 0 2>/dev/null || tty=""
2118
+ tty=$(stty -g 2>/dev/null) && stty -echo -icanon -ixon min 1 time 0 2>/dev/null || tty=""
2119
2119
  TTHEME_RAW=$(( ${#tty} > 0 ))
2120
2120
  __tt_pv_bg_open
2121
2121
  printf '\e[?2026h\e[?1049h\e[?7l\e[?25l'
package/shell/ttheme.zsh CHANGED
@@ -218,7 +218,7 @@ __tt_listen() {
218
218
  if __tt_recall; then
219
219
  TTHEME_RECHECK=1
220
220
  else
221
- __tt_hear || return 1
221
+ __tt_hear || { [[ -n $TTHEME_OWED ]] && TTHEME_RECHECK=1; return 1 }
222
222
  __tt_remember "$REPLY"
223
223
  fi
224
224
  TTHEME_HEARD=$REPLY
@@ -757,7 +757,7 @@ __tt_unpin_choose() {
757
757
  local -a block=()
758
758
  chosen=0
759
759
  {
760
- tty=$(stty -g 2>/dev/null && stty -echo -icanon min 1 time 0 2>/dev/null)
760
+ tty=$(stty -g 2>/dev/null && stty -echo -icanon -ixon min 1 time 0 2>/dev/null)
761
761
  print -rn -- $'\e[?25l'
762
762
  while :; do
763
763
  __tt_unpin_block $at
@@ -1426,13 +1426,6 @@ __tt_next() {
1426
1426
  REPLY=${TTHEME_PALETTE[$TTHEME_ORDER[idx]]}
1427
1427
  }
1428
1428
 
1429
- __tt_rotate() {
1430
- local REPLY
1431
- __tt_next
1432
- __tt_wear "$REPLY" "" force
1433
- __tt_announce
1434
- }
1435
-
1436
1429
  source $TTHEME_HOME/preview.zsh
1437
1430
 
1438
1431
  __tt_hook() {
@@ -1464,7 +1457,7 @@ ttheme() {
1464
1457
  fi
1465
1458
  case $1 in
1466
1459
  -h|--help) __tt_help; return 0 ;;
1467
- -V|--version) __tt_cli --version; return ;;
1460
+ -v|--version) __tt_cli --version; return ;;
1468
1461
  help) __tt_verb_help $2; return 0 ;;
1469
1462
  -*) print -u2 "ttheme: unknown option $1 — see \`ttheme help\`"; return 1 ;;
1470
1463
  esac
@@ -1502,7 +1495,6 @@ ttheme() {
1502
1495
  __tt_resolve "$2" || return 1
1503
1496
  __tt_wear "${TTHEME_PALETTE[$REPLY]}" "$REPLY" force
1504
1497
  __tt_announce ;;
1505
- next) __tt_rotate ;;
1506
1498
  default)
1507
1499
  __tt_resolve "$2" || return 1
1508
1500
  __tt_keep "$REPLY" ;;