@@ -264,6 +264,29 @@ private ContextMenu CreateContextMenuForUnstagedChanges(ViewModels.WorkingCopy v
264264
265265 if ( ! change . IsConflicted || change . ConflictReason is Models . ConflictReason . BothAdded or Models . ConflictReason . BothModified )
266266 {
267+ if ( change . IsConflicted )
268+ {
269+ var isBinary = new Commands . IsBinary ( repo . FullPath , "HEAD" , change . Path ) . GetResultAsync ( ) . GetAwaiter ( ) . GetResult ( ) ;
270+ if ( ! isBinary )
271+ {
272+ var openBuiltinMerger = new MenuItem ( ) ;
273+ openBuiltinMerger . Header = App . Text ( "OpenInBuiltinMergeTool" ) ;
274+ openBuiltinMerger . Icon = App . CreateMenuIcon ( "Icons.Conflict" ) ;
275+ openBuiltinMerger . Tag = OperatingSystem . IsMacOS ( ) ? "⌘+⇧+M" : "Ctrl+Shift+M" ;
276+ openBuiltinMerger . Click += async ( _ , e ) =>
277+ {
278+ var mergeVm = new ViewModels . MergeConflictEditor ( repo , change . Path ) ;
279+ await mergeVm . LoadAsync ( ) ;
280+
281+ var window = TopLevel . GetTopLevel ( this ) as Window ;
282+ var mergeWindow = new MergeConflictEditor { DataContext = mergeVm } ;
283+ await mergeWindow . ShowDialog ( window ) ;
284+
285+ e . Handled = true ;
286+ } ;
287+ menu . Items . Add ( openBuiltinMerger ) ;
288+ }
289+ }
267290 var openMerger = new MenuItem ( ) ;
268291 openMerger . Header = App . Text ( "OpenInExternalMergeTool" ) ;
269292 openMerger . Icon = App . CreateMenuIcon ( "Icons.OpenWith" ) ;
@@ -278,6 +301,7 @@ private ContextMenu CreateContextMenuForUnstagedChanges(ViewModels.WorkingCopy v
278301 e . Handled = true ;
279302 } ;
280303 menu . Items . Add ( openMerger ) ;
304+
281305 }
282306
283307 var explore = new MenuItem ( ) ;
0 commit comments