aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/line.rs
diff options
context:
space:
mode:
Diffstat (limited to 'helix-term/src/line.rs')
-rw-r--r--helix-term/src/line.rs72
1 files changed, 0 insertions, 72 deletions
diff --git a/helix-term/src/line.rs b/helix-term/src/line.rs
deleted file mode 100644
index b4b88655..00000000
--- a/helix-term/src/line.rs
+++ /dev/null
@@ -1,72 +0,0 @@
-//! Demonstrates how to read events asynchronously with async-std.
-//!
-//! cargo run --features="event-stream" --example event-stream-async-std
-
-use std::{
- io::{stdout, Write},
- time::Duration,
-};
-
-use futures::{future::FutureExt, select, StreamExt};
-use smol::Timer;
-// use futures_timer::Delay;
-
-use crossterm::{
- cursor::position,
- event::{DisableMouseCapture, EnableMouseCapture, Event, EventStream, KeyCode},
- execute,
- terminal::{disable_raw_mode, enable_raw_mode},
- Result,
-};
-
-const HELP: &str = r#"EventStream based on futures::Stream with async-std
- - Keyboard, mouse and terminal resize events enabled
- - Prints "." every second if there's no event
- - Hit "c" to print current cursor position
- - Use Esc to quit
-"#;
-
-async fn print_events() {
- let mut reader = EventStream::new();
-
- loop {
- let mut delay = Timer::after(Duration::from_millis(1_000)).fuse();
- let mut event = reader.next().fuse();
-
- select! {
- _ = delay => { println!(".\r"); },
- maybe_event = event => {
- match maybe_event {
- Some(Ok(event)) => {
- println!("Event::{:?}\r", event);
-
- if event == Event::Key(KeyCode::Char('c').into()) {
- println!("Cursor position: {:?}\r", position());
- }
-
- if event == Event::Key(KeyCode::Esc.into()) {
- break;
- }
- }
- Some(Err(e)) => println!("Error: {:?}\r", e),
- None => break,
- }
- }
- };
- }
-}
-
-fn main() -> Result<()> {
- println!("{}", HELP);
-
- enable_raw_mode()?;
-
- let mut stdout = stdout();
- execute!(stdout, EnableMouseCapture)?;
-
- smol::run(print_events());
-
- execute!(stdout, DisableMouseCapture)?;
-
- disable_raw_mode()
-}