feat: browse GitHub GitLab and Gitea pull requests
This commit is contained in:
+18
-5
@@ -793,6 +793,12 @@ core_actions![
|
||||
true
|
||||
),
|
||||
("core.diff", Action::Diff, &[Mode::Normal], true),
|
||||
(
|
||||
"core.pull_requests",
|
||||
Action::PullRequests,
|
||||
&[Mode::Normal],
|
||||
true
|
||||
),
|
||||
(
|
||||
"core.diff.mode.toggle",
|
||||
Action::DiffModeToggle,
|
||||
@@ -2911,7 +2917,7 @@ impl Editor {
|
||||
true
|
||||
}
|
||||
|
||||
fn open_diff(&mut self) {
|
||||
fn open_diff(&mut self, mut diff: DiffState) {
|
||||
if let Some(owner) = self.diff_owner.filter(|owner| *owner != self.pane_id) {
|
||||
self.with_pane(owner, |editor| {
|
||||
editor.release_diff_buffers();
|
||||
@@ -2933,7 +2939,6 @@ impl Editor {
|
||||
self.active.view.mode = Mode::Normal;
|
||||
}
|
||||
self.outstanding_diff_request = None;
|
||||
let mut diff = DiffState::new();
|
||||
diff.word_wrap = self.active.view.word_wrap;
|
||||
diff.view_mode = self.diff_display_options.0;
|
||||
diff.split_axis = self.diff_display_options.1;
|
||||
@@ -3522,6 +3527,7 @@ impl Editor {
|
||||
| Action::Palette
|
||||
| Action::FilePicker
|
||||
| Action::FileExplorer
|
||||
| Action::PullRequests
|
||||
| Action::DiffClose
|
||||
| Action::DiffModeToggle
|
||||
| Action::DiffViewToggle
|
||||
@@ -6595,6 +6601,7 @@ impl Editor {
|
||||
| Action::BufferDelete
|
||||
| Action::BufferForceDelete
|
||||
| Action::Diff
|
||||
| Action::PullRequests
|
||||
| Action::DiffClose
|
||||
| Action::DiffModeToggle
|
||||
| Action::DiffViewToggle
|
||||
@@ -7541,9 +7548,15 @@ impl Editor {
|
||||
self.set_message("Diff pane is read-only");
|
||||
return None;
|
||||
}
|
||||
if entry.action == Action::Diff {
|
||||
if args.is_empty() {
|
||||
self.open_diff();
|
||||
if matches!(entry.action, Action::Diff | Action::PullRequests) {
|
||||
if entry.action == Action::PullRequests {
|
||||
if args.split_whitespace().count() > 1 {
|
||||
self.set_message("Usage: pull_requests [remote]");
|
||||
} else {
|
||||
self.open_diff(DiffState::pull_requests(args.into()));
|
||||
}
|
||||
} else if args.is_empty() {
|
||||
self.open_diff(DiffState::new());
|
||||
} else {
|
||||
self.set_message("The diff command takes no arguments");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user