Skip to content

Commit 9b3b2a2

Browse files
authored
Full grapheme support (#45)
* Add full grapheme support Continuing the work of @cammeresi ... * Refactor tests
1 parent bf99413 commit 9b3b2a2

6 files changed

Lines changed: 555 additions & 490 deletions

File tree

src/backend/crossterm.rs

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -128,37 +128,4 @@ impl EventHandler for Input {
128128
}
129129

130130
#[cfg(test)]
131-
mod tests {
132-
use super::*;
133-
use ratatui::crossterm::event::{
134-
Event, KeyCode, KeyEvent, KeyEventKind, KeyEventState, KeyModifiers,
135-
};
136-
137-
#[test]
138-
fn handle_tab() {
139-
let evt = Event::Key(KeyEvent {
140-
code: KeyCode::Tab,
141-
modifiers: KeyModifiers::NONE,
142-
kind: KeyEventKind::Press,
143-
state: KeyEventState::NONE,
144-
});
145-
146-
let req = to_input_request(&evt);
147-
148-
assert!(req.is_none());
149-
}
150-
151-
#[test]
152-
fn handle_repeat() {
153-
let evt = Event::Key(KeyEvent {
154-
code: KeyCode::Char('a'),
155-
modifiers: KeyModifiers::NONE,
156-
kind: KeyEventKind::Repeat,
157-
state: KeyEventState::NONE,
158-
});
159-
160-
let req = to_input_request(&evt);
161-
162-
assert_eq!(req, Some(InputRequest::InsertChar('a')));
163-
}
164-
}
131+
mod tests;

src/backend/crossterm/tests.rs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
use super::*;
2+
use ratatui::crossterm::event::{
3+
Event, KeyCode, KeyEvent, KeyEventKind, KeyEventState, KeyModifiers,
4+
};
5+
6+
#[test]
7+
fn handle_tab() {
8+
let evt = Event::Key(KeyEvent {
9+
code: KeyCode::Tab,
10+
modifiers: KeyModifiers::NONE,
11+
kind: KeyEventKind::Press,
12+
state: KeyEventState::NONE,
13+
});
14+
15+
let req = to_input_request(&evt);
16+
17+
assert!(req.is_none());
18+
}
19+
20+
#[test]
21+
fn handle_repeat() {
22+
let evt = Event::Key(KeyEvent {
23+
code: KeyCode::Char('a'),
24+
modifiers: KeyModifiers::NONE,
25+
kind: KeyEventKind::Repeat,
26+
state: KeyEventState::NONE,
27+
});
28+
29+
let req = to_input_request(&evt);
30+
31+
assert_eq!(req, Some(InputRequest::InsertChar('a')));
32+
}

src/backend/termion.rs

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -84,15 +84,4 @@ impl EventHandler for Input {
8484
}
8585

8686
#[cfg(test)]
87-
mod tests {
88-
use super::*;
89-
90-
#[test]
91-
fn handle_tab() {
92-
let evt = Event::Key(Key::Char('\t'));
93-
94-
let req = to_input_request(&evt);
95-
96-
assert!(req.is_none());
97-
}
98-
}
87+
mod tests;

src/backend/termion/tests.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
use super::*;
2+
3+
#[test]
4+
fn handle_tab() {
5+
let evt = Event::Key(Key::Char('\t'));
6+
7+
let req = to_input_request(&evt);
8+
9+
assert!(req.is_none());
10+
}

0 commit comments

Comments
 (0)