mirror of
https://github.com/openai/codex.git
synced 2026-05-03 12:52:11 +03:00
This is a follow-up to https://github.com/openai/codex/pull/15922. That previous PR deleted the old `tui` directory and left the new `tui_app_server` directory in place. This PR renames `tui_app_server` to `tui` and fixes up all references.
38 lines
894 B
Rust
38 lines
894 B
Rust
use std::fmt;
|
|
use std::io;
|
|
use std::io::stdout;
|
|
|
|
use crossterm::Command;
|
|
use ratatui::crossterm::execute;
|
|
|
|
#[derive(Debug, Default)]
|
|
pub struct Osc9Backend;
|
|
|
|
impl Osc9Backend {
|
|
pub fn notify(&mut self, message: &str) -> io::Result<()> {
|
|
execute!(stdout(), PostNotification(message.to_string()))
|
|
}
|
|
}
|
|
|
|
/// Command that emits an OSC 9 desktop notification with a message.
|
|
#[derive(Debug, Clone)]
|
|
pub struct PostNotification(pub String);
|
|
|
|
impl Command for PostNotification {
|
|
fn write_ansi(&self, f: &mut impl fmt::Write) -> fmt::Result {
|
|
write!(f, "\x1b]9;{}\x07", self.0)
|
|
}
|
|
|
|
#[cfg(windows)]
|
|
fn execute_winapi(&self) -> io::Result<()> {
|
|
Err(std::io::Error::other(
|
|
"tried to execute PostNotification using WinAPI; use ANSI instead",
|
|
))
|
|
}
|
|
|
|
#[cfg(windows)]
|
|
fn is_ansi_code_supported(&self) -> bool {
|
|
true
|
|
}
|
|
}
|