diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index 29868be577bac136e97781a0082d77fa35c73e25..382f9a4476f79bbe66f6c22d8df24e7121009822 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -664,7 +664,8 @@ pub fn main() { watch_themes(fs.clone(), cx); watch_languages(fs.clone(), app_state.languages.clone(), cx); - cx.set_menus(app_menus()); + let menus = app_menus(cx); + cx.set_menus(menus); initialize_workspace(app_state.clone(), prompt_builder, cx); cx.activate(true); diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index c4aa661682530ebb1a281313d1debf9272981464..3ef60b257b67de0f93cd6a65a83d67022e53fe0c 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -1542,7 +1542,8 @@ fn reload_keymaps(cx: &mut App, mut user_key_bindings: Vec) { } cx.bind_keys(user_key_bindings); - cx.set_menus(app_menus()); + let menus = app_menus(cx); + cx.set_menus(menus); // On Windows, this is set in the `update_jump_list` method of the `HistoryManager`. #[cfg(not(target_os = "windows"))] cx.set_dock_menu(vec![gpui::MenuItem::action( diff --git a/crates/zed/src/zed/app_menus.rs b/crates/zed/src/zed/app_menus.rs index d50260c706cb07506900f0ec0e8fecbf151c4bb3..3087de999c24950f2fcd9459a911cd931dac8013 100644 --- a/crates/zed/src/zed/app_menus.rs +++ b/crates/zed/src/zed/app_menus.rs @@ -1,11 +1,58 @@ use collab_ui::collab_panel; -use gpui::{Menu, MenuItem, OsAction}; +use gpui::{App, Menu, MenuItem, OsAction}; +use release_channel::ReleaseChannel; use terminal_view::terminal_panel; -use zed_actions::ToggleFocus as ToggleDebugPanel; +use zed_actions::{ToggleFocus as ToggleDebugPanel, dev}; -pub fn app_menus() -> Vec { +pub fn app_menus(cx: &mut App) -> Vec { use zed_actions::Quit; + let mut view_items = vec![ + MenuItem::action( + "Zoom In", + zed_actions::IncreaseBufferFontSize { persist: false }, + ), + MenuItem::action( + "Zoom Out", + zed_actions::DecreaseBufferFontSize { persist: false }, + ), + MenuItem::action( + "Reset Zoom", + zed_actions::ResetBufferFontSize { persist: false }, + ), + MenuItem::separator(), + MenuItem::action("Toggle Left Dock", workspace::ToggleLeftDock), + MenuItem::action("Toggle Right Dock", workspace::ToggleRightDock), + MenuItem::action("Toggle Bottom Dock", workspace::ToggleBottomDock), + MenuItem::action("Close All Docks", workspace::CloseAllDocks), + MenuItem::submenu(Menu { + name: "Editor Layout".into(), + items: vec![ + MenuItem::action("Split Up", workspace::SplitUp), + MenuItem::action("Split Down", workspace::SplitDown), + MenuItem::action("Split Left", workspace::SplitLeft), + MenuItem::action("Split Right", workspace::SplitRight), + ], + }), + MenuItem::separator(), + MenuItem::action("Project Panel", project_panel::ToggleFocus), + MenuItem::action("Outline Panel", outline_panel::ToggleFocus), + MenuItem::action("Collab Panel", collab_panel::ToggleFocus), + MenuItem::action("Terminal Panel", terminal_panel::ToggleFocus), + MenuItem::action("Debugger Panel", ToggleDebugPanel), + MenuItem::separator(), + MenuItem::action("Diagnostics", diagnostics::Deploy), + MenuItem::separator(), + ]; + + if ReleaseChannel::try_global(cx) == Some(ReleaseChannel::Dev) { + view_items.push(MenuItem::action( + "Toggle GPUI Inspector", + dev::ToggleInspector, + )); + view_items.push(MenuItem::separator()); + } + vec![ Menu { name: "Zed".into(), @@ -157,43 +204,7 @@ pub fn app_menus() -> Vec { }, Menu { name: "View".into(), - items: vec![ - MenuItem::action( - "Zoom In", - zed_actions::IncreaseBufferFontSize { persist: false }, - ), - MenuItem::action( - "Zoom Out", - zed_actions::DecreaseBufferFontSize { persist: false }, - ), - MenuItem::action( - "Reset Zoom", - zed_actions::ResetBufferFontSize { persist: false }, - ), - MenuItem::separator(), - MenuItem::action("Toggle Left Dock", workspace::ToggleLeftDock), - MenuItem::action("Toggle Right Dock", workspace::ToggleRightDock), - MenuItem::action("Toggle Bottom Dock", workspace::ToggleBottomDock), - MenuItem::action("Close All Docks", workspace::CloseAllDocks), - MenuItem::submenu(Menu { - name: "Editor Layout".into(), - items: vec![ - MenuItem::action("Split Up", workspace::SplitUp), - MenuItem::action("Split Down", workspace::SplitDown), - MenuItem::action("Split Left", workspace::SplitLeft), - MenuItem::action("Split Right", workspace::SplitRight), - ], - }), - MenuItem::separator(), - MenuItem::action("Project Panel", project_panel::ToggleFocus), - MenuItem::action("Outline Panel", outline_panel::ToggleFocus), - MenuItem::action("Collab Panel", collab_panel::ToggleFocus), - MenuItem::action("Terminal Panel", terminal_panel::ToggleFocus), - MenuItem::action("Debugger Panel", ToggleDebugPanel), - MenuItem::separator(), - MenuItem::action("Diagnostics", diagnostics::Deploy), - MenuItem::separator(), - ], + items: view_items, }, Menu { name: "Go".into(),