mirror of
https://github.com/zed-industries/zed.git
synced 2024-09-19 18:41:56 +03:00
Add keybinding to swap pane items (#15583)
- Rearrange tabs (left: `ctrl-shift-pageup`, right: `ctrl-shift-pagedown`) like Chrome Co-authored-by: Peter Tripp <peter@zed.dev>
This commit is contained in:
parent
adbe973f02
commit
1b36c62188
@ -245,6 +245,8 @@
|
|||||||
"bindings": {
|
"bindings": {
|
||||||
"ctrl-pageup": "pane::ActivatePrevItem",
|
"ctrl-pageup": "pane::ActivatePrevItem",
|
||||||
"ctrl-pagedown": "pane::ActivateNextItem",
|
"ctrl-pagedown": "pane::ActivateNextItem",
|
||||||
|
"ctrl-shift-pageup": "pane::SwapItemLeft",
|
||||||
|
"ctrl-shift-pagedown": "pane::SwapItemRight",
|
||||||
"ctrl-w": "pane::CloseActiveItem",
|
"ctrl-w": "pane::CloseActiveItem",
|
||||||
"ctrl-f4": "pane::CloseActiveItem",
|
"ctrl-f4": "pane::CloseActiveItem",
|
||||||
"alt-ctrl-t": "pane::CloseInactiveItems",
|
"alt-ctrl-t": "pane::CloseInactiveItems",
|
||||||
|
@ -285,6 +285,8 @@
|
|||||||
"cmd-}": "pane::ActivateNextItem",
|
"cmd-}": "pane::ActivateNextItem",
|
||||||
"alt-cmd-left": "pane::ActivatePrevItem",
|
"alt-cmd-left": "pane::ActivatePrevItem",
|
||||||
"alt-cmd-right": "pane::ActivateNextItem",
|
"alt-cmd-right": "pane::ActivateNextItem",
|
||||||
|
"ctrl-shift-pageup": "pane::SwapItemLeft",
|
||||||
|
"ctrl-shift-pagedown": "pane::SwapItemRight",
|
||||||
"cmd-w": "pane::CloseActiveItem",
|
"cmd-w": "pane::CloseActiveItem",
|
||||||
"alt-cmd-t": "pane::CloseInactiveItems",
|
"alt-cmd-t": "pane::CloseInactiveItems",
|
||||||
"ctrl-alt-cmd-w": "workspace::CloseInactiveTabsAndPanes",
|
"ctrl-alt-cmd-w": "workspace::CloseInactiveTabsAndPanes",
|
||||||
|
@ -158,6 +158,8 @@ actions!(
|
|||||||
SplitDown,
|
SplitDown,
|
||||||
SplitHorizontal,
|
SplitHorizontal,
|
||||||
SplitVertical,
|
SplitVertical,
|
||||||
|
SwapItemLeft,
|
||||||
|
SwapItemRight,
|
||||||
TogglePreviewTab,
|
TogglePreviewTab,
|
||||||
TogglePinTab,
|
TogglePinTab,
|
||||||
]
|
]
|
||||||
@ -1054,6 +1056,26 @@ impl Pane {
|
|||||||
self.activate_item(index, activate_pane, activate_pane, cx);
|
self.activate_item(index, activate_pane, activate_pane, cx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn swap_item_left(&mut self, cx: &mut ViewContext<Self>) {
|
||||||
|
let index = self.active_item_index;
|
||||||
|
if index == 0 {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.items.swap(index, index - 1);
|
||||||
|
self.activate_item(index - 1, true, true, cx);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn swap_item_right(&mut self, cx: &mut ViewContext<Self>) {
|
||||||
|
let index = self.active_item_index;
|
||||||
|
if index + 1 == self.items.len() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.items.swap(index, index + 1);
|
||||||
|
self.activate_item(index + 1, true, true, cx);
|
||||||
|
}
|
||||||
|
|
||||||
pub fn close_active_item(
|
pub fn close_active_item(
|
||||||
&mut self,
|
&mut self,
|
||||||
action: &CloseActiveItem,
|
action: &CloseActiveItem,
|
||||||
@ -2574,6 +2596,8 @@ impl Render for Pane {
|
|||||||
.on_action(cx.listener(|pane: &mut Pane, _: &ActivateNextItem, cx| {
|
.on_action(cx.listener(|pane: &mut Pane, _: &ActivateNextItem, cx| {
|
||||||
pane.activate_next_item(true, cx);
|
pane.activate_next_item(true, cx);
|
||||||
}))
|
}))
|
||||||
|
.on_action(cx.listener(|pane, _: &SwapItemLeft, cx| pane.swap_item_left(cx)))
|
||||||
|
.on_action(cx.listener(|pane, _: &SwapItemRight, cx| pane.swap_item_right(cx)))
|
||||||
.on_action(cx.listener(|pane, action, cx| {
|
.on_action(cx.listener(|pane, action, cx| {
|
||||||
pane.toggle_pin_tab(action, cx);
|
pane.toggle_pin_tab(action, cx);
|
||||||
}))
|
}))
|
||||||
|
@ -405,46 +405,48 @@ TBD: Add Column with Linux shortcuts
|
|||||||
|
|
||||||
#### Pane
|
#### Pane
|
||||||
|
|
||||||
| **Command** | **Target** | **Default Shortcut** |
|
| **Command** | **Target** | **Default Shortcut** |
|
||||||
| ----------------------------- | -------------- | ----------------------- |
|
| ----------------------------- | -------------- | ----------------------------- |
|
||||||
| Activate item 1 | Pane | `Control + 1` |
|
| Activate item 1 | Pane | `Control + 1` |
|
||||||
| Activate item 2 | Pane | `Control + 2` |
|
| Activate item 2 | Pane | `Control + 2` |
|
||||||
| Activate item 3 | Pane | `Control + 3` |
|
| Activate item 3 | Pane | `Control + 3` |
|
||||||
| Activate item 4 | Pane | `Control + 4` |
|
| Activate item 4 | Pane | `Control + 4` |
|
||||||
| Activate item 5 | Pane | `Control + 5` |
|
| Activate item 5 | Pane | `Control + 5` |
|
||||||
| Activate item 6 | Pane | `Control + 6` |
|
| Activate item 6 | Pane | `Control + 6` |
|
||||||
| Activate item 7 | Pane | `Control + 7` |
|
| Activate item 7 | Pane | `Control + 7` |
|
||||||
| Activate item 8 | Pane | `Control + 8` |
|
| Activate item 8 | Pane | `Control + 8` |
|
||||||
| Activate item 9 | Pane | `Control + 9` |
|
| Activate item 9 | Pane | `Control + 9` |
|
||||||
| Activate last item | Pane | `Control + 0` |
|
| Activate last item | Pane | `Control + 0` |
|
||||||
| Activate next item | Pane | `Alt + ⌘ + Right` |
|
| Activate next item | Pane | `Alt + ⌘ + Right` |
|
||||||
| Activate next item | Pane | `⌘ + }` |
|
| Activate next item | Pane | `⌘ + }` |
|
||||||
| Activate prev item | Pane | `Alt + ⌘ + Left` |
|
| Activate prev item | Pane | `Alt + ⌘ + Left` |
|
||||||
| Activate prev item | Pane | `⌘ + {` |
|
| Activate prev item | Pane | `⌘ + {` |
|
||||||
| Close active item | Pane | `⌘ + W` |
|
| Swap item to left | Pane | `Control + Shift + Page Up` |
|
||||||
| Close all items | Pane | `⌘ + K, ⌘ + W` |
|
| Swap item to right | Pane | `Control + Shift + Page Down` |
|
||||||
| Close clean items | Pane | `⌘ + K, U` |
|
| Close active item | Pane | `⌘ + W` |
|
||||||
| Close inactive items | Pane | `Alt + ⌘ + T` |
|
| Close all items | Pane | `⌘ + K, ⌘ + W` |
|
||||||
| Go back | Pane | `Control + -` |
|
| Close clean items | Pane | `⌘ + K, U` |
|
||||||
| Go forward | Pane | `Control + Shift + _` |
|
| Close inactive items | Pane | `Alt + ⌘ + T` |
|
||||||
| Reopen closed item | Pane | `⌘ + Shift + T` |
|
| Go back | Pane | `Control + -` |
|
||||||
| Split down | Pane | `⌘ + K, Down` |
|
| Go forward | Pane | `Control + Shift + _` |
|
||||||
| Split left | Pane | `⌘ + K, Left` |
|
| Reopen closed item | Pane | `⌘ + Shift + T` |
|
||||||
| Split right | Pane | `⌘ + K, Right` |
|
| Split down | Pane | `⌘ + K, Down` |
|
||||||
| Split up | Pane | `⌘ + K, Up` |
|
| Split left | Pane | `⌘ + K, Left` |
|
||||||
| Toggle filters | Project Search | `Alt + ⌘ + F` |
|
| Split right | Pane | `⌘ + K, Right` |
|
||||||
| Toggle focus | Project Search | `⌘ + F` |
|
| Split up | Pane | `⌘ + K, Up` |
|
||||||
| Toggle focus | Project Search | `⌘ + Shift + F` |
|
| Toggle filters | Project Search | `Alt + ⌘ + F` |
|
||||||
| Activate regex mode | Search | `Alt + ⌘ + G` |
|
| Toggle focus | Project Search | `⌘ + F` |
|
||||||
| Activate text mode | Search | `Alt + ⌘ + X` |
|
| Toggle focus | Project Search | `⌘ + Shift + F` |
|
||||||
| Cycle mode | Search | `Alt + Tab` |
|
| Activate regex mode | Search | `Alt + ⌘ + G` |
|
||||||
| Select all matches | Search | `Alt + Enter` |
|
| Activate text mode | Search | `Alt + ⌘ + X` |
|
||||||
| Select next match | Search | `⌘ + G` |
|
| Cycle mode | Search | `Alt + Tab` |
|
||||||
| Select prev match | Search | `⌘ + Shift + G` |
|
| Select all matches | Search | `Alt + Enter` |
|
||||||
| Toggle case sensitive | Search | `Alt + ⌘ + C` |
|
| Select next match | Search | `⌘ + G` |
|
||||||
| Toggle replace | Search | `⌘ + Shift + H` |
|
| Select prev match | Search | `⌘ + Shift + G` |
|
||||||
| Toggle whole word | Search | `Alt + ⌘ + W` |
|
| Toggle case sensitive | Search | `Alt + ⌘ + C` |
|
||||||
| Close inactive tabs and panes | Workspace | `Control + Alt + ⌘ + W` |
|
| Toggle replace | Search | `⌘ + Shift + H` |
|
||||||
|
| Toggle whole word | Search | `Alt + ⌘ + W` |
|
||||||
|
| Close inactive tabs and panes | Workspace | `Control + Alt + ⌘ + W` |
|
||||||
|
|
||||||
#### Buffer Search Bar
|
#### Buffer Search Bar
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user