tuiの文字間隔修正・prompt設計の計画

This commit is contained in:
2026-04-14 13:11:18 +09:00
parent cbf728d66a
commit 309dba7203
7 changed files with 188 additions and 4 deletions
+2 -1
View File
@@ -6,7 +6,8 @@ license.workspace = true
[dependencies]
protocol = { path = "../protocol" }
ratatui = "0.30.0"
ratatui = { version = "0.30.0", features = ["scrolling-regions"] }
crossterm = "0.28"
tokio = { version = "1.49", features = ["rt-multi-thread", "macros", "net", "io-util", "sync", "time"] }
serde_json = "1.0"
unicode-width = "0.2.2"
+2 -1
View File
@@ -3,6 +3,7 @@ use ratatui::layout::{Alignment, Constraint, Layout, Position, Rect};
use ratatui::style::{Color, Modifier, Style};
use ratatui::text::{Line, Span};
use ratatui::widgets::{Block, Padding, Paragraph, Wrap};
use unicode_width::UnicodeWidthStr;
use crate::app::{App, MessageKind, OutputItem, fmt_tokens};
@@ -153,7 +154,7 @@ fn draw_input(frame: &mut Frame, app: &App, area: Rect) {
]);
frame.render_widget(Paragraph::new(line), area);
let cursor_x = area.x + 2 + app.input[..app.cursor].chars().count() as u16;
let cursor_x = area.x + 2 + UnicodeWidthStr::width(&app.input[..app.cursor]) as u16;
let cursor_y = area.y;
frame.set_cursor_position(Position::new(cursor_x, cursor_y));
}