diff --git a/src/Shouldly.Tests/ConventionTests/ApprovePublicAPI.ShouldlyApi.approved.cs b/src/Shouldly.Tests/ConventionTests/ApprovePublicAPI.ShouldlyApi.approved.cs index 76e307bab..63b7096e0 100644 --- a/src/Shouldly.Tests/ConventionTests/ApprovePublicAPI.ShouldlyApi.approved.cs +++ b/src/Shouldly.Tests/ConventionTests/ApprovePublicAPI.ShouldlyApi.approved.cs @@ -684,6 +684,7 @@ public class KnownDiffTools public readonly Shouldly.Configuration.DiffTool KDiff3; public readonly Shouldly.Configuration.DiffTool P4Merge; public readonly Shouldly.Configuration.DiffTool TortoiseGitMerge; + public readonly Shouldly.Configuration.DiffTool WinMerge; public KnownDiffTools() { } public static Shouldly.Configuration.KnownDiffTools Instance { get; } } diff --git a/src/Shouldly/Configuration/KnownDiffTools.cs b/src/Shouldly/Configuration/KnownDiffTools.cs index 8ad3c4341..611f44bef 100644 --- a/src/Shouldly/Configuration/KnownDiffTools.cs +++ b/src/Shouldly/Configuration/KnownDiffTools.cs @@ -19,6 +19,8 @@ public class KnownDiffTools [UsedImplicitly] public readonly DiffTool TortoiseGitMerge = new DiffTool("Tortoise Git Merge", @"TortoiseGit\bin\TortoiseGitMerge.exe", TortoiseGitMergeArgs); [UsedImplicitly] + public readonly DiffTool WinMerge = new DiffTool("WinMerge", @"WinMerge\WinMergeU.exe", WinMergeArgs); + [UsedImplicitly] public readonly DiffTool CurrentVisualStudio = new CurrentlyRunningVisualStudioDiffTool(); public static KnownDiffTools Instance { get; } = new KnownDiffTools(); @@ -57,6 +59,14 @@ static string TortoiseGitMergeArgs(string received, string approved, bool approv return $"\"{received}\" \"{approved}\""; } + + static string WinMergeArgs(string received, string approved, bool approvedExists) + { + if (!approvedExists) + File.AppendAllText(approved, string.Empty); + + return $"/u /wl \"{received}\" \"{approved}\" \"{approved}\""; + } } } #endif