Skip to repository content318 lines · 14.5 KB · rust
tenant.openagents/omega
No repository description is available.
OpenAgents Git authority 2026-07-28T06:52:05.620Z Public web read
NIP-34 coordinate
30617:7649603503856e5148d571eac2766b288a8ff1e9e35d380337a1d2b0015b4f92:omegaMaintainersHidden in public view
References2 branches · 1 tag
Read-only clone
git clone https://openagents.com/git/tenant.openagents/omega.gitBrowse files
app_menus.rs
1use app_identity::{PRODUCT_DOCS_URL, PRODUCT_NAME, PRODUCT_REPOSITORY_URL};
2use gpui::{App, Menu, MenuItem, OsAction};
3use release_channel::ReleaseChannel;
4use terminal_view::terminal_panel;
5use zed_actions::{Quit, assistant, debug_panel, dev, git_panel, project_panel};
6
7pub fn app_menus(cx: &mut App) -> Vec<Menu> {
8 let mut view_items = vec![
9 MenuItem::action(
10 "Zoom In",
11 zed_actions::IncreaseBufferFontSize { persist: false },
12 ),
13 MenuItem::action(
14 "Zoom Out",
15 zed_actions::DecreaseBufferFontSize { persist: false },
16 ),
17 MenuItem::action(
18 "Reset Zoom",
19 zed_actions::ResetBufferFontSize { persist: false },
20 ),
21 MenuItem::action(
22 "Reset All Zoom",
23 zed_actions::ResetAllZoom { persist: false },
24 ),
25 MenuItem::separator(),
26 MenuItem::action("Toggle Left Dock", workspace::ToggleLeftDock),
27 MenuItem::action("Toggle Right Dock", workspace::ToggleRightDock),
28 MenuItem::action("Toggle Bottom Dock", workspace::ToggleBottomDock),
29 MenuItem::action("Toggle All Docks", workspace::ToggleAllDocks),
30 MenuItem::submenu(Menu {
31 name: "Editor Layout".into(),
32 disabled: false,
33 items: vec![
34 MenuItem::action("Split Up", workspace::SplitUp::default()),
35 MenuItem::action("Split Down", workspace::SplitDown::default()),
36 MenuItem::action("Split Left", workspace::SplitLeft::default()),
37 MenuItem::action("Split Right", workspace::SplitRight::default()),
38 ],
39 }),
40 MenuItem::separator(),
41 MenuItem::action("Project Panel", project_panel::ToggleFocus),
42 MenuItem::action("Outline Panel", outline_panel::ToggleFocus),
43 MenuItem::action("Terminal Panel", terminal_panel::Toggle),
44 MenuItem::action("Debugger Panel", debug_panel::ToggleFocus),
45 MenuItem::action("Agent Panel", assistant::ToggleFocus),
46 MenuItem::action("Git Panel", git_panel::ToggleFocus),
47 MenuItem::separator(),
48 MenuItem::action("Diagnostics", diagnostics::Deploy),
49 MenuItem::separator(),
50 ];
51
52 if ReleaseChannel::try_global(cx) == Some(ReleaseChannel::Dev) {
53 view_items.push(MenuItem::action(
54 "Toggle GPUI Inspector",
55 dev::ToggleInspector,
56 ));
57 view_items.push(MenuItem::separator());
58 }
59
60 vec![
61 Menu {
62 name: PRODUCT_NAME.into(),
63 disabled: false,
64 items: vec![
65 MenuItem::action("About Omega", zed_actions::About),
66 MenuItem::action("Check for Updates", auto_update::Check),
67 MenuItem::separator(),
68 MenuItem::submenu(Menu::new("Settings").items([
69 MenuItem::action("Open Settings", zed_actions::OpenSettings),
70 MenuItem::action("Open Settings File", super::OpenSettingsFile),
71 MenuItem::action("Open Project Settings", zed_actions::OpenProjectSettings),
72 MenuItem::action("Open Project Settings File", super::OpenProjectSettingsFile),
73 MenuItem::action("Open Default Settings", super::OpenDefaultSettings),
74 MenuItem::separator(),
75 MenuItem::action("Open Keymap", zed_actions::OpenKeymap),
76 MenuItem::action("Open Keymap File", zed_actions::OpenKeymapFile),
77 MenuItem::action("Open Default Key Bindings", zed_actions::OpenDefaultKeymap),
78 MenuItem::separator(),
79 MenuItem::action(
80 "Select Theme...",
81 zed_actions::theme_selector::Toggle::default(),
82 ),
83 MenuItem::action(
84 "Select Icon Theme...",
85 zed_actions::icon_theme_selector::Toggle::default(),
86 ),
87 ])),
88 MenuItem::separator(),
89 #[cfg(target_os = "macos")]
90 MenuItem::os_submenu("Services", gpui::SystemMenuType::Services),
91 MenuItem::separator(),
92 MenuItem::action("Extensions", zed_actions::Extensions::default()),
93 #[cfg(not(target_os = "windows"))]
94 MenuItem::action("Install CLI", install_cli::InstallCliBinary),
95 MenuItem::separator(),
96 #[cfg(target_os = "macos")]
97 MenuItem::action("Hide Omega", super::Hide),
98 #[cfg(target_os = "macos")]
99 MenuItem::action("Hide Others", super::HideOthers),
100 #[cfg(target_os = "macos")]
101 MenuItem::action("Show All", super::ShowAll),
102 MenuItem::separator(),
103 MenuItem::action("Quit Omega", Quit),
104 ],
105 },
106 Menu {
107 name: "File".into(),
108 disabled: false,
109 items: vec![
110 MenuItem::action("New", workspace::NewFile),
111 MenuItem::action("New Window", workspace::NewWindow),
112 MenuItem::separator(),
113 #[cfg(not(target_os = "macos"))]
114 MenuItem::action("Open File...", workspace::OpenFiles),
115 MenuItem::action(
116 if cfg!(not(target_os = "macos")) {
117 "Open Folder..."
118 } else {
119 "Open…"
120 },
121 workspace::Open::default(),
122 ),
123 MenuItem::action("Open Recent…", zed_actions::OpenRecent::default()),
124 MenuItem::action("Open Remote…", zed_actions::OpenRemote::default()),
125 MenuItem::separator(),
126 MenuItem::action("Add Folder to Project…", workspace::AddFolderToProject),
127 MenuItem::separator(),
128 MenuItem::action("Save", workspace::Save { save_intent: None }),
129 MenuItem::action("Save As…", workspace::SaveAs),
130 MenuItem::action("Save All", workspace::SaveAll { save_intent: None }),
131 MenuItem::separator(),
132 MenuItem::action(
133 "Close Editor",
134 workspace::CloseActiveItem {
135 save_intent: None,
136 close_pinned: true,
137 },
138 ),
139 MenuItem::action("Close Project", workspace::CloseProject),
140 MenuItem::action("Close Window", workspace::CloseWindow),
141 ],
142 },
143 Menu {
144 name: "Edit".into(),
145 disabled: false,
146 items: vec![
147 MenuItem::os_action("Undo", editor::actions::Undo, OsAction::Undo),
148 MenuItem::os_action("Redo", editor::actions::Redo, OsAction::Redo),
149 MenuItem::separator(),
150 MenuItem::os_action("Cut", editor::actions::Cut, OsAction::Cut),
151 MenuItem::os_action("Copy", editor::actions::Copy, OsAction::Copy),
152 MenuItem::action("Copy and Trim", editor::actions::CopyAndTrim),
153 MenuItem::os_action("Paste", editor::actions::Paste, OsAction::Paste),
154 MenuItem::separator(),
155 MenuItem::action("Find", search::buffer_search::Deploy::find()),
156 MenuItem::action("Find in Project", workspace::DeploySearch::default()),
157 MenuItem::separator(),
158 MenuItem::action(
159 "Toggle Line Comment",
160 editor::actions::ToggleComments::default(),
161 ),
162 ],
163 },
164 Menu {
165 name: "Selection".into(),
166 disabled: false,
167 items: vec![
168 MenuItem::os_action(
169 "Select All",
170 editor::actions::SelectAll,
171 OsAction::SelectAll,
172 ),
173 MenuItem::action("Expand Selection", editor::actions::SelectLargerSyntaxNode),
174 MenuItem::action("Shrink Selection", editor::actions::SelectSmallerSyntaxNode),
175 MenuItem::action("Select Next Sibling", editor::actions::SelectNextSyntaxNode),
176 MenuItem::action(
177 "Select Previous Sibling",
178 editor::actions::SelectPreviousSyntaxNode,
179 ),
180 MenuItem::separator(),
181 MenuItem::action(
182 "Add Cursor Above",
183 editor::actions::AddSelectionAbove {
184 skip_soft_wrap: true,
185 },
186 ),
187 MenuItem::action(
188 "Add Cursor Below",
189 editor::actions::AddSelectionBelow {
190 skip_soft_wrap: true,
191 },
192 ),
193 MenuItem::action(
194 "Select Next Occurrence",
195 editor::actions::SelectNext {
196 replace_newest: false,
197 },
198 ),
199 MenuItem::action(
200 "Select Previous Occurrence",
201 editor::actions::SelectPrevious {
202 replace_newest: false,
203 },
204 ),
205 MenuItem::action("Select All Occurrences", editor::actions::SelectAllMatches),
206 MenuItem::separator(),
207 MenuItem::action("Move Line Up", editor::actions::MoveLineUp),
208 MenuItem::action("Move Line Down", editor::actions::MoveLineDown),
209 MenuItem::action("Duplicate Selection", editor::actions::DuplicateLineDown),
210 ],
211 },
212 Menu {
213 name: "View".into(),
214 disabled: false,
215 items: view_items,
216 },
217 Menu {
218 name: "Go".into(),
219 disabled: false,
220 items: vec![
221 MenuItem::action("Back", workspace::GoBack),
222 MenuItem::action("Forward", workspace::GoForward),
223 MenuItem::separator(),
224 MenuItem::action("Command Palette...", zed_actions::command_palette::Toggle),
225 MenuItem::separator(),
226 MenuItem::action("Go to File...", workspace::ToggleFileFinder::default()),
227 // MenuItem::action("Go to Symbol in Project", project_symbols::Toggle),
228 MenuItem::action(
229 "Go to Symbol in Editor...",
230 zed_actions::outline::ToggleOutline,
231 ),
232 MenuItem::action("Go to Line/Column...", editor::actions::ToggleGoToLine),
233 MenuItem::separator(),
234 MenuItem::action(
235 "Go to Definition",
236 editor::actions::GoToDefinition::default(),
237 ),
238 MenuItem::action("Go to Declaration", editor::actions::GoToDeclaration),
239 MenuItem::action("Go to Type Definition", editor::actions::GoToTypeDefinition),
240 MenuItem::action(
241 "Find All References",
242 editor::actions::FindAllReferences::default(),
243 ),
244 MenuItem::separator(),
245 MenuItem::action("Next Problem", editor::actions::GoToDiagnostic::default()),
246 MenuItem::action(
247 "Previous Problem",
248 editor::actions::GoToPreviousDiagnostic::default(),
249 ),
250 ],
251 },
252 Menu {
253 name: "Run".into(),
254 disabled: false,
255 items: vec![
256 MenuItem::action(
257 "Spawn Task",
258 zed_actions::Spawn::ViaModal {
259 reveal_target: None,
260 },
261 ),
262 MenuItem::action("Start Debugger", debugger_ui::Start),
263 MenuItem::separator(),
264 MenuItem::action("Edit tasks.json…", zed_actions::OpenProjectTasks),
265 MenuItem::action("Edit debug.json…", zed_actions::OpenProjectDebugTasks),
266 MenuItem::separator(),
267 MenuItem::action("Continue", debugger_ui::Continue),
268 MenuItem::action("Step Over", debugger_ui::StepOver),
269 MenuItem::action("Step Into", debugger_ui::StepInto),
270 MenuItem::action("Step Out", debugger_ui::StepOut),
271 MenuItem::separator(),
272 MenuItem::action("Toggle Breakpoint", editor::actions::ToggleBreakpoint),
273 MenuItem::action("Edit Breakpoint", editor::actions::EditLogBreakpoint),
274 MenuItem::action("Clear All Breakpoints", debugger_ui::ClearAllBreakpoints),
275 ],
276 },
277 Menu {
278 name: "Window".into(),
279 disabled: false,
280 items: vec![
281 MenuItem::action("Minimize", super::Minimize),
282 MenuItem::action("Zoom", super::Zoom),
283 MenuItem::separator(),
284 ],
285 },
286 Menu {
287 name: "Help".into(),
288 disabled: false,
289 items: vec![
290 MenuItem::action(
291 "View Release Notes Locally",
292 auto_update_ui::ViewReleaseNotesLocally,
293 ),
294 MenuItem::action("View Telemetry", zed_actions::OpenTelemetryLog),
295 MenuItem::action("View Dependency Licenses", zed_actions::OpenLicenses),
296 MenuItem::action("Show Welcome", onboarding::ShowWelcome),
297 MenuItem::action("Editor Onboarding", zed_actions::OpenEditorOnboarding),
298 MenuItem::separator(),
299 MenuItem::action("File Bug Report...", zed_actions::feedback::FileBugReport),
300 MenuItem::action("Request Feature...", zed_actions::feedback::RequestFeature),
301 MenuItem::separator(),
302 MenuItem::action(
303 "Documentation",
304 super::OpenBrowser {
305 url: PRODUCT_DOCS_URL.into(),
306 },
307 ),
308 MenuItem::action(
309 "Omega Repository",
310 super::OpenBrowser {
311 url: PRODUCT_REPOSITORY_URL.into(),
312 },
313 ),
314 ],
315 },
316 ]
317}
318