cove/src/ui/util.rs
2022-06-27 10:14:30 +02:00

20 lines
534 B
Rust

use std::sync::Arc;
use parking_lot::FairMutex;
use toss::terminal::Terminal;
pub fn prompt(terminal: &mut Terminal, crossterm_lock: &Arc<FairMutex<()>>) -> Option<String> {
let content = {
let _guard = crossterm_lock.lock();
terminal.suspend().expect("could not suspend");
let content = edit::edit("").expect("could not edit");
terminal.unsuspend().expect("could not unsuspend");
content
};
if content.trim().is_empty() {
None
} else {
Some(content)
}
}