Skip to content

Commit 4dcbe74

Browse files
committed
.
1 parent 41af074 commit 4dcbe74

File tree

11 files changed

+73
-63
lines changed

11 files changed

+73
-63
lines changed

docs/diff-tool.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ DiffTools.UseOrder(DiffTool.KDiff3);
482482
* Is MDI: False
483483
* Supports auto-refresh: False
484484
* Supports text files: False
485-
* Use shell execute: True
485+
* Use shell execute: False
486486
* Environment variable for custom install location: `DiffEngine_MsWordDiff`
487487
* Supported binaries: .doc, .docx
488488

src/DiffEngine.Tests/DefinitionsTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ static string GetOsSupport(OsSupport osSupport)
4646
var builder = new StringBuilder();
4747
if (osSupport.Windows != null)
4848
{
49-
builder.Append("Win/");
49+
builder.Append("Windows/");
5050
}
5151

5252
if (osSupport.Osx != null)

src/DiffEngine.Tests/DiffToolsTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,13 +110,13 @@ static async Task AddToolAndLaunch()
110110

111111
#endregion
112112
}
113+
/**
113114
114115
[Fact]
115116
public Task LaunchSpecificDocxDiff() =>
116117
DiffRunner.LaunchAsync(DiffTool.MsWordDiff,
117118
Path.Combine(SourceDirectory, "input.temp.docx"),
118119
Path.Combine(SourceDirectory, "input.target.docx"));
119-
/**
120120
121121
[Fact]
122122
public Task LaunchSpecificBinaryDiff() =>
Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
1-
* **[BeyondCompare](/docs/diff-tool.md#beyondcompare)** Win/OSX/Linux (Cost: Paid)
2-
* **[P4Merge](/docs/diff-tool.md#p4merge)** Win/OSX/Linux (Cost: Free)
1+
* **[BeyondCompare](/docs/diff-tool.md#beyondcompare)** Windows/OSX/Linux (Cost: Paid)
2+
* **[P4Merge](/docs/diff-tool.md#p4merge)** Windows/OSX/Linux (Cost: Free)
33
* **[Kaleidoscope](/docs/diff-tool.md#kaleidoscope)** OSX (Cost: Paid)
4-
* **[DeltaWalker](/docs/diff-tool.md#deltawalker)** Win/OSX (Cost: Paid)
5-
* **[WinMerge](/docs/diff-tool.md#winmerge)** Win (Cost: Free with option to donate)
6-
* **[TortoiseGitMerge](/docs/diff-tool.md#tortoisegitmerge)** Win (Cost: Free)
7-
* **[TortoiseGitIDiff](/docs/diff-tool.md#tortoisegitidiff)** Win (Cost: Free)
8-
* **[TortoiseMerge](/docs/diff-tool.md#tortoisemerge)** Win (Cost: Free)
9-
* **[TortoiseIDiff](/docs/diff-tool.md#tortoiseidiff)** Win (Cost: Free)
10-
* **[KDiff3](/docs/diff-tool.md#kdiff3)** Win/OSX (Cost: Free)
4+
* **[DeltaWalker](/docs/diff-tool.md#deltawalker)** Windows/OSX (Cost: Paid)
5+
* **[WinMerge](/docs/diff-tool.md#winmerge)** Windows (Cost: Free with option to donate)
6+
* **[TortoiseGitMerge](/docs/diff-tool.md#tortoisegitmerge)** Windows (Cost: Free)
7+
* **[TortoiseGitIDiff](/docs/diff-tool.md#tortoisegitidiff)** Windows (Cost: Free)
8+
* **[TortoiseMerge](/docs/diff-tool.md#tortoisemerge)** Windows (Cost: Free)
9+
* **[TortoiseIDiff](/docs/diff-tool.md#tortoiseidiff)** Windows (Cost: Free)
10+
* **[KDiff3](/docs/diff-tool.md#kdiff3)** Windows/OSX (Cost: Free)
1111
* **[TkDiff](/docs/diff-tool.md#tkdiff)** OSX (Cost: Free)
12-
* **[Guiffy](/docs/diff-tool.md#guiffy)** Win/OSX (Cost: Paid)
13-
* **[ExamDiff](/docs/diff-tool.md#examdiff)** Win (Cost: Paid)
14-
* **[Diffinity](/docs/diff-tool.md#diffinity)** Win (Cost: Free with option to donate)
15-
* **[Rider](/docs/diff-tool.md#rider)** Win/OSX/Linux (Cost: Paid with free option for OSS)
16-
* **[Vim](/docs/diff-tool.md#vim)** Win/OSX (Cost: Free with option to donate)
17-
* **[Neovim](/docs/diff-tool.md#neovim)** Win/OSX/Linux (Cost: Free with option to sponsor)
18-
* **[AraxisMerge](/docs/diff-tool.md#araxismerge)** Win/OSX (Cost: Paid)
19-
* **[Meld](/docs/diff-tool.md#meld)** Win/OSX/Linux (Cost: Free)
20-
* **[SublimeMerge](/docs/diff-tool.md#sublimemerge)** Win/OSX/Linux (Cost: Paid)
21-
* **[VisualStudioCode](/docs/diff-tool.md#visualstudiocode)** Win/OSX/Linux (Cost: Free)
22-
* **[Cursor](/docs/diff-tool.md#cursor)** Win/OSX/Linux (Cost: Free and Paid)
23-
* **[VisualStudio](/docs/diff-tool.md#visualstudio)** Win (Cost: Paid and free options)
24-
* **[MsWordDiff](/docs/diff-tool.md#msworddiff)** Win (Cost: Free)
12+
* **[Guiffy](/docs/diff-tool.md#guiffy)** Windows/OSX (Cost: Paid)
13+
* **[ExamDiff](/docs/diff-tool.md#examdiff)** Windows (Cost: Paid)
14+
* **[Diffinity](/docs/diff-tool.md#diffinity)** Windows (Cost: Free with option to donate)
15+
* **[Rider](/docs/diff-tool.md#rider)** Windows/OSX/Linux (Cost: Paid with free option for OSS)
16+
* **[Vim](/docs/diff-tool.md#vim)** Windows/OSX (Cost: Free with option to donate)
17+
* **[Neovim](/docs/diff-tool.md#neovim)** Windows/OSX/Linux (Cost: Free with option to sponsor)
18+
* **[AraxisMerge](/docs/diff-tool.md#araxismerge)** Windows/OSX (Cost: Paid)
19+
* **[Meld](/docs/diff-tool.md#meld)** Windows/OSX/Linux (Cost: Free)
20+
* **[SublimeMerge](/docs/diff-tool.md#sublimemerge)** Windows/OSX/Linux (Cost: Paid)
21+
* **[VisualStudioCode](/docs/diff-tool.md#visualstudiocode)** Windows/OSX/Linux (Cost: Free)
22+
* **[Cursor](/docs/diff-tool.md#cursor)** Windows/OSX/Linux (Cost: Free and Paid)
23+
* **[VisualStudio](/docs/diff-tool.md#visualstudio)** Windows (Cost: Paid and free options)
24+
* **[MsWordDiff](/docs/diff-tool.md#msworddiff)** Windows (Cost: Free)
Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
1-
* **[BeyondCompare](/docs/diff-tool.md#beyondcompare)** Win/OSX/Linux (Cost: Paid)
2-
* **[P4Merge](/docs/diff-tool.md#p4merge)** Win/OSX/Linux (Cost: Free)
1+
* **[BeyondCompare](/docs/diff-tool.md#beyondcompare)** Windows/OSX/Linux (Cost: Paid)
2+
* **[P4Merge](/docs/diff-tool.md#p4merge)** Windows/OSX/Linux (Cost: Free)
33
* **[Kaleidoscope](/docs/diff-tool.md#kaleidoscope)** OSX (Cost: Paid)
4-
* **[DeltaWalker](/docs/diff-tool.md#deltawalker)** Win/OSX (Cost: Paid)
5-
* **[WinMerge](/docs/diff-tool.md#winmerge)** Win (Cost: Free with option to donate)
6-
* **[TortoiseGitMerge](/docs/diff-tool.md#tortoisegitmerge)** Win (Cost: Free)
7-
* **[TortoiseGitIDiff](/docs/diff-tool.md#tortoisegitidiff)** Win (Cost: Free)
8-
* **[TortoiseMerge](/docs/diff-tool.md#tortoisemerge)** Win (Cost: Free)
9-
* **[TortoiseIDiff](/docs/diff-tool.md#tortoiseidiff)** Win (Cost: Free)
10-
* **[KDiff3](/docs/diff-tool.md#kdiff3)** Win/OSX (Cost: Free)
4+
* **[DeltaWalker](/docs/diff-tool.md#deltawalker)** Windows/OSX (Cost: Paid)
5+
* **[WinMerge](/docs/diff-tool.md#winmerge)** Windows (Cost: Free with option to donate)
6+
* **[TortoiseGitMerge](/docs/diff-tool.md#tortoisegitmerge)** Windows (Cost: Free)
7+
* **[TortoiseGitIDiff](/docs/diff-tool.md#tortoisegitidiff)** Windows (Cost: Free)
8+
* **[TortoiseMerge](/docs/diff-tool.md#tortoisemerge)** Windows (Cost: Free)
9+
* **[TortoiseIDiff](/docs/diff-tool.md#tortoiseidiff)** Windows (Cost: Free)
10+
* **[KDiff3](/docs/diff-tool.md#kdiff3)** Windows/OSX (Cost: Free)
1111
* **[TkDiff](/docs/diff-tool.md#tkdiff)** OSX (Cost: Free)
12-
* **[Guiffy](/docs/diff-tool.md#guiffy)** Win/OSX (Cost: Paid)
13-
* **[ExamDiff](/docs/diff-tool.md#examdiff)** Win (Cost: Paid)
14-
* **[Diffinity](/docs/diff-tool.md#diffinity)** Win (Cost: Free with option to donate)
15-
* **[Rider](/docs/diff-tool.md#rider)** Win/OSX/Linux (Cost: Paid with free option for OSS)
16-
* **[Vim](/docs/diff-tool.md#vim)** Win/OSX (Cost: Free with option to donate)
17-
* **[Neovim](/docs/diff-tool.md#neovim)** Win/OSX/Linux (Cost: Free with option to sponsor)
18-
* **[AraxisMerge](/docs/diff-tool.md#araxismerge)** Win/OSX (Cost: Paid)
19-
* **[Meld](/docs/diff-tool.md#meld)** Win/OSX/Linux (Cost: Free)
20-
* **[SublimeMerge](/docs/diff-tool.md#sublimemerge)** Win/OSX/Linux (Cost: Paid)
21-
* **[VisualStudioCode](/docs/diff-tool.md#visualstudiocode)** Win/OSX/Linux (Cost: Free)
22-
* **[Cursor](/docs/diff-tool.md#cursor)** Win/OSX/Linux (Cost: Free and Paid)
23-
* **[VisualStudio](/docs/diff-tool.md#visualstudio)** Win (Cost: Paid and free options)
24-
* **[MsWordDiff](/docs/diff-tool.md#msworddiff)** Win (Cost: Free)
12+
* **[Guiffy](/docs/diff-tool.md#guiffy)** Windows/OSX (Cost: Paid)
13+
* **[ExamDiff](/docs/diff-tool.md#examdiff)** Windows (Cost: Paid)
14+
* **[Diffinity](/docs/diff-tool.md#diffinity)** Windows (Cost: Free with option to donate)
15+
* **[Rider](/docs/diff-tool.md#rider)** Windows/OSX/Linux (Cost: Paid with free option for OSS)
16+
* **[Vim](/docs/diff-tool.md#vim)** Windows/OSX (Cost: Free with option to donate)
17+
* **[Neovim](/docs/diff-tool.md#neovim)** Windows/OSX/Linux (Cost: Free with option to sponsor)
18+
* **[AraxisMerge](/docs/diff-tool.md#araxismerge)** Windows/OSX (Cost: Paid)
19+
* **[Meld](/docs/diff-tool.md#meld)** Windows/OSX/Linux (Cost: Free)
20+
* **[SublimeMerge](/docs/diff-tool.md#sublimemerge)** Windows/OSX/Linux (Cost: Paid)
21+
* **[VisualStudioCode](/docs/diff-tool.md#visualstudiocode)** Windows/OSX/Linux (Cost: Free)
22+
* **[Cursor](/docs/diff-tool.md#cursor)** Windows/OSX/Linux (Cost: Free and Paid)
23+
* **[VisualStudio](/docs/diff-tool.md#visualstudio)** Windows (Cost: Paid and free options)
24+
* **[MsWordDiff](/docs/diff-tool.md#msworddiff)** Windows (Cost: Free)

src/DiffEngine.Tests/diffTools.include.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ DiffTools.UseOrder(DiffTool.KDiff3);
347347
* Is MDI: False
348348
* Supports auto-refresh: False
349349
* Supports text files: False
350-
* Use shell execute: True
350+
* Use shell execute: False
351351
* Environment variable for custom install location: `DiffEngine_MsWordDiff`
352352
* Supported binaries: .doc, .docx
353353

src/DiffEngine/Definition.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ public record Definition(
1111
string Cost,
1212
OsSupport OsSupport,
1313
bool UseShellExecute = true,
14+
bool CreateNoWindow = false,
1415
string? Notes = null);

src/DiffEngine/DiffRunner.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,8 @@ static int LaunchProcess(ResolvedTool tool, string arguments)
244244
// Given the full exe path is known we dont need UseShellExecute https://stackoverflow.com/a/5255335
245245
// however UseShellExecute allows the test running to not block when the difftool is launched
246246
// https://github.com/VerifyTests/Verify/issues/1229
247-
UseShellExecute = tool.UseShellExecute
247+
UseShellExecute = tool.UseShellExecute,
248+
CreateNoWindow = tool.CreateNoWindow
248249
};
249250
try
250251
{

src/DiffEngine/DiffTools_Add.cs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public static partial class DiffTools
99
bool? supportsText = null,
1010
bool? requiresTarget = null,
1111
bool? useShellExecute = true,
12+
bool? createNoWindow = null,
1213
LaunchArguments? launchArguments = null,
1314
string? exePath = null,
1415
IEnumerable<string>? binaryExtensions = null)
@@ -28,26 +29,27 @@ public static partial class DiffTools
2829
useShellExecute ?? existing.UseShellExecute,
2930
launchArguments ?? existing.LaunchArguments,
3031
exePath ?? existing.ExePath,
31-
binaryExtensions ?? existing.BinaryExtensions);
32+
binaryExtensions ?? existing.BinaryExtensions,
33+
createNoWindow ?? existing.CreateNoWindow);
3234
}
3335

3436
public static ResolvedTool? AddTool(string name, bool autoRefresh, bool isMdi, bool supportsText, bool requiresTarget, bool useShellExecute, IEnumerable<string> binaryExtensions, OsSupport osSupport) =>
35-
AddTool(name, null, autoRefresh, isMdi, supportsText, requiresTarget, binaryExtensions, osSupport, useShellExecute);
37+
AddTool(name, null, autoRefresh, isMdi, supportsText, requiresTarget, binaryExtensions, osSupport, useShellExecute, createNoWindow: false);
3638

37-
public static ResolvedTool? AddTool(string name, bool autoRefresh, bool isMdi, bool supportsText, bool requiresTarget, bool useShellExecute, LaunchArguments launchArguments, string exePath, IEnumerable<string> binaryExtensions) =>
38-
AddInner(name, null, autoRefresh, isMdi, supportsText, requiresTarget, binaryExtensions, exePath, launchArguments, useShellExecute);
39+
public static ResolvedTool? AddTool(string name, bool autoRefresh, bool isMdi, bool supportsText, bool requiresTarget, bool useShellExecute, LaunchArguments launchArguments, string exePath, IEnumerable<string> binaryExtensions, bool createNoWindow = false) =>
40+
AddInner(name, null, autoRefresh, isMdi, supportsText, requiresTarget, binaryExtensions, exePath, launchArguments, useShellExecute, createNoWindow);
3941

40-
static ResolvedTool? AddTool(string name, DiffTool? diffTool, bool autoRefresh, bool isMdi, bool supportsText, bool requiresTarget, IEnumerable<string> binaryExtensions, OsSupport osSupport, bool useShellExecute)
42+
static ResolvedTool? AddTool(string name, DiffTool? diffTool, bool autoRefresh, bool isMdi, bool supportsText, bool requiresTarget, IEnumerable<string> binaryExtensions, OsSupport osSupport, bool useShellExecute, bool createNoWindow)
4143
{
4244
if (!OsSettingsResolver.Resolve(name, osSupport, out var exePath, out var launchArguments))
4345
{
4446
return null;
4547
}
4648

47-
return AddInner(name, diffTool, autoRefresh, isMdi, supportsText, requiresTarget, binaryExtensions, exePath, launchArguments, useShellExecute);
49+
return AddInner(name, diffTool, autoRefresh, isMdi, supportsText, requiresTarget, binaryExtensions, exePath, launchArguments, useShellExecute, createNoWindow);
4850
}
4951

50-
static ResolvedTool? AddInner(string name, DiffTool? diffTool, bool autoRefresh, bool isMdi, bool supportsText, bool requiresTarget, IEnumerable<string> binaries, string exePath, LaunchArguments launchArguments, bool useShellExecute)
52+
static ResolvedTool? AddInner(string name, DiffTool? diffTool, bool autoRefresh, bool isMdi, bool supportsText, bool requiresTarget, IEnumerable<string> binaries, string exePath, LaunchArguments launchArguments, bool useShellExecute, bool createNoWindow)
5153
{
5254
Guard.AgainstEmpty(name, nameof(name));
5355
if (resolved.Any(_ => _.Name == name))
@@ -70,7 +72,8 @@ public static partial class DiffTools
7072
binaries.ToList(),
7173
requiresTarget,
7274
supportsText,
73-
useShellExecute);
75+
useShellExecute,
76+
createNoWindow);
7477

7578
AddResolvedToolAtStart(tool);
7679

@@ -107,7 +110,8 @@ static void InitTools(bool throwForNoTool, IEnumerable<DiffTool> order)
107110
definition.RequiresTarget,
108111
definition.BinaryExtensions,
109112
definition.OsSupport,
110-
definition.UseShellExecute);
113+
definition.UseShellExecute,
114+
definition.CreateNoWindow);
111115
}
112116

113117
custom.Reverse();

src/DiffEngine/Implementation/MsWordDiff.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,20 @@ public static Definition MsWordDiff()
1212
AutoRefresh: false,
1313
IsMdi: false,
1414
SupportsText: false,
15-
UseShellExecute: true,
1615
RequiresTarget: true,
17-
Cost: "Free",
1816
BinaryExtensions:
1917
[
2018
".docx",
2119
".doc"
2220
],
21+
Cost: "Free",
2322
OsSupport: new(
2423
Windows: new(
2524
"diffword.exe",
2625
launchArguments,
2726
@"%USERPROFILE%\.dotnet\tools\")),
27+
UseShellExecute: false,
28+
CreateNoWindow: true,
2829
Notes: """
2930
* Install via `dotnet tool install -g MsWordDiff`
3031
* Requires Microsoft Word to be installed

0 commit comments

Comments
 (0)