feat: browse GitHub GitLab and Gitea pull requests

This commit is contained in:
Valdemar Lorenzen
2026-10-14 13:22:09 +02:00
parent 15968a328c
commit af6496bd5a
11 changed files with 1349 additions and 47 deletions
+18 -5
View File
@@ -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");
}