feat: default diffs to branch changes
This commit is contained in:
+23
-1
@@ -703,6 +703,12 @@ core_actions![
|
||||
true
|
||||
),
|
||||
("core.diff", Action::Diff, &[Mode::Normal], true),
|
||||
(
|
||||
"core.diff.mode.toggle",
|
||||
Action::DiffModeToggle,
|
||||
&[Mode::Normal],
|
||||
true,
|
||||
),
|
||||
(
|
||||
"core.diff.view.toggle",
|
||||
Action::DiffViewToggle,
|
||||
@@ -1070,6 +1076,7 @@ fn default_bindings() -> HashMap<Mode, HashMap<Input, Binding>> {
|
||||
}
|
||||
for (key, action) in [
|
||||
(Input::Ctrl('o'), JumpBack),
|
||||
(Input::Ctrl('b'), DiffModeToggle),
|
||||
(Input::Char('\t'), JumpForward),
|
||||
(Input::Alt('h'), PaneFocusLeft),
|
||||
(Input::Alt('j'), PaneFocusDown),
|
||||
@@ -3144,6 +3151,7 @@ impl Editor {
|
||||
| Action::FilePicker
|
||||
| Action::FileExplorer
|
||||
| Action::DiffClose
|
||||
| Action::DiffModeToggle
|
||||
| Action::DiffViewToggle
|
||||
| Action::DiffOrientationToggle
|
||||
| Action::WordWrapToggle
|
||||
@@ -5905,6 +5913,7 @@ impl Editor {
|
||||
| Action::BufferForceDelete
|
||||
| Action::Diff
|
||||
| Action::DiffClose
|
||||
| Action::DiffModeToggle
|
||||
| Action::DiffViewToggle
|
||||
| Action::DiffOrientationToggle
|
||||
| Action::WordWrapToggle
|
||||
@@ -6713,7 +6722,7 @@ impl Editor {
|
||||
}
|
||||
if matches!(
|
||||
entry.action,
|
||||
Action::DiffViewToggle | Action::DiffOrientationToggle
|
||||
Action::DiffModeToggle | Action::DiffViewToggle | Action::DiffOrientationToggle
|
||||
) {
|
||||
let name = entry.ex.expect("diff display action has an Ex command");
|
||||
if !args.is_empty() {
|
||||
@@ -6730,6 +6739,19 @@ impl Editor {
|
||||
self.active.view.command_line.clear();
|
||||
self.active.view.mode = Mode::Normal;
|
||||
}
|
||||
if entry.action == Action::DiffModeToggle {
|
||||
let Some(diff) = self.diff.as_mut() else {
|
||||
self.set_message("No comparison is open");
|
||||
return None;
|
||||
};
|
||||
if let Err(error) = diff.toggle_comparison_mode() {
|
||||
self.set_message(error);
|
||||
return None;
|
||||
}
|
||||
self.release_diff_buffers();
|
||||
self.diff_return_buffer = Some(self.active.id);
|
||||
return None;
|
||||
}
|
||||
let Some(diff) = self.diff.as_mut().filter(|diff| diff.phase == Phase::View) else {
|
||||
self.set_message("No comparison is open");
|
||||
return None;
|
||||
|
||||
Reference in New Issue
Block a user