Add git branch switching aliases (#26315)
This gives us _very_ rudimentary support for `git switch` and `git checkout` now, by making them aliases for our existing `git::branch` call. Release Notes: - Git Beta: Added `git::Switch` and `git::CheckoutBranch` as aliases for the existing `git::Branch`
This commit is contained in:
parent
bbe7c9a738
commit
60b3eb3f76
3 changed files with 43 additions and 4 deletions
|
@ -18,10 +18,30 @@ use workspace::{ModalView, Workspace};
|
||||||
pub fn init(cx: &mut App) {
|
pub fn init(cx: &mut App) {
|
||||||
cx.observe_new(|workspace: &mut Workspace, _, _| {
|
cx.observe_new(|workspace: &mut Workspace, _, _| {
|
||||||
workspace.register_action(open);
|
workspace.register_action(open);
|
||||||
|
workspace.register_action(switch);
|
||||||
|
workspace.register_action(checkout_branch);
|
||||||
})
|
})
|
||||||
.detach();
|
.detach();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn checkout_branch(
|
||||||
|
workspace: &mut Workspace,
|
||||||
|
_: &zed_actions::git::CheckoutBranch,
|
||||||
|
window: &mut Window,
|
||||||
|
cx: &mut Context<Workspace>,
|
||||||
|
) {
|
||||||
|
open(workspace, &zed_actions::git::Branch, window, cx);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn switch(
|
||||||
|
workspace: &mut Workspace,
|
||||||
|
_: &zed_actions::git::Switch,
|
||||||
|
window: &mut Window,
|
||||||
|
cx: &mut Context<Workspace>,
|
||||||
|
) {
|
||||||
|
open(workspace, &zed_actions::git::Branch, window, cx);
|
||||||
|
}
|
||||||
|
|
||||||
pub fn open(
|
pub fn open(
|
||||||
workspace: &mut Workspace,
|
workspace: &mut Workspace,
|
||||||
_: &zed_actions::git::Branch,
|
_: &zed_actions::git::Branch,
|
||||||
|
|
|
@ -374,9 +374,17 @@ impl Render for CommitModal {
|
||||||
.on_action(cx.listener(Self::commit))
|
.on_action(cx.listener(Self::commit))
|
||||||
.on_action(
|
.on_action(
|
||||||
cx.listener(|this, _: &zed_actions::git::Branch, window, cx| {
|
cx.listener(|this, _: &zed_actions::git::Branch, window, cx| {
|
||||||
this.branch_list.update(cx, |branch_list, cx| {
|
toggle_branch_picker(this, window, cx);
|
||||||
branch_list.popover_handle.toggle(window, cx);
|
}),
|
||||||
})
|
)
|
||||||
|
.on_action(
|
||||||
|
cx.listener(|this, _: &zed_actions::git::CheckoutBranch, window, cx| {
|
||||||
|
toggle_branch_picker(this, window, cx);
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
.on_action(
|
||||||
|
cx.listener(|this, _: &zed_actions::git::Switch, window, cx| {
|
||||||
|
toggle_branch_picker(this, window, cx);
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
.elevation_3(cx)
|
.elevation_3(cx)
|
||||||
|
@ -415,3 +423,13 @@ impl Render for CommitModal {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn toggle_branch_picker(
|
||||||
|
this: &mut CommitModal,
|
||||||
|
window: &mut Window,
|
||||||
|
cx: &mut Context<'_, CommitModal>,
|
||||||
|
) {
|
||||||
|
this.branch_list.update(cx, |branch_list, cx| {
|
||||||
|
branch_list.popover_handle.toggle(window, cx);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -114,8 +114,9 @@ pub mod workspace {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub mod git {
|
pub mod git {
|
||||||
use gpui::action_with_deprecated_aliases;
|
use gpui::{action_with_deprecated_aliases, actions};
|
||||||
|
|
||||||
|
actions!(git, [CheckoutBranch, Switch]);
|
||||||
action_with_deprecated_aliases!(git, Branch, ["branches::OpenRecent"]);
|
action_with_deprecated_aliases!(git, Branch, ["branches::OpenRecent"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue