Skip to content

Commit 6d06815

Browse files
authored
enhance: diff with merger option on local changes (#1534)
1 parent 2b3e94e commit 6d06815

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

src/ViewModels/WorkingCopy.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -590,6 +590,20 @@ public ContextMenu CreateContextMenuForUnstagedChanges(string selectedSingleFold
590590
var change = _selectedUnstaged[0];
591591
var path = Native.OS.GetAbsPath(_repo.FullPath, change.Path);
592592

593+
var diffWithMerger = new MenuItem();
594+
diffWithMerger.Header = App.Text("DiffWithMerger");
595+
diffWithMerger.Icon = App.CreateMenuIcon("Icons.OpenWith");
596+
diffWithMerger.Click += (sender, ev) =>
597+
{
598+
var toolType = Preferences.Instance.ExternalMergeToolType;
599+
var toolPath = Preferences.Instance.ExternalMergeToolPath;
600+
var opt = new Models.DiffOption(change, true);
601+
602+
_ = Commands.MergeTool.OpenForDiffAsync(_repo.FullPath, toolType, toolPath, opt);
603+
ev.Handled = true;
604+
};
605+
menu.Items.Add(diffWithMerger);
606+
593607
var explore = new MenuItem();
594608
explore.Header = App.Text("RevealFile");
595609
explore.Icon = App.CreateMenuIcon("Icons.Explore");
@@ -1243,6 +1257,19 @@ public ContextMenu CreateContextMenuForStagedChanges(string selectedSingleFolder
12431257
var change = _selectedStaged[0];
12441258
var path = Native.OS.GetAbsPath(_repo.FullPath, change.Path);
12451259

1260+
var diffWithMerger = new MenuItem();
1261+
diffWithMerger.Header = App.Text("DiffWithMerger");
1262+
diffWithMerger.Icon = App.CreateMenuIcon("Icons.OpenWith");
1263+
diffWithMerger.Click += (sender, ev) =>
1264+
{
1265+
var toolType = Preferences.Instance.ExternalMergeToolType;
1266+
var toolPath = Preferences.Instance.ExternalMergeToolPath;
1267+
var opt = new Models.DiffOption(change, false);
1268+
1269+
_ = Commands.MergeTool.OpenForDiffAsync(_repo.FullPath, toolType, toolPath, opt);
1270+
ev.Handled = true;
1271+
};
1272+
12461273
var explore = new MenuItem();
12471274
explore.IsEnabled = File.Exists(path) || Directory.Exists(path);
12481275
explore.Header = App.Text("RevealFile");
@@ -1310,6 +1337,7 @@ public ContextMenu CreateContextMenuForStagedChanges(string selectedSingleFolder
13101337
e.Handled = true;
13111338
};
13121339

1340+
menu.Items.Add(diffWithMerger);
13131341
menu.Items.Add(explore);
13141342
menu.Items.Add(openWith);
13151343
menu.Items.Add(new MenuItem() { Header = "-" });

0 commit comments

Comments
 (0)