summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoscha <joscha@plugh.de>2022-08-30 17:25:50 +0200
committerJoscha <joscha@plugh.de>2022-08-30 17:25:50 +0200
commit21245a82744521f0243acea94d32ae083465ca60 (patch)
tree367055397ef15f5b217b688057827757c139eb87
parent5eeabea2de7473ed28228dcc1a0fc13973f7e23e (diff)
Use absolute paths in key! macro
-rw-r--r--src/ui.rs3
-rw-r--r--src/ui/chat/tree.rs3
-rw-r--r--src/ui/euph/account.rs3
-rw-r--r--src/ui/euph/auth.rs3
-rw-r--r--src/ui/euph/links.rs3
-rw-r--r--src/ui/euph/nick.rs3
-rw-r--r--src/ui/euph/room.rs3
-rw-r--r--src/ui/input.rs31
-rw-r--r--src/ui/rooms.rs3
-rw-r--r--src/ui/util.rs7
10 files changed, 26 insertions, 36 deletions
diff --git a/src/ui.rs b/src/ui.rs
index ddca402..24e133a 100644
--- a/src/ui.rs
+++ b/src/ui.rs
@@ -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'),