vtcode_core/ui/
terminal.rs1use is_terminal::IsTerminal;
4use std::io::Write;
5
6pub fn get_terminal_width() -> usize {
8 terminal_size::terminal_size()
9 .map(|(terminal_size::Width(w), _)| w as usize)
10 .unwrap_or(80)
11}
12
13pub fn flush_stdout() {
15 std::io::stdout().flush().ok();
16}
17
18pub fn read_line() -> std::io::Result<String> {
20 let mut buffer = String::new();
21 std::io::stdin().read_line(&mut buffer)?;
22 Ok(buffer.trim().to_string())
23}
24
25pub fn is_piped_output() -> bool {
27 !std::io::stdout().is_terminal()
28}
29
30pub fn is_piped_input() -> bool {
32 !std::io::stdin().is_terminal()
33}