@@ -606,6 +606,7 @@
"ctrl-alt-space": "terminal::ShowCharacterPalette",
"shift-ctrl-c": "terminal::Copy",
"ctrl-insert": "terminal::Copy",
+ "ctrl-a": "editor::SelectAll",
"shift-ctrl-v": "terminal::Paste",
"shift-insert": "terminal::Paste",
"ctrl-enter": "assistant::InlineAssist",
@@ -628,6 +628,7 @@
"ctrl-cmd-space": "terminal::ShowCharacterPalette",
"cmd-c": "terminal::Copy",
"cmd-v": "terminal::Paste",
+ "cmd-a": "editor::SelectAll",
"cmd-k": "terminal::Clear",
"ctrl-enter": "assistant::InlineAssist",
// Some nice conveniences
@@ -3,7 +3,7 @@ pub mod terminal_element;
pub mod terminal_panel;
use collections::HashSet;
-use editor::{scroll::Autoscroll, Editor};
+use editor::{actions::SelectAll, scroll::Autoscroll, Editor};
use futures::{stream::FuturesUnordered, StreamExt};
use gpui::{
anchored, deferred, div, impl_actions, AnyElement, AppContext, DismissEvent, EventEmitter,
@@ -33,8 +33,8 @@ use workspace::{
notifications::NotifyResultExt,
register_serializable_item,
searchable::{SearchEvent, SearchOptions, SearchableItem, SearchableItemHandle},
- CloseActiveItem, NewCenterTerminal, OpenVisible, Pane, ToolbarItemLocation, Workspace,
- WorkspaceId,
+ CloseActiveItem, NewCenterTerminal, NewTerminal, OpenVisible, Pane, ToolbarItemLocation,
+ Workspace, WorkspaceId,
};
use anyhow::Context;
@@ -214,7 +214,13 @@ impl TerminalView {
cx: &mut ViewContext<Self>,
) {
let context_menu = ContextMenu::build(cx, |menu, _| {
- menu.action("Clear", Box::new(Clear))
+ menu.action("New Terminal", Box::new(NewTerminal))
+ .separator()
+ .action("Copy", Box::new(Copy))
+ .action("Paste", Box::new(Paste))
+ .action("Select All", Box::new(SelectAll))
+ .action("Clear", Box::new(Clear))
+ .separator()
.action("Close", Box::new(CloseActiveItem { save_intent: None }))
});
@@ -258,7 +264,7 @@ impl TerminalView {
}
}
- fn select_all(&mut self, _: &editor::actions::SelectAll, cx: &mut ViewContext<Self>) {
+ fn select_all(&mut self, _: &SelectAll, cx: &mut ViewContext<Self>) {
self.terminal.update(cx, |term, _| term.select_all());
cx.notify();
}