ui: two-column layout for conversation pane with marker gutter
Split conversation pane into 2-char gutter + text column. Gutter shows ● markers at turn boundaries (Cyan for user, Magenta for assistant), aligned with the input area's ' > ' gutter. Key changes: - Added Marker enum (None/User/Assistant) and parallel markers vec - Track turn boundaries via pending_marker field - New draw_conversation_pane() with visual row computation for wrapping - Both gutter and text scroll synchronously by visual line offset This fixes the wrapping alignment issue where continuation lines aligned under markers instead of under the text.
This commit is contained in:
parent
78b22d6cae
commit
acc878b9a4
4 changed files with 254 additions and 201 deletions
15
Cargo.lock
generated
15
Cargo.lock
generated
|
|
@ -2804,6 +2804,7 @@ dependencies = [
|
|||
"tiktoken-rs",
|
||||
"tokio",
|
||||
"tui-markdown",
|
||||
"tui-textarea-2",
|
||||
"unicode-width",
|
||||
"walkdir",
|
||||
]
|
||||
|
|
@ -4601,6 +4602,20 @@ dependencies = [
|
|||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tui-textarea-2"
|
||||
version = "0.10.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "74a31ca0965e3ff6a7ac5ecb02b20a88b4f68ebf138d8ae438e8510b27a1f00f"
|
||||
dependencies = [
|
||||
"crossterm 0.29.0",
|
||||
"portable-atomic",
|
||||
"ratatui-core",
|
||||
"ratatui-widgets",
|
||||
"unicode-segmentation",
|
||||
"unicode-width",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "typenum"
|
||||
version = "1.19.0"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue