diff options
author | Joscha <joscha@plugh.de> | 2022-08-30 17:25:50 +0200 |
---|---|---|
committer | Joscha <joscha@plugh.de> | 2022-08-30 17:25:50 +0200 |
commit | 21245a82744521f0243acea94d32ae083465ca60 (patch) | |
tree | 367055397ef15f5b217b688057827757c139eb87 | |
parent | 5eeabea2de7473ed28228dcc1a0fc13973f7e23e (diff) |
Use absolute paths in key! macro
-rw-r--r-- | src/ui.rs | 3 | ||||
-rw-r--r-- | src/ui/chat/tree.rs | 3 | ||||
-rw-r--r-- | src/ui/euph/account.rs | 3 | ||||
-rw-r--r-- | src/ui/euph/auth.rs | 3 | ||||
-rw-r--r-- | src/ui/euph/links.rs | 3 | ||||
-rw-r--r-- | src/ui/euph/nick.rs | 3 | ||||
-rw-r--r-- | src/ui/euph/room.rs | 3 | ||||
-rw-r--r-- | src/ui/input.rs | 31 | ||||
-rw-r--r-- | src/ui/rooms.rs | 3 | ||||
-rw-r--r-- | src/ui/util.rs | 7 |
10 files changed, 26 insertions, 36 deletions
@@ -10,7 +10,6 @@ use std::io; use std::sync::{Arc, Weak}; use std::time::{Duration, Instant}; -use crossterm::event::KeyCode; use parking_lot::FairMutex; use tokio::sync::mpsc::error::TryRecvError; use tokio::sync::mpsc::{self, UnboundedReceiver, UnboundedSender}; @@ -25,7 +24,7 @@ use crate::vault::Vault; pub use self::chat::ChatMsg; use self::chat::ChatState; -use self::input::{key, InputEvent, KeyBindingsList, KeyEvent}; +use self::input::{key, InputEvent, KeyBindingsList}; use self::rooms::Rooms; use self::widgets::layer::Layer; use self::widgets::list::ListState; diff --git a/src/ui/chat/tree.rs b/src/ui/chat/tree.rs index e9523ac..2ea917f 100644 --- a/src/ui/chat/tree.rs +++ b/src/ui/chat/tree.rs @@ -9,14 +9,13 @@ use std::collections::HashSet; use std::sync::Arc; use async_trait::async_trait; -use crossterm::event::KeyCode; use parking_lot::FairMutex; use tokio::sync::Mutex; use toss::frame::{Frame, Pos, Size}; use toss::terminal::Terminal; use crate::store::{Msg, MsgStore}; -use crate::ui::input::{key, InputEvent, KeyBindingsList, KeyEvent}; +use crate::ui::input::{key, InputEvent, KeyBindingsList}; use crate::ui::util; use crate::ui::widgets::editor::EditorState; use crate::ui::widgets::Widget; diff --git a/src/ui/euph/account.rs b/src/ui/euph/account.rs index 546ce2c..fd16546 100644 --- a/src/ui/euph/account.rs +++ b/src/ui/euph/account.rs @@ -1,6 +1,5 @@ use std::sync::Arc; -use crossterm::event::KeyCode; use crossterm::style::{ContentStyle, Stylize}; use euphoxide::api::PersonalAccountView; use euphoxide::conn::Status; @@ -8,7 +7,7 @@ use parking_lot::FairMutex; use toss::terminal::Terminal; use crate::euph::Room; -use crate::ui::input::{key, InputEvent, KeyBindingsList, KeyEvent}; +use crate::ui::input::{key, InputEvent, KeyBindingsList}; use crate::ui::util; use crate::ui::widgets::editor::EditorState; use crate::ui::widgets::empty::Empty; diff --git a/src/ui/euph/auth.rs b/src/ui/euph/auth.rs index 7767df0..46d83e2 100644 --- a/src/ui/euph/auth.rs +++ b/src/ui/euph/auth.rs @@ -1,11 +1,10 @@ use std::sync::Arc; -use crossterm::event::KeyCode; use parking_lot::FairMutex; use toss::terminal::Terminal; use crate::euph::Room; -use crate::ui::input::{key, InputEvent, KeyBindingsList, KeyEvent}; +use crate::ui::input::{key, InputEvent, KeyBindingsList}; use crate::ui::util; use crate::ui::widgets::editor::EditorState; use crate::ui::widgets::popup::Popup; diff --git a/src/ui/euph/links.rs b/src/ui/euph/links.rs index e782fc6..553e7ff 100644 --- a/src/ui/euph/links.rs +++ b/src/ui/euph/links.rs @@ -1,11 +1,10 @@ use std::io; -use crossterm::event::KeyCode; use crossterm::style::{ContentStyle, Stylize}; use linkify::{LinkFinder, LinkKind}; use toss::styled::Styled; -use crate::ui::input::{key, InputEvent, KeyBindingsList, KeyEvent}; +use crate::ui::input::{key, InputEvent, KeyBindingsList}; use crate::ui::widgets::list::ListState; use crate::ui::widgets::popup::Popup; use crate::ui::widgets::text::Text; diff --git a/src/ui/euph/nick.rs b/src/ui/euph/nick.rs index 513e0e4..24f7178 100644 --- a/src/ui/euph/nick.rs +++ b/src/ui/euph/nick.rs @@ -1,13 +1,12 @@ use std::sync::Arc; -use crossterm::event::KeyCode; use euphoxide::conn::Joined; use parking_lot::FairMutex; use toss::styled::Styled; use toss::terminal::Terminal; use crate::euph::{self, Room}; -use crate::ui::input::{key, InputEvent, KeyBindingsList, KeyEvent}; +use crate::ui::input::{key, InputEvent, KeyBindingsList}; use crate::ui::util; use crate::ui::widgets::editor::EditorState; use crate::ui::widgets::padding::Padding; diff --git a/src/ui/euph/room.rs b/src/ui/euph/room.rs index f9a255d..a671439 100644 --- a/src/ui/euph/room.rs +++ b/src/ui/euph/room.rs @@ -1,7 +1,6 @@ use std::collections::VecDeque; use std::sync::Arc; -use crossterm::event::KeyCode; use crossterm::style::{ContentStyle, Stylize}; use euphoxide::api::{Data, PacketType, Snowflake}; use euphoxide::conn::{Joined, Joining, Status}; @@ -16,7 +15,7 @@ use crate::euph::{self, EuphRoomEvent}; use crate::macros::{ok_or_return, some_or_return}; use crate::store::MsgStore; use crate::ui::chat::{ChatState, Reaction}; -use crate::ui::input::{key, InputEvent, KeyBindingsList, KeyEvent}; +use crate::ui::input::{key, InputEvent, KeyBindingsList}; use crate::ui::widgets::border::Border; use crate::ui::widgets::editor::EditorState; use crate::ui::widgets::join::{HJoin, Segment, VJoin}; diff --git a/src/ui/input.rs b/src/ui/input.rs index 2d1eb23..00ec1cd 100644 --- a/src/ui/input.rs +++ b/src/ui/input.rs @@ -53,33 +53,32 @@ impl From<crossterm::event::KeyEvent> for KeyEvent { } } -// TODO Use absolute paths #[rustfmt::skip] macro_rules! key { // key!(Paste text) - ( Paste $text:ident ) => { InputEvent::Paste($text) }; + ( Paste $text:ident ) => { crate::ui::input::InputEvent::Paste($text) }; // key!('a') - ( $key:literal ) => { InputEvent::Key(KeyEvent { code: KeyCode::Char($key), shift: _, ctrl: false, alt: false, }) }; - ( Ctrl + $key:literal ) => { InputEvent::Key(KeyEvent { code: KeyCode::Char($key), shift: _, ctrl: true, alt: false, }) }; - ( Alt + $key:literal ) => { InputEvent::Key(KeyEvent { code: KeyCode::Char($key), shift: _, ctrl: false, alt: true, }) }; + ( $key:literal ) => { crate::ui::input::InputEvent::Key(crate::ui::input::KeyEvent { code: crossterm::event::KeyCode::Char($key), shift: _, ctrl: false, alt: false, }) }; + ( Ctrl + $key:literal ) => { crate::ui::input::InputEvent::Key(crate::ui::input::KeyEvent { code: crossterm::event::KeyCode::Char($key), shift: _, ctrl: true, alt: false, }) }; + ( Alt + $key:literal ) => { crate::ui::input::InputEvent::Key(crate::ui::input::KeyEvent { code: crossterm::event::KeyCode::Char($key), shift: _, ctrl: false, alt: true, }) }; // key!(Char c) - ( Char $key:pat ) => { InputEvent::Key(KeyEvent { code: KeyCode::Char($key), shift: _, ctrl: false, alt: false, }) }; - ( Ctrl + Char $key:pat ) => { InputEvent::Key(KeyEvent { code: KeyCode::Char($key), shift: _, ctrl: true, alt: false, }) }; - ( Alt + Char $key:pat ) => { InputEvent::Key(KeyEvent { code: KeyCode::Char($key), shift: _, ctrl: false, alt: true, }) }; + ( Char $key:pat ) => { crate::ui::input::InputEvent::Key(crate::ui::input::KeyEvent { code: crossterm::event::KeyCode::Char($key), shift: _, ctrl: false, alt: false, }) }; + ( Ctrl + Char $key:pat ) => { crate::ui::input::InputEvent::Key(crate::ui::input::KeyEvent { code: crossterm::event::KeyCode::Char($key), shift: _, ctrl: true, alt: false, }) }; + ( Alt + Char $key:pat ) => { crate::ui::input::InputEvent::Key(crate::ui::input::KeyEvent { code: crossterm::event::KeyCode::Char($key), shift: _, ctrl: false, alt: true, }) }; // key!(F n) - ( F $key:pat ) => { InputEvent::Key(KeyEvent { code: KeyCode::F($key), shift: false, ctrl: false, alt: false, }) }; - ( Shift + F $key:pat ) => { InputEvent::Key(KeyEvent { code: KeyCode::F($key), shift: true, ctrl: false, alt: false, }) }; - ( Ctrl + F $key:pat ) => { InputEvent::Key(KeyEvent { code: KeyCode::F($key), shift: false, ctrl: true, alt: false, }) }; - ( Alt + F $key:pat ) => { InputEvent::Key(KeyEvent { code: KeyCode::F($key), shift: false, ctrl: false, alt: true, }) }; + ( F $key:pat ) => { crate::ui::input::InputEvent::Key(crate::ui::input::KeyEvent { code: crossterm::event::KeyCode::F($key), shift: false, ctrl: false, alt: false, }) }; + ( Shift + F $key:pat ) => { crate::ui::input::InputEvent::Key(crate::ui::input::KeyEvent { code: crossterm::event::KeyCode::F($key), shift: true, ctrl: false, alt: false, }) }; + ( Ctrl + F $key:pat ) => { crate::ui::input::InputEvent::Key(crate::ui::input::KeyEvent { code: crossterm::event::KeyCode::F($key), shift: false, ctrl: true, alt: false, }) }; + ( Alt + F $key:pat ) => { crate::ui::input::InputEvent::Key(crate::ui::input::KeyEvent { code: crossterm::event::KeyCode::F($key), shift: false, ctrl: false, alt: true, }) }; // key!(other) - ( $key:ident ) => { InputEvent::Key(KeyEvent { code: KeyCode::$key, shift: false, ctrl: false, alt: false, }) }; - ( Shift + $key:ident ) => { InputEvent::Key(KeyEvent { code: KeyCode::$key, shift: true, ctrl: false, alt: false, }) }; - ( Ctrl + $key:ident ) => { InputEvent::Key(KeyEvent { code: KeyCode::$key, shift: false, ctrl: true, alt: false, }) }; - ( Alt + $key:ident ) => { InputEvent::Key(KeyEvent { code: KeyCode::$key, shift: false, ctrl: false, alt: true, }) }; + ( $key:ident ) => { crate::ui::input::InputEvent::Key(crate::ui::input::KeyEvent { code: crossterm::event::KeyCode::$key, shift: false, ctrl: false, alt: false, }) }; + ( Shift + $key:ident ) => { crate::ui::input::InputEvent::Key(crate::ui::input::KeyEvent { code: crossterm::event::KeyCode::$key, shift: true, ctrl: false, alt: false, }) }; + ( Ctrl + $key:ident ) => { crate::ui::input::InputEvent::Key(crate::ui::input::KeyEvent { code: crossterm::event::KeyCode::$key, shift: false, ctrl: true, alt: false, }) }; + ( Alt + $key:ident ) => { crate::ui::input::InputEvent::Key(crate::ui::input::KeyEvent { code: crossterm::event::KeyCode::$key, shift: false, ctrl: false, alt: true, }) }; } pub(crate) use key; diff --git a/src/ui/rooms.rs b/src/ui/rooms.rs index 0cb77c4..80c4b4c 100644 --- a/src/ui/rooms.rs +++ b/src/ui/rooms.rs @@ -2,7 +2,6 @@ use std::collections::{HashMap, HashSet}; use std::iter; use std::sync::Arc; -use crossterm::event::KeyCode; use crossterm::style::{ContentStyle, Stylize}; use euphoxide::api::SessionType; use euphoxide::conn::{Joined, Status}; @@ -16,7 +15,7 @@ use crate::euph::EuphRoomEvent; use crate::vault::Vault; use super::euph::room::{EuphRoom, RoomStatus}; -use super::input::{key, InputEvent, KeyBindingsList, KeyEvent}; +use super::input::{key, InputEvent, KeyBindingsList}; use super::widgets::editor::EditorState; use super::widgets::join::{HJoin, Segment, VJoin}; use super::widgets::layer::Layer; diff --git a/src/ui/util.rs b/src/ui/util.rs index 0b2fed5..6b58796 100644 --- a/src/ui/util.rs +++ b/src/ui/util.rs @@ -1,10 +1,9 @@ use std::sync::Arc; -use crossterm::event::KeyCode; use parking_lot::FairMutex; use toss::terminal::Terminal; -use super::input::{key, InputEvent, KeyBindingsList, KeyEvent}; +use super::input::{key, InputEvent, KeyBindingsList}; use super::widgets::editor::EditorState; pub fn prompt( @@ -73,8 +72,8 @@ pub fn handle_editor_input_event( // Enter with *any* modifier pressed - if ctrl and shift don't // work, maybe alt does key!(Enter) => return false, - InputEvent::Key(KeyEvent { - code: KeyCode::Enter, + InputEvent::Key(crate::ui::input::KeyEvent { + code: crossterm::event::KeyCode::Enter, .. }) if char_filter('\n') => editor.insert_char(terminal.frame(), '\n'), |