tuiの文字間隔修正・prompt設計の計画
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user