diff --git a/docs/diff-tool.custom.md b/docs/diff-tool.custom.md
index 97132132..3cd0c01e 100644
--- a/docs/diff-tool.custom.md
+++ b/docs/diff-tool.custom.md
@@ -18,13 +18,14 @@ var resolvedTool = DiffTools.AddTool(
isMdi: false,
supportsText: true,
requiresTarget: true,
+ createNoWindow: false,
launchArguments: new(
Left: (tempFile, targetFile) => $"\"{targetFile}\" \"{tempFile}\"",
Right: (tempFile, targetFile) => $"\"{tempFile}\" \"{targetFile}\""),
exePath: diffToolPath,
binaryExtensions: [".jpg"])!;
```
-snippet source | anchor
+snippet source | anchor
Add a tool based on existing resolved tool:
@@ -39,7 +40,7 @@ var resolvedTool = DiffTools.AddToolBasedOn(
Left: (temp, target) => $"\"custom args \"{target}\" \"{temp}\"",
Right: (temp, target) => $"\"custom args \"{temp}\" \"{target}\""))!;
```
-snippet source | anchor
+snippet source | anchor
@@ -69,7 +70,7 @@ var resolvedTool = DiffTools.AddToolBasedOn(
await DiffRunner.LaunchAsync(resolvedTool!, "PathToTempFile", "PathToTargetFile");
```
-snippet source | anchor
+snippet source | anchor
diff --git a/docs/diff-tool.md b/docs/diff-tool.md
index c5745e25..6bc94a5d 100644
--- a/docs/diff-tool.md
+++ b/docs/diff-tool.md
@@ -145,6 +145,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_BeyondCompare`
* Supported binaries: .bmp, .gif, .ico, .jpeg, .jpg, .pdf, .png, .rtf, .svg, .tif, .tiff
@@ -186,6 +187,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_DeltaWalker`
* Supported binaries: .bmp, .bz2, .doc, .docx, .ear, .gif, .gz, .htm, .html, .ico, .j2k, .jar, .jp2, .jpg, .pbm, .pct, .pdf, .pgm, .pic, .pict, .png, .pnm, .ppm, .ppt, .psd, .rtf, .svg, .tar, .tbz2, .tgz, .tif, .xls, .xlsx, .zip
@@ -217,6 +219,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_Diffinity`
* Supported binaries: .svg
@@ -236,6 +239,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_ExamDiff`
* Supported binaries: .svg
@@ -261,6 +265,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_Guiffy`
* Supported binaries: .bmp, .gif, .jpeg, .jpg, .png, .svg, .wbmp
@@ -295,6 +300,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_Kaleidoscope`
* Supported binaries: .bmp, .gif, .ico, .jpeg, .jpg, .png, .svg, .tif, .tiff
@@ -311,6 +317,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_KDiff3`
* Supported binaries: .svg
@@ -345,6 +352,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_Neovim`
* Supported binaries: .svg
@@ -379,6 +387,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_P4Merge`
* Supported binaries: .bmp, .gif, .jpeg, .jpg, .pbm, .pgm, .png, .ppm, .svg, .tif, .tiff, .xbm, .xpm
@@ -419,6 +428,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_Rider`
* Supported binaries: .svg
@@ -460,6 +470,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_TkDiff`
* Supported binaries: .svg
@@ -477,6 +488,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: False
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_TortoiseGitIDiff`
* Supported binaries: .bmp, .gif, .ico, .jpeg, .jpg, .png, .tif, .tiff
@@ -496,6 +508,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_TortoiseGitMerge`
* Supported binaries: .svg
@@ -515,6 +528,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: False
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_TortoiseIDiff`
* Supported binaries: .bmp, .gif, .ico, .jpeg, .jpg, .png, .tif, .tiff
@@ -534,6 +548,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_TortoiseMerge`
* Supported binaries: .svg
@@ -553,6 +568,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_Vim`
* Supported binaries: .svg
@@ -588,6 +604,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_WinMerge`
* Supported binaries: .bmp, .bw, .cut, .dds, .exr, .g3, .gif, .hdp, .hdr, .ico, .iff, .j2c, .j2k, .jif, .jng, .jp2, .jpe, .jpeg, .jpg, .jxr, .koa, .lbm, .mng, .pbm, .pcd, .pct, .pcx, .pfm, .pgm, .pic, .pict, .png, .ppm, .psd, .ras, .rgb, .rgba, .sgi, .svg, .targa, .tga, .tif, .tiff, .wap, .wbm, .wbmp, .wdp, .webp, .xbm, .xpm
@@ -620,6 +637,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: True
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_AraxisMerge`
* Supported binaries: .bmp, .dib, .emf, .gif, .j2c, .j2k, .jif, .jp2, .jpc, .jpeg, .jpg, .jpx, .pbm, .pcx, .pgm, .png, .ppm, .ras, .svg, .tga, .tif, .tiff, .wmf
@@ -654,6 +672,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: True
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_Meld`
* Supported binaries: .svg
@@ -693,6 +712,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: True
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_SublimeMerge`
* Supported binaries: .svg
@@ -731,6 +751,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: True
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_VisualStudio`
* Supported binaries: .svg
@@ -759,6 +780,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: True
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_VisualStudioCode`
* Supported binaries: .svg
diff --git a/docs/diff-tool.order.md b/docs/diff-tool.order.md
index a9bb4d77..ace82a4b 100644
--- a/docs/diff-tool.order.md
+++ b/docs/diff-tool.order.md
@@ -51,5 +51,5 @@ For example `VisualStudio,Meld` will result in VisualStudio then Meld then all o
```cs
DiffTools.UseOrder(DiffTool.VisualStudio, DiffTool.AraxisMerge);
```
-snippet source | anchor
+snippet source | anchor
diff --git a/src/DiffEngine.Tests/DefinitionsTest.cs b/src/DiffEngine.Tests/DefinitionsTest.cs
index d79e58f2..507aca76 100644
--- a/src/DiffEngine.Tests/DefinitionsTest.cs
+++ b/src/DiffEngine.Tests/DefinitionsTest.cs
@@ -124,12 +124,13 @@ static void AddTool(StreamWriter writer, Definition tool)
* Is MDI: {tool.IsMdi}
* Supports auto-refresh: {tool.AutoRefresh}
* Supports text files: {tool.SupportsText}
+ * Create no window: {tool.CreateNoWindow}
* Environment variable for custom install location: `DiffEngine_{tool.Tool}`
""");
if (tool.BinaryExtensions.Length != 0)
{
- writer.WriteLine($" * Supported binaries: {string.Join(", ", tool.BinaryExtensions.OrderBy(_=>_))}");
+ writer.WriteLine($" * Supported binaries: {string.Join(", ", tool.BinaryExtensions.OrderBy(_ => _))}");
}
if (tool.Notes != null)
diff --git a/src/DiffEngine.Tests/DiffRunnerTests.cs b/src/DiffEngine.Tests/DiffRunnerTests.cs
index 82d55e0f..98e41ae3 100644
--- a/src/DiffEngine.Tests/DiffRunnerTests.cs
+++ b/src/DiffEngine.Tests/DiffRunnerTests.cs
@@ -187,6 +187,7 @@ static DiffRunnerTests() =>
autoRefresh: true,
isMdi: false,
supportsText: true,
+ createNoWindow: false,
requiresTarget: true,
launchArguments: new(
Left: (tempFile, targetFile) => $"\"{tempFile}\" \"{targetFile}\"",
diff --git a/src/DiffEngine.Tests/DiffToolsTest.cs b/src/DiffEngine.Tests/DiffToolsTest.cs
index 9c98e20d..3e288397 100644
--- a/src/DiffEngine.Tests/DiffToolsTest.cs
+++ b/src/DiffEngine.Tests/DiffToolsTest.cs
@@ -20,6 +20,7 @@ public void AddTool()
isMdi: false,
supportsText: true,
requiresTarget: true,
+ createNoWindow: false,
launchArguments: new(
Left: (tempFile, targetFile) => $"\"{targetFile}\" \"{tempFile}\"",
Right: (tempFile, targetFile) => $"\"{tempFile}\" \"{targetFile}\""),
@@ -44,6 +45,7 @@ public void OrderShouldNotMessWithAddTool()
isMdi: false,
supportsText: true,
requiresTarget: true,
+ createNoWindow: false,
launchArguments: new(
Left: (tempFile, targetFile) => $"\"{targetFile}\" \"{tempFile}\"",
Right: (tempFile, targetFile) => $"\"{tempFile}\" \"{targetFile}\""),
@@ -65,6 +67,7 @@ public void TextConvention()
isMdi: false,
supportsText: true,
requiresTarget: true,
+ createNoWindow: false,
launchArguments: new(
Left: (tempFile, targetFile) => $"\"{targetFile}\" \"{tempFile}\"",
Right: (tempFile, targetFile) => $"\"{tempFile}\" \"{targetFile}\""),
diff --git a/src/DiffEngine.Tests/diffTools.include.md b/src/DiffEngine.Tests/diffTools.include.md
index 5c8de2b6..d1f225c5 100644
--- a/src/DiffEngine.Tests/diffTools.include.md
+++ b/src/DiffEngine.Tests/diffTools.include.md
@@ -10,6 +10,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_BeyondCompare`
* Supported binaries: .bmp, .gif, .ico, .jpeg, .jpg, .pdf, .png, .rtf, .svg, .tif, .tiff
@@ -51,6 +52,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_DeltaWalker`
* Supported binaries: .bmp, .bz2, .doc, .docx, .ear, .gif, .gz, .htm, .html, .ico, .j2k, .jar, .jp2, .jpg, .pbm, .pct, .pdf, .pgm, .pic, .pict, .png, .pnm, .ppm, .ppt, .psd, .rtf, .svg, .tar, .tbz2, .tgz, .tif, .xls, .xlsx, .zip
@@ -82,6 +84,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_Diffinity`
* Supported binaries: .svg
@@ -101,6 +104,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_ExamDiff`
* Supported binaries: .svg
@@ -126,6 +130,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_Guiffy`
* Supported binaries: .bmp, .gif, .jpeg, .jpg, .png, .svg, .wbmp
@@ -160,6 +165,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_Kaleidoscope`
* Supported binaries: .bmp, .gif, .ico, .jpeg, .jpg, .png, .svg, .tif, .tiff
@@ -176,6 +182,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_KDiff3`
* Supported binaries: .svg
@@ -210,6 +217,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_Neovim`
* Supported binaries: .svg
@@ -244,6 +252,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_P4Merge`
* Supported binaries: .bmp, .gif, .jpeg, .jpg, .pbm, .pgm, .png, .ppm, .svg, .tif, .tiff, .xbm, .xpm
@@ -284,6 +293,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_Rider`
* Supported binaries: .svg
@@ -325,6 +335,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_TkDiff`
* Supported binaries: .svg
@@ -342,6 +353,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: False
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_TortoiseGitIDiff`
* Supported binaries: .bmp, .gif, .ico, .jpeg, .jpg, .png, .tif, .tiff
@@ -361,6 +373,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_TortoiseGitMerge`
* Supported binaries: .svg
@@ -380,6 +393,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: False
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_TortoiseIDiff`
* Supported binaries: .bmp, .gif, .ico, .jpeg, .jpg, .png, .tif, .tiff
@@ -399,6 +413,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_TortoiseMerge`
* Supported binaries: .svg
@@ -418,6 +433,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_Vim`
* Supported binaries: .svg
@@ -453,6 +469,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: False
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_WinMerge`
* Supported binaries: .bmp, .bw, .cut, .dds, .exr, .g3, .gif, .hdp, .hdr, .ico, .iff, .j2c, .j2k, .jif, .jng, .jp2, .jpe, .jpeg, .jpg, .jxr, .koa, .lbm, .mng, .pbm, .pcd, .pct, .pcx, .pfm, .pgm, .pic, .pict, .png, .ppm, .psd, .ras, .rgb, .rgba, .sgi, .svg, .targa, .tga, .tif, .tiff, .wap, .wbm, .wbmp, .wdp, .webp, .xbm, .xpm
@@ -485,6 +502,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: True
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_AraxisMerge`
* Supported binaries: .bmp, .dib, .emf, .gif, .j2c, .j2k, .jif, .jp2, .jpc, .jpeg, .jpg, .jpx, .pbm, .pcx, .pgm, .png, .ppm, .ras, .svg, .tga, .tif, .tiff, .wmf
@@ -519,6 +537,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: True
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_Meld`
* Supported binaries: .svg
@@ -558,6 +577,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: True
* Supports auto-refresh: False
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_SublimeMerge`
* Supported binaries: .svg
@@ -596,6 +616,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: True
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_VisualStudio`
* Supported binaries: .svg
@@ -624,6 +645,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Is MDI: True
* Supports auto-refresh: True
* Supports text files: True
+ * Create no window: False
* Environment variable for custom install location: `DiffEngine_VisualStudioCode`
* Supported binaries: .svg
diff --git a/src/DiffEngine/Definition.cs b/src/DiffEngine/Definition.cs
index a0002112..e6b84695 100644
--- a/src/DiffEngine/Definition.cs
+++ b/src/DiffEngine/Definition.cs
@@ -10,4 +10,5 @@ public record Definition(
string[] BinaryExtensions,
string Cost,
OsSupport OsSupport,
+ bool CreateNoWindow = false,
string? Notes = null);
\ No newline at end of file
diff --git a/src/DiffEngine/DiffTools_Add.cs b/src/DiffEngine/DiffTools_Add.cs
index 11556599..38cf4a3a 100644
--- a/src/DiffEngine/DiffTools_Add.cs
+++ b/src/DiffEngine/DiffTools_Add.cs
@@ -2,7 +2,16 @@
public static partial class DiffTools
{
- public static ResolvedTool? AddToolBasedOn(DiffTool basedOn, string name, bool? autoRefresh = null, bool? isMdi = null, bool? supportsText = null, bool? requiresTarget = null, LaunchArguments? launchArguments = null, string? exePath = null, IEnumerable? binaryExtensions = null)
+ public static ResolvedTool? AddToolBasedOn(DiffTool basedOn,
+ string name,
+ bool? autoRefresh = null,
+ bool? isMdi = null,
+ bool? supportsText = null,
+ bool? requiresTarget = null,
+ bool? createNoWindow = false,
+ LaunchArguments? launchArguments = null,
+ string? exePath = null,
+ IEnumerable? binaryExtensions = null)
{
var existing = resolved.SingleOrDefault(_ => _.Tool == basedOn);
if (existing == null)
@@ -16,28 +25,29 @@ public static partial class DiffTools
isMdi ?? existing.IsMdi,
supportsText ?? existing.SupportsText,
requiresTarget ?? existing.RequiresTarget,
+ createNoWindow ?? existing.CreateNoWindow,
launchArguments ?? existing.LaunchArguments,
exePath ?? existing.ExePath,
binaryExtensions ?? existing.BinaryExtensions);
}
- public static ResolvedTool? AddTool(string name, bool autoRefresh, bool isMdi, bool supportsText, bool requiresTarget, IEnumerable binaryExtensions, OsSupport osSupport) =>
- AddTool(name, null, autoRefresh, isMdi, supportsText, requiresTarget, binaryExtensions, osSupport);
+ public static ResolvedTool? AddTool(string name, bool autoRefresh, bool isMdi, bool supportsText, bool requiresTarget, bool createNoWindow, IEnumerable binaryExtensions, OsSupport osSupport) =>
+ AddTool(name, null, autoRefresh, isMdi, supportsText, requiresTarget, binaryExtensions, osSupport, createNoWindow);
- public static ResolvedTool? AddTool(string name, bool autoRefresh, bool isMdi, bool supportsText, bool requiresTarget, LaunchArguments launchArguments, string exePath, IEnumerable binaryExtensions) =>
- AddInner(name, null, autoRefresh, isMdi, supportsText, requiresTarget, binaryExtensions, exePath, launchArguments);
+ public static ResolvedTool? AddTool(string name, bool autoRefresh, bool isMdi, bool supportsText, bool requiresTarget, bool createNoWindow, LaunchArguments launchArguments, string exePath, IEnumerable binaryExtensions) =>
+ AddInner(name, null, autoRefresh, isMdi, supportsText, requiresTarget, binaryExtensions, exePath, launchArguments, createNoWindow);
- static ResolvedTool? AddTool(string name, DiffTool? diffTool, bool autoRefresh, bool isMdi, bool supportsText, bool requiresTarget, IEnumerable binaryExtensions, OsSupport osSupport)
+ static ResolvedTool? AddTool(string name, DiffTool? diffTool, bool autoRefresh, bool isMdi, bool supportsText, bool requiresTarget, IEnumerable binaryExtensions, OsSupport osSupport, bool createNoWindow)
{
if (!OsSettingsResolver.Resolve(name, osSupport, out var exePath, out var launchArguments))
{
return null;
}
- return AddInner(name, diffTool, autoRefresh, isMdi, supportsText, requiresTarget, binaryExtensions, exePath, launchArguments);
+ return AddInner(name, diffTool, autoRefresh, isMdi, supportsText, requiresTarget, binaryExtensions, exePath, launchArguments, createNoWindow);
}
- static ResolvedTool? AddInner(string name, DiffTool? diffTool, bool autoRefresh, bool isMdi, bool supportsText, bool requiresTarget, IEnumerable binaries, string exePath, LaunchArguments launchArguments)
+ static ResolvedTool? AddInner(string name, DiffTool? diffTool, bool autoRefresh, bool isMdi, bool supportsText, bool requiresTarget, IEnumerable binaries, string exePath, LaunchArguments launchArguments, bool createNoWindow)
{
Guard.AgainstEmpty(name, nameof(name));
if (resolved.Any(_ => _.Name == name))
@@ -59,7 +69,8 @@ public static partial class DiffTools
autoRefresh,
binaries.ToList(),
requiresTarget,
- supportsText);
+ supportsText,
+ createNoWindow);
AddResolvedToolAtStart(tool);
@@ -95,7 +106,8 @@ static void InitTools(bool throwForNoTool, IEnumerable order)
definition.SupportsText,
definition.RequiresTarget,
definition.BinaryExtensions,
- definition.OsSupport);
+ definition.OsSupport,
+ definition.CreateNoWindow);
}
custom.Reverse();
diff --git a/src/DiffEngine/Implementation/AraxisMerge.cs b/src/DiffEngine/Implementation/AraxisMerge.cs
index d693a91d..45df8372 100644
--- a/src/DiffEngine/Implementation/AraxisMerge.cs
+++ b/src/DiffEngine/Implementation/AraxisMerge.cs
@@ -9,6 +9,7 @@ public static Definition AraxisMerge() =>
Cost: "Paid",
SupportsText: true,
RequiresTarget: true,
+ CreateNoWindow: false,
BinaryExtensions:
[
".svg",
diff --git a/src/DiffEngine/Implementation/BeyondCompare.cs b/src/DiffEngine/Implementation/BeyondCompare.cs
index 88bef455..bb079741 100644
--- a/src/DiffEngine/Implementation/BeyondCompare.cs
+++ b/src/DiffEngine/Implementation/BeyondCompare.cs
@@ -20,6 +20,7 @@ static string RightOsxLinuxArguments(string temp, string target) =>
AutoRefresh: true,
IsMdi: false,
SupportsText: true,
+ CreateNoWindow: false,
Cost: "Paid",
// technically BC doesnt require a target.
// but if no target exists, the target cannot be edited
diff --git a/src/DiffEngine/Implementation/DeltaWalker.cs b/src/DiffEngine/Implementation/DeltaWalker.cs
index f4d7b546..67078d66 100644
--- a/src/DiffEngine/Implementation/DeltaWalker.cs
+++ b/src/DiffEngine/Implementation/DeltaWalker.cs
@@ -12,6 +12,7 @@ public static Definition DeltaWalker()
AutoRefresh: true,
IsMdi: false,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: false,
Cost: "Paid",
BinaryExtensions:
diff --git a/src/DiffEngine/Implementation/Diffinity.cs b/src/DiffEngine/Implementation/Diffinity.cs
index 7bac91b9..4fc2f699 100644
--- a/src/DiffEngine/Implementation/Diffinity.cs
+++ b/src/DiffEngine/Implementation/Diffinity.cs
@@ -7,6 +7,7 @@ public static Definition Diffinity() =>
AutoRefresh: true,
IsMdi: false,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Free with option to donate",
BinaryExtensions: [".svg"],
diff --git a/src/DiffEngine/Implementation/ExamDiff.cs b/src/DiffEngine/Implementation/ExamDiff.cs
index d0b273ba..e0521a84 100644
--- a/src/DiffEngine/Implementation/ExamDiff.cs
+++ b/src/DiffEngine/Implementation/ExamDiff.cs
@@ -22,6 +22,7 @@ static string RightArguments(string temp, string target)
AutoRefresh: true,
IsMdi: false,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Paid",
BinaryExtensions: [".svg"],
diff --git a/src/DiffEngine/Implementation/Guiffy.cs b/src/DiffEngine/Implementation/Guiffy.cs
index 526daf99..1376e7cf 100644
--- a/src/DiffEngine/Implementation/Guiffy.cs
+++ b/src/DiffEngine/Implementation/Guiffy.cs
@@ -12,6 +12,7 @@ public static Definition Guiffy()
AutoRefresh: false,
IsMdi: false,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Paid",
BinaryExtensions:
diff --git a/src/DiffEngine/Implementation/KDiff3.cs b/src/DiffEngine/Implementation/KDiff3.cs
index aba50b2d..e7ab6ed0 100644
--- a/src/DiffEngine/Implementation/KDiff3.cs
+++ b/src/DiffEngine/Implementation/KDiff3.cs
@@ -12,6 +12,7 @@ public static Definition KDiff3()
AutoRefresh: false,
IsMdi: false,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Free",
BinaryExtensions: [".svg"],
diff --git a/src/DiffEngine/Implementation/Kaleidoscope.cs b/src/DiffEngine/Implementation/Kaleidoscope.cs
index d1c25d1d..da542777 100644
--- a/src/DiffEngine/Implementation/Kaleidoscope.cs
+++ b/src/DiffEngine/Implementation/Kaleidoscope.cs
@@ -7,6 +7,7 @@ public static Definition Kaleidoscope() =>
AutoRefresh: true,
IsMdi: false,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Paid",
BinaryExtensions:
diff --git a/src/DiffEngine/Implementation/Meld.cs b/src/DiffEngine/Implementation/Meld.cs
index bc28b3f6..e0103d97 100644
--- a/src/DiffEngine/Implementation/Meld.cs
+++ b/src/DiffEngine/Implementation/Meld.cs
@@ -12,6 +12,7 @@ public static Definition Meld()
AutoRefresh: false,
IsMdi: true,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Free",
BinaryExtensions: [".svg"],
diff --git a/src/DiffEngine/Implementation/Neovim.cs b/src/DiffEngine/Implementation/Neovim.cs
index a3e5ceeb..8840a627 100644
--- a/src/DiffEngine/Implementation/Neovim.cs
+++ b/src/DiffEngine/Implementation/Neovim.cs
@@ -12,6 +12,7 @@ public static Definition Neovim()
AutoRefresh: false,
IsMdi: false,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Free with option to sponsor",
BinaryExtensions: [".svg"],
diff --git a/src/DiffEngine/Implementation/P4Merge.cs b/src/DiffEngine/Implementation/P4Merge.cs
index 97b90b36..b1df5dc8 100644
--- a/src/DiffEngine/Implementation/P4Merge.cs
+++ b/src/DiffEngine/Implementation/P4Merge.cs
@@ -28,6 +28,7 @@ public static Definition P4Merge()
AutoRefresh: false,
IsMdi: false,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Free",
BinaryExtensions:
diff --git a/src/DiffEngine/Implementation/Rider.cs b/src/DiffEngine/Implementation/Rider.cs
index 8f6661c6..1d617be7 100644
--- a/src/DiffEngine/Implementation/Rider.cs
+++ b/src/DiffEngine/Implementation/Rider.cs
@@ -12,6 +12,7 @@ public static Definition Rider()
AutoRefresh: true,
IsMdi: false,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Paid with free option for OSS",
BinaryExtensions: [".svg"],
diff --git a/src/DiffEngine/Implementation/SublimeMerge.cs b/src/DiffEngine/Implementation/SublimeMerge.cs
index 81b7b905..2f9c693a 100644
--- a/src/DiffEngine/Implementation/SublimeMerge.cs
+++ b/src/DiffEngine/Implementation/SublimeMerge.cs
@@ -12,6 +12,7 @@ public static Definition SublimeMerge()
AutoRefresh: false,
IsMdi: true,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Paid",
BinaryExtensions: [".svg"],
diff --git a/src/DiffEngine/Implementation/TkDiff.cs b/src/DiffEngine/Implementation/TkDiff.cs
index b9d42506..1c04b784 100644
--- a/src/DiffEngine/Implementation/TkDiff.cs
+++ b/src/DiffEngine/Implementation/TkDiff.cs
@@ -7,6 +7,7 @@ public static Definition TkDiff() =>
AutoRefresh: false,
IsMdi: false,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Free",
BinaryExtensions: [".svg"],
diff --git a/src/DiffEngine/Implementation/TortoiseGitIDiff.cs b/src/DiffEngine/Implementation/TortoiseGitIDiff.cs
index 402f3d40..3cd199b7 100644
--- a/src/DiffEngine/Implementation/TortoiseGitIDiff.cs
+++ b/src/DiffEngine/Implementation/TortoiseGitIDiff.cs
@@ -7,6 +7,7 @@ public static Definition TortoiseGitIDiff() =>
AutoRefresh: false,
IsMdi: false,
SupportsText: false,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Free",
BinaryExtensions:
diff --git a/src/DiffEngine/Implementation/TortoiseGitMerge.cs b/src/DiffEngine/Implementation/TortoiseGitMerge.cs
index dfc5e782..f8fe1f59 100644
--- a/src/DiffEngine/Implementation/TortoiseGitMerge.cs
+++ b/src/DiffEngine/Implementation/TortoiseGitMerge.cs
@@ -7,6 +7,7 @@ public static Definition TortoiseGitMerge() =>
AutoRefresh: false,
IsMdi: false,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Free",
BinaryExtensions: [".svg"],
diff --git a/src/DiffEngine/Implementation/TortoiseIDiff.cs b/src/DiffEngine/Implementation/TortoiseIDiff.cs
index 495a5f05..668fe2d2 100644
--- a/src/DiffEngine/Implementation/TortoiseIDiff.cs
+++ b/src/DiffEngine/Implementation/TortoiseIDiff.cs
@@ -7,6 +7,7 @@ public static Definition TortoiseIDiff() =>
AutoRefresh: false,
IsMdi: false,
SupportsText: false,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Free",
BinaryExtensions:
diff --git a/src/DiffEngine/Implementation/TortoiseMerge.cs b/src/DiffEngine/Implementation/TortoiseMerge.cs
index 3265104a..3c91bb70 100644
--- a/src/DiffEngine/Implementation/TortoiseMerge.cs
+++ b/src/DiffEngine/Implementation/TortoiseMerge.cs
@@ -7,6 +7,7 @@ public static Definition TortoiseMerge() =>
AutoRefresh: false,
IsMdi: false,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Free",
BinaryExtensions: [".svg"],
diff --git a/src/DiffEngine/Implementation/Vim.cs b/src/DiffEngine/Implementation/Vim.cs
index fe3f29c5..1e6c1cad 100644
--- a/src/DiffEngine/Implementation/Vim.cs
+++ b/src/DiffEngine/Implementation/Vim.cs
@@ -12,6 +12,7 @@ public static Definition Vim()
AutoRefresh: true,
IsMdi: false,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Free with option to donate",
BinaryExtensions: [".svg"],
diff --git a/src/DiffEngine/Implementation/VisualStudio.cs b/src/DiffEngine/Implementation/VisualStudio.cs
index c51940e8..90cc27b1 100644
--- a/src/DiffEngine/Implementation/VisualStudio.cs
+++ b/src/DiffEngine/Implementation/VisualStudio.cs
@@ -22,6 +22,7 @@ static string RightArguments(string temp, string target)
AutoRefresh: true,
IsMdi: true,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Paid and free options",
BinaryExtensions: [".svg"],
diff --git a/src/DiffEngine/Implementation/VsCode.cs b/src/DiffEngine/Implementation/VsCode.cs
index d4b1b0c9..029fbffb 100644
--- a/src/DiffEngine/Implementation/VsCode.cs
+++ b/src/DiffEngine/Implementation/VsCode.cs
@@ -11,6 +11,7 @@ public static Definition VisualStudioCode()
AutoRefresh: true,
IsMdi: true,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Free",
BinaryExtensions: [".svg"],
diff --git a/src/DiffEngine/Implementation/WinMerge.cs b/src/DiffEngine/Implementation/WinMerge.cs
index 011985cb..ebc09770 100644
--- a/src/DiffEngine/Implementation/WinMerge.cs
+++ b/src/DiffEngine/Implementation/WinMerge.cs
@@ -22,6 +22,7 @@ static string RightArguments(string temp, string target)
AutoRefresh: true,
IsMdi: false,
SupportsText: true,
+ CreateNoWindow: false,
RequiresTarget: true,
Cost: "Free with option to donate",
BinaryExtensions:
diff --git a/src/DiffEngine/ResolvedTool.cs b/src/DiffEngine/ResolvedTool.cs
index 22ee9653..f0bbf797 100644
--- a/src/DiffEngine/ResolvedTool.cs
+++ b/src/DiffEngine/ResolvedTool.cs
@@ -23,8 +23,8 @@ public string GetArguments(string tempFile, string targetFile)
return LaunchArguments.Right(tempFile, targetFile);
}
- public ResolvedTool(string name, string exePath, LaunchArguments launchArguments, bool isMdi, bool autoRefresh, IReadOnlyCollection binaryExtensions, bool requiresTarget, bool supportsText) :
- this(name, null, exePath, launchArguments, isMdi, autoRefresh, binaryExtensions, requiresTarget, supportsText)
+ public ResolvedTool(string name, string exePath, LaunchArguments launchArguments, bool isMdi, bool autoRefresh, IReadOnlyCollection binaryExtensions, bool requiresTarget, bool supportsText, bool createNoWindow) :
+ this(name, null, exePath, launchArguments, isMdi, autoRefresh, binaryExtensions, requiresTarget, supportsText, createNoWindow)
{
}
@@ -37,7 +37,8 @@ public ResolvedTool(
bool autoRefresh,
IReadOnlyCollection binaryExtensions,
bool requiresTarget,
- bool supportsText)
+ bool supportsText,
+ bool createNoWindow)
{
Guard.FileExists(exePath, nameof(exePath));
Guard.AgainstEmpty(name, nameof(name));
@@ -59,6 +60,7 @@ Extensions must begin with a period.
RequiresTarget = requiresTarget;
SupportsText = supportsText;
+ CreateNoWindow = createNoWindow;
}
public string Name { get; init; }
@@ -70,4 +72,5 @@ Extensions must begin with a period.
public FrozenSet BinaryExtensions { get; init; }
public bool RequiresTarget { get; init; }
public bool SupportsText { get; init; }
+ public bool CreateNoWindow { get; init; }
}
\ No newline at end of file