@@ -23,6 +23,7 @@ public static Preferences Instance
2323
2424 _instance . PrepareGit ( ) ;
2525 _instance . PrepareShellOrTerminal ( ) ;
26+ _instance . PrepareExternalDiffMergeTool ( ) ;
2627 _instance . PrepareWorkspaces ( ) ;
2728
2829 return _instance ;
@@ -402,6 +403,8 @@ public int ExternalMergeToolType
402403 {
403404 Native . OS . AutoSelectExternalMergeToolExecFile ( ) ;
404405 OnPropertyChanged ( nameof ( ExternalMergeToolPath ) ) ;
406+ OnPropertyChanged ( nameof ( ExternalMergeToolDiffArgs ) ) ;
407+ OnPropertyChanged ( nameof ( ExternalMergeToolMergeArgs ) ) ;
405408 }
406409 }
407410 }
@@ -420,6 +423,32 @@ public string ExternalMergeToolPath
420423 }
421424 }
422425
426+ public string ExternalMergeToolDiffArgs
427+ {
428+ get => Native . OS . ExternalDiffArgs ;
429+ set
430+ {
431+ if ( ! Native . OS . ExternalDiffArgs . Equals ( value , StringComparison . Ordinal ) )
432+ {
433+ Native . OS . ExternalDiffArgs = value ;
434+ OnPropertyChanged ( ) ;
435+ }
436+ }
437+ }
438+
439+ public string ExternalMergeToolMergeArgs
440+ {
441+ get => Native . OS . ExternalMergeArgs ;
442+ set
443+ {
444+ if ( ! Native . OS . ExternalMergeArgs . Equals ( value , StringComparison . Ordinal ) )
445+ {
446+ Native . OS . ExternalMergeArgs = value ;
447+ OnPropertyChanged ( ) ;
448+ }
449+ }
450+ }
451+
423452 public uint StatisticsSampleColor
424453 {
425454 get => _statisticsSampleColor ;
@@ -630,6 +659,19 @@ private void PrepareShellOrTerminal()
630659 }
631660 }
632661
662+ private void PrepareExternalDiffMergeTool ( )
663+ {
664+ var mergerType = Native . OS . ExternalMergerType ;
665+ if ( mergerType > 0 && mergerType < Models . ExternalMerger . Supported . Count )
666+ {
667+ var merger = Models . ExternalMerger . Supported [ mergerType ] ;
668+ if ( string . IsNullOrEmpty ( Native . OS . ExternalDiffArgs ) )
669+ Native . OS . ExternalDiffArgs = merger . DiffCmd ;
670+ if ( string . IsNullOrEmpty ( Native . OS . ExternalMergeArgs ) )
671+ Native . OS . ExternalMergeArgs = merger . MergeCmd ;
672+ }
673+ }
674+
633675 private void PrepareWorkspaces ( )
634676 {
635677 if ( Workspaces . Count == 0 )
0 commit comments