Restructure action macro to assign a namespace to every action
Also, allow arbitrary types to be used as Actions via the impl_actions macro Co-authored-by: Nathan Sobo <nathan@zed.dev> Co-authored-by: Keith Simmons <keith@zed.dev>
This commit is contained in:
parent
206b0f0f8c
commit
5242a3a6dc
33 changed files with 432 additions and 306 deletions
|
|
@ -1,23 +1,42 @@
|
|||
mod g_prefix;
|
||||
|
||||
use crate::{mode::NormalState, Mode, SwitchMode, VimState};
|
||||
use editor::{char_kind, movement, Bias};
|
||||
use gpui::{action, keymap::Binding, MutableAppContext, ViewContext};
|
||||
use gpui::{actions, impl_actions, keymap::Binding, MutableAppContext, ViewContext};
|
||||
use language::SelectionGoal;
|
||||
use workspace::Workspace;
|
||||
|
||||
use crate::{mode::NormalState, Mode, SwitchMode, VimState};
|
||||
#[derive(Clone)]
|
||||
struct MoveToNextWordStart(pub bool);
|
||||
|
||||
action!(GPrefix);
|
||||
action!(MoveLeft);
|
||||
action!(MoveDown);
|
||||
action!(MoveUp);
|
||||
action!(MoveRight);
|
||||
action!(MoveToStartOfLine);
|
||||
action!(MoveToEndOfLine);
|
||||
action!(MoveToEnd);
|
||||
action!(MoveToNextWordStart, bool);
|
||||
action!(MoveToNextWordEnd, bool);
|
||||
action!(MoveToPreviousWordStart, bool);
|
||||
#[derive(Clone)]
|
||||
struct MoveToNextWordEnd(pub bool);
|
||||
|
||||
#[derive(Clone)]
|
||||
struct MoveToPreviousWordStart(pub bool);
|
||||
|
||||
impl_actions!(
|
||||
vim,
|
||||
[
|
||||
MoveToNextWordStart,
|
||||
MoveToNextWordEnd,
|
||||
MoveToPreviousWordStart,
|
||||
]
|
||||
);
|
||||
|
||||
actions!(
|
||||
vim,
|
||||
[
|
||||
GPrefix,
|
||||
MoveLeft,
|
||||
MoveDown,
|
||||
MoveUp,
|
||||
MoveRight,
|
||||
MoveToStartOfLine,
|
||||
MoveToEndOfLine,
|
||||
MoveToEnd,
|
||||
]
|
||||
);
|
||||
|
||||
pub fn init(cx: &mut MutableAppContext) {
|
||||
let context = Some("Editor && vim_mode == normal");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue