Detailed changes
@@ -67,7 +67,15 @@ struct Number(usize);
actions!(
vim,
- [Tab, Enter, Object, InnerObject, FindForward, FindBackward]
+ [
+ Tab,
+ Enter,
+ Object,
+ InnerObject,
+ FindForward,
+ FindBackward,
+ OpenDefaultKeymap
+ ]
);
// in the workspace namespace so it's not filtered out when vim is disabled.
@@ -133,6 +141,14 @@ fn register(workspace: &mut Workspace, cx: &mut ViewContext<Workspace>) {
})
});
+ workspace.register_action(|_: &mut Workspace, _: &OpenDefaultKeymap, cx| {
+ cx.emit(workspace::Event::OpenBundledFile {
+ text: settings::vim_keymap(),
+ title: "Default Vim Bindings",
+ language: "JSON",
+ });
+ });
+
normal::register(workspace, cx);
insert::register(workspace, cx);
motion::register(workspace, cx);
@@ -521,6 +521,11 @@ pub enum Event {
ContactRequestedJoin(u64),
WorkspaceCreated(WeakView<Workspace>),
SpawnTask(SpawnInTerminal),
+ OpenBundledFile {
+ text: Cow<'static, str>,
+ title: &'static str,
+ language: &'static str,
+ },
ZoomChanged,
}
@@ -112,10 +112,16 @@ pub fn initialize_workspace(app_state: Arc<AppState>, cx: &mut AppContext) {
let center_pane = workspace.active_pane().clone();
initialize_pane(workspace, ¢er_pane, cx);
cx.subscribe(&workspace_handle, {
- move |workspace, _, event, cx| {
- if let workspace::Event::PaneAdded(pane) = event {
+ move |workspace, _, event, cx| match event {
+ workspace::Event::PaneAdded(pane) => {
initialize_pane(workspace, pane, cx);
}
+ workspace::Event::OpenBundledFile {
+ text,
+ title,
+ language,
+ } => open_bundled_file(workspace, text.clone(), title, language, cx),
+ _ => {}
}
})
.detach();