mirror of
https://github.com/l0ng-ai/tty7.git
synced 2026-09-22 16:02:24 +00:00
* feat(terminal): multi-line command editor at the prompt The inline prompt editor was single-line: a pasted multi-line command kept its newlines inline but rendered them as blank cells in one flex-wrapped row, flattening the command into a ragged blob with the original indentation left as runs of spaces. Make the editor genuinely line-aware: - render_input_bar splits the buffer on '\n' and stacks each logical line as its own flex-wrap row, so newlines become real breaks (soft-wrap within a line is unchanged); ghost autosuggestion is suppressed for multi-line input. - submit replays each embedded newline as an Enter so the shell's own line editor assembles the command (backslash / open-quote continuation, PS2). - up/down move the caret between visual rows with a sticky goal column, falling through to history recall only from the top/bottom row. - Home/End (Ctrl-A/E) act within the current logical line. - click mapping treats '\n' as a hard break (past a line's content snaps to its end, not onto the next line). - Shift+Enter / Opt+Enter insert a newline to author multi-line commands. Adds tests for logical-line Home/End and newline-aware click mapping. * fix(terminal): I-beam mouse pointer over selectable text The surface only set a pointer style (PointingHand) over hovered links, so everywhere else the OS default arrow showed over the terminal text. Default to an I-beam over the text like every other terminal, keep the pointing hand for links, and leave the arrow only once a program takes over mouse reporting (matching Terminal.app / iTerm). * style: cargo fmt --------- Co-authored-by: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com>