Add "File History" option to Git Panel entry context menu (#44016)
Sublime Merge: <img width="403" height="313" alt="image" src="https://github.com/user-attachments/assets/3ebf3c20-324f-4453-88fb-ad93da546f92" /> Fork: <img width="347" height="474" alt="image" src="https://github.com/user-attachments/assets/bcec8920-9415-4ffe-9f17-8ee3e764c5bb" /> Zed: <img width="362" height="316" alt="image" src="https://github.com/user-attachments/assets/06e577cb-f897-45e0-b4b3-59a2c28b3342" /> Release Notes: - Added a "File History" option to Git Panel entry context menu
This commit is contained in:
@@ -6,7 +6,8 @@ use crate::project_diff::{self, Diff, ProjectDiff};
|
||||
use crate::remote_output::{self, RemoteAction, SuccessMessage};
|
||||
use crate::{branch_picker, picker_prompt, render_remote_button};
|
||||
use crate::{
|
||||
git_panel_settings::GitPanelSettings, git_status_icon, repository_selector::RepositorySelector,
|
||||
file_history_view::FileHistoryView, git_panel_settings::GitPanelSettings, git_status_icon,
|
||||
repository_selector::RepositorySelector,
|
||||
};
|
||||
use agent_settings::AgentSettings;
|
||||
use anyhow::Context as _;
|
||||
@@ -842,6 +843,26 @@ impl GitPanel {
|
||||
});
|
||||
}
|
||||
|
||||
fn file_history(&mut self, _: &git::FileHistory, window: &mut Window, cx: &mut Context<Self>) {
|
||||
maybe!({
|
||||
let entry = self.entries.get(self.selected_entry?)?.status_entry()?;
|
||||
let active_repo = self.active_repository.as_ref()?;
|
||||
let repo_path = entry.repo_path.clone();
|
||||
let git_store = self.project.read(cx).git_store();
|
||||
|
||||
FileHistoryView::open(
|
||||
repo_path,
|
||||
git_store.downgrade(),
|
||||
active_repo.downgrade(),
|
||||
self.workspace.clone(),
|
||||
window,
|
||||
cx,
|
||||
);
|
||||
|
||||
Some(())
|
||||
});
|
||||
}
|
||||
|
||||
fn open_file(
|
||||
&mut self,
|
||||
_: &menu::SecondaryConfirm,
|
||||
@@ -3997,6 +4018,8 @@ impl GitPanel {
|
||||
.separator()
|
||||
.action("Open Diff", Confirm.boxed_clone())
|
||||
.action("Open File", SecondaryConfirm.boxed_clone())
|
||||
.separator()
|
||||
.action("File History", Box::new(git::FileHistory))
|
||||
});
|
||||
self.selected_entry = Some(ix);
|
||||
self.set_context_menu(context_menu, position, window, cx);
|
||||
@@ -4499,6 +4522,7 @@ impl Render for GitPanel {
|
||||
.on_action(cx.listener(Self::close_panel))
|
||||
.on_action(cx.listener(Self::open_diff))
|
||||
.on_action(cx.listener(Self::open_file))
|
||||
.on_action(cx.listener(Self::file_history))
|
||||
.on_action(cx.listener(Self::focus_changes_list))
|
||||
.on_action(cx.listener(Self::focus_editor))
|
||||
.on_action(cx.listener(Self::expand_commit_editor))
|
||||
|
||||
Reference in New Issue
Block a user