重构: 优化终端初始化和清理流程
This commit is contained in:
parent
bcee62713f
commit
38425e23f6
@ -25,17 +25,20 @@ pub async fn run(gateway_url: &str) -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
app.ws_sender = Some(ws_sender);
|
app.ws_sender = Some(ws_sender);
|
||||||
app.ws_receiver = Some(ws_receiver);
|
app.ws_receiver = Some(ws_receiver);
|
||||||
|
|
||||||
|
// 初始化终端
|
||||||
enable_raw_mode()?;
|
enable_raw_mode()?;
|
||||||
let mut stdout = io::stdout();
|
let mut stdout = io::stdout();
|
||||||
execute!(stdout, EnterAlternateScreen)?;
|
execute!(stdout, EnterAlternateScreen)?;
|
||||||
let backend = CrosstermBackend::new(stdout);
|
let backend = CrosstermBackend::new(stdout);
|
||||||
let mut terminal = Terminal::new(backend)?;
|
let mut terminal = Terminal::new(backend)?;
|
||||||
|
terminal.clear()?;
|
||||||
|
|
||||||
let result = run_app(&mut terminal, app).await;
|
let result = run_app(&mut terminal, app).await;
|
||||||
|
|
||||||
disable_raw_mode()?;
|
// 清理终端 - 确保正确的顺序,忽略错误
|
||||||
execute!(terminal.backend_mut(), LeaveAlternateScreen)?;
|
let _ = execute!(terminal.backend_mut(), LeaveAlternateScreen);
|
||||||
terminal.show_cursor()?;
|
let _ = disable_raw_mode();
|
||||||
|
let _ = terminal.show_cursor();
|
||||||
|
|
||||||
result
|
result
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user