mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2026-06-05 01:13:16 +02:00
iTerm2 3.7.0 added receiver support for the OSC 133 k= attribute (Semantic Prompt prompt kinds: k=i initial, k=s secondary/PS2, k=c continuation, k=r right). When emitted by the shell, iTerm2 records the bracketed cells as non-input on the active primary prompt mark, so consumers (Select Current Command, share-as-URL, AI prompt extraction, the Python GetPromptResponse.excluded_subranges field) can subtract them from the typed-command range. Two gaps for iTerm2 today: 1. The RPROMPT k=r wrap in _p9k_init_prompt is gated to WarpTerminal. iTerm2 sessions never trip the gate, so right-prompt cells leak into "Select Current Command", share URLs, etc. 2. p10k replaces iTerm2's iterm2_decorate_prompt with a stub that only records ITERM2_PRECMD_PS1. iTerm2's original function also wraps PS2 with OSC 133; the stub drops that wrap entirely, so multi-line input (for, while, unclosed quotes, heredocs, backslash continuations) produces no k=s markers and iTerm2 has no way to tell PS2-prefix cells apart from user input. Both fixes are gated on iTerm2 >= 3.7.0 via TERM_PROGRAM_VERSION == (3.<7->*|<4->.*). Older iTerm2 receivers do not parse k= and would treat k=r/k=s markers as spurious primary prompts (extra navigation marks, broken command-range tracking, broken paste-each-line semantics). WarpTerminal behavior is unchanged. The ITERM2_SQUELCH_PS2_MARK opt-out from iTerm2's original iterm2_decorate_prompt is preserved. |
||
|---|---|---|
| .. | ||
| configure.zsh | ||
| icons.zsh | ||
| notes.md | ||
| p10k.zsh | ||
| parser.zsh | ||
| wizard.zsh | ||
| worker.zsh | ||