summaryrefslogtreecommitdiff
path: root/src/widgets/luaeditor
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/luaeditor')
-rw-r--r--src/widgets/luaeditor/mod.rs68
1 files changed, 15 insertions, 53 deletions
diff --git a/src/widgets/luaeditor/mod.rs b/src/widgets/luaeditor/mod.rs
index 620de4c..4bcb5d2 100644
--- a/src/widgets/luaeditor/mod.rs
+++ b/src/widgets/luaeditor/mod.rs
@@ -1,17 +1,17 @@
use ratatui::{
- crossterm::event::{KeyCode, KeyEvent, KeyModifiers},
+ crossterm::event::{KeyCode, KeyEvent},
layout::Rect,
text::{ToLine, ToSpan},
widgets::{Paragraph, Widget},
};
use tree_sitter_highlight::HighlightConfiguration;
+use crate::{config::keymap::EditorKeyMap, lua};
use crate::{
config::{theme::editor::bar::EditorBarTheme, GlobalConfig},
- state::{editor::{bar::EditorBarState, EditorState}, window::Window, GlobalState},
+ state::{editor::bar::EditorBarState, GlobalState},
tuicursor::TuiCursor,
};
-use crate::{cursor::CursorMove, lua};
use super::statusbar::StatusBar;
@@ -34,57 +34,19 @@ impl LuaEditor {
}
pub fn handle_key_event(&mut self, event: KeyEvent) {
- match event.code {
- KeyCode::Char('r') if event.modifiers == KeyModifiers::CONTROL => {
- EditorState::run(&lua::get())
- }
- KeyCode::Char(c) => GlobalState::instance_mut().editor.buffer.insert(c),
- KeyCode::Backspace => {
- GlobalState::instance_mut().editor.buffer.delete();
- }
- KeyCode::Enter => {
- GlobalState::instance_mut().editor.buffer.insert('\n');
- }
- KeyCode::Left => GlobalState::instance_mut()
- .editor
- .buffer
- .move_cursor(CursorMove::Left(1)),
- KeyCode::Right => GlobalState::instance_mut()
- .editor
- .buffer
- .move_cursor(CursorMove::Right(1)),
- KeyCode::Up => GlobalState::instance_mut()
- .editor
- .buffer
- .move_cursor(CursorMove::Up(1)),
- KeyCode::Down => GlobalState::instance_mut()
- .editor
- .buffer
- .move_cursor(CursorMove::Down(1)),
- KeyCode::Home => {}
- KeyCode::End => {}
- KeyCode::PageUp => {}
- KeyCode::PageDown => {}
- KeyCode::Tab => GlobalState::instance_mut().editor.buffer.insert('\t'),
- KeyCode::BackTab => {}
- KeyCode::Delete => {}
- KeyCode::Insert => {}
- KeyCode::F(_) => {}
- KeyCode::Null => {}
- KeyCode::Esc => {
- let mut state = GlobalState::instance_mut();
- state.editor.visible = false;
- state.set_focus(Window::View)
+ let r = EditorKeyMap::handle(event);
+
+ if r.unwrap_or(true) {
+ match event.code {
+ KeyCode::Char(c) => GlobalState::instance_mut().editor.buffer.insert(c),
+ KeyCode::Backspace => {
+ GlobalState::instance_mut().editor.buffer.delete();
+ }
+ KeyCode::Enter => {
+ GlobalState::instance_mut().editor.buffer.insert('\n');
+ }
+ _ => {}
}
- KeyCode::CapsLock => {}
- KeyCode::ScrollLock => {}
- KeyCode::NumLock => {}
- KeyCode::PrintScreen => {}
- KeyCode::Pause => {}
- KeyCode::Menu => {}
- KeyCode::KeypadBegin => {}
- KeyCode::Media(_) => {}
- KeyCode::Modifier(_) => {}
}
}