Files
oak-gpui/zed/src/menus.rs
T

93 lines
2.8 KiB
Rust

use crate::AppState;
use gpui::{Menu, MenuItem};
#[cfg(target_os = "macos")]
pub fn menus(state: AppState) -> Vec<Menu<'static>> {
vec![
Menu {
name: "Zed",
items: vec![
MenuItem::Action {
name: "About Zed…",
keystroke: None,
action: "app:about-zed",
arg: None,
},
MenuItem::Separator,
MenuItem::Action {
name: "Share",
keystroke: None,
action: "workspace:share_worktree",
arg: None,
},
MenuItem::Action {
name: "Join",
keystroke: None,
action: "workspace:join_worktree",
arg: None,
},
MenuItem::Action {
name: "Quit",
keystroke: Some("cmd-q"),
action: "app:quit",
arg: None,
},
],
},
Menu {
name: "File",
items: vec![
MenuItem::Action {
name: "New",
keystroke: Some("cmd-n"),
action: "workspace:new_file",
arg: Some(Box::new(state.clone())),
},
MenuItem::Separator,
MenuItem::Action {
name: "Open…",
keystroke: Some("cmd-o"),
action: "workspace:open",
arg: Some(Box::new(state)),
},
],
},
Menu {
name: "Edit",
items: vec![
MenuItem::Action {
name: "Undo",
keystroke: Some("cmd-z"),
action: "buffer:undo",
arg: None,
},
MenuItem::Action {
name: "Redo",
keystroke: Some("cmd-Z"),
action: "buffer:redo",
arg: None,
},
MenuItem::Separator,
MenuItem::Action {
name: "Cut",
keystroke: Some("cmd-x"),
action: "buffer:cut",
arg: None,
},
MenuItem::Action {
name: "Copy",
keystroke: Some("cmd-c"),
action: "buffer:copy",
arg: None,
},
MenuItem::Action {
name: "Paste",
keystroke: Some("cmd-v"),
action: "buffer:paste",
arg: None,
},
],
},
]
}