Clear out easy todo!()s

Conrad Irwin created

Change summary

crates/vim2/src/command.rs       |  3 -
crates/vim2/src/editor_events.rs |  6 -----
crates/vim2/src/vim.rs           | 36 +++++++++++++++++-----------------
crates/zed2/src/app_menus.rs     |  4 ++
crates/zed2/src/zed2.rs          |  3 -
crates/zed_actions2/src/lib.rs   |  4 ++
6 files changed, 26 insertions(+), 30 deletions(-)

Detailed changes

crates/vim2/src/command.rs 🔗

@@ -167,8 +167,7 @@ pub fn command_interceptor(mut query: &str, _: &AppContext) -> Option<CommandInt
             .boxed_clone(),
         ),
         "cq" | "cqu" | "cqui" | "cquit" | "cq!" | "cqu!" | "cqui!" | "cquit!" => {
-            // ("cquit!", zed_actions::Quit.boxed_clone())
-            todo!(); // Quit is no longer in zed actions :/
+            ("cquit!", zed_actions::Quit.boxed_clone())
         }
 
         // pane management

crates/vim2/src/editor_events.rs 🔗

@@ -29,12 +29,6 @@ fn focused(editor: View<Editor>, cx: &mut WindowContext) {
 
     Vim::update(cx, |vim, cx| {
         vim.set_active_editor(editor.clone(), cx);
-        if vim.enabled {
-            // todo!()
-            // cx.emit_global(VimEvent::ModeChanged {
-            //     mode: vim.state().mode,
-            // });
-        }
     });
 }
 

crates/vim2/src/vim.rs 🔗

@@ -326,9 +326,6 @@ impl Vim {
             self.take_count(cx);
         }
 
-        // todo!()
-        // cx.emit_global(VimEvent::ModeChanged { mode });
-
         // Sync editor settings like clip mode
         self.sync_vim_settings(cx);
 
@@ -495,21 +492,24 @@ impl Vim {
                 let _ = cx.remove_global::<CommandPaletteInterceptor>();
             }
 
-            // todo!();
-            // cx.update_active_window(|cx| {
-            //     if self.enabled {
-            //         let active_editor = cx
-            //             .root_view()
-            //             .downcast_ref::<Workspace>()
-            //             .and_then(|workspace| workspace.read(cx).active_item(cx))
-            //             .and_then(|item| item.downcast::<Editor>());
-            //         if let Some(active_editor) = active_editor {
-            //             self.set_active_editor(active_editor, cx);
-            //         }
-            //         self.switch_mode(Mode::Normal, false, cx);
-            //     }
-            //     self.sync_vim_settings(cx);
-            // });
+            if let Some(active_window) = cx.active_window() {
+                active_window
+                    .update(cx, |root_view, cx| {
+                        if self.enabled {
+                            let active_editor = root_view
+                                .downcast::<Workspace>()
+                                .ok()
+                                .and_then(|workspace| workspace.read(cx).active_item(cx))
+                                .and_then(|item| item.downcast::<Editor>());
+                            if let Some(active_editor) = active_editor {
+                                self.set_active_editor(active_editor, cx);
+                            }
+                            self.switch_mode(Mode::Normal, false, cx);
+                        }
+                        self.sync_vim_settings(cx);
+                    })
+                    .ok();
+            }
         }
     }
 

crates/zed2/src/app_menus.rs 🔗

@@ -2,6 +2,8 @@ use gpui::{Menu, MenuItem, OsAction};
 
 #[cfg(target_os = "macos")]
 pub fn app_menus() -> Vec<Menu<'static>> {
+    use zed_actions::Quit;
+
     vec![
         Menu {
             name: "Zed",
@@ -25,7 +27,7 @@ pub fn app_menus() -> Vec<Menu<'static>> {
                 MenuItem::action("Hide Zed", super::Hide),
                 MenuItem::action("Hide Others", super::HideOthers),
                 MenuItem::action("Show All", super::ShowAll),
-                MenuItem::action("Quit", super::Quit),
+                MenuItem::action("Quit", Quit),
             ],
         },
         Menu {

crates/zed2/src/zed2.rs 🔗

@@ -41,7 +41,7 @@ use workspace::{
     notifications::simple_message_notification::MessageNotification, open_new, AppState, NewFile,
     NewWindow, Workspace, WorkspaceSettings,
 };
-use zed_actions::{OpenBrowser, OpenZedURL};
+use zed_actions::{OpenBrowser, OpenZedURL, Quit};
 
 actions!(
     zed,
@@ -61,7 +61,6 @@ actions!(
         OpenLog,
         OpenSettings,
         OpenTelemetryLog,
-        Quit,
         ResetBufferFontSize,
         ResetDatabase,
         ShowAll,

crates/zed_actions2/src/lib.rs 🔗

@@ -1,4 +1,4 @@
-use gpui::impl_actions;
+use gpui::{actions, impl_actions};
 use serde::Deserialize;
 
 // If the zed binary doesn't use anything in this crate, it will be optimized away
@@ -21,3 +21,5 @@ pub struct OpenZedURL {
 }
 
 impl_actions!(zed, [OpenBrowser, OpenZedURL]);
+
+actions!(zed, [Quit]);