Skip to content

Commit

Permalink
Add git branch switching aliases (#26315)
Browse files Browse the repository at this point in the history
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`
  • Loading branch information
mikayla-maki authored Mar 8, 2025
1 parent bbe7c9a commit 60b3eb3
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 4 deletions.
20 changes: 20 additions & 0 deletions crates/git_ui/src/branch_picker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,30 @@ use workspace::{ModalView, Workspace};
pub fn init(cx: &mut App) {
cx.observe_new(|workspace: &mut Workspace, _, _| {
workspace.register_action(open);
workspace.register_action(switch);
workspace.register_action(checkout_branch);
})
.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(
workspace: &mut Workspace,
_: &zed_actions::git::Branch,
Expand Down
24 changes: 21 additions & 3 deletions crates/git_ui/src/commit_modal.rs
Original file line number Diff line number Diff line change
Expand Up @@ -374,9 +374,17 @@ impl Render for CommitModal {
.on_action(cx.listener(Self::commit))
.on_action(
cx.listener(|this, _: &zed_actions::git::Branch, window, cx| {
this.branch_list.update(cx, |branch_list, cx| {
branch_list.popover_handle.toggle(window, cx);
})
toggle_branch_picker(this, 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)
Expand Down Expand Up @@ -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);
})
}
3 changes: 2 additions & 1 deletion crates/zed_actions/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,9 @@ pub mod workspace {
}

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"]);
}

Expand Down

0 comments on commit 60b3eb3

Please sign in to comment.