diff --git a/.gitattributes b/.gitattributes
index 1a8d1a7b..4d53ba7e 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,5 +1,6 @@
* text
*.snk binary
+*.bin binary
*.png binary
src/Verify/EmptyFiles/* binary
diff --git a/docs/diff-tool.md b/docs/diff-tool.md
index 686df17f..3d2587b8 100644
--- a/docs/diff-tool.md
+++ b/docs/diff-tool.md
@@ -147,13 +147,13 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Supports text files: True
* Use shell execute: True
* Environment variable for custom install location: `DiffEngine_BeyondCompare`
- * Supported binaries: .7z, .bcpkg, .bmp, .bz, .bz2, .cab, .chm, .deb, .ear, .gif, .gz, .ico, .img, .iso, .iso, .jar, .jpeg, .jpg, .kmz, .nupkg, .pdf, .png, .rar, .rpm, .rtf, .svg, .swm, .tar, .tbz, .tbz2, .tbz2, .tgz, .tif, .tiff, .war, .wim, .xlsx, .xz, .zip, .zipx
+ * Supported binaries: .7z, .bcpkg, .bin, .bmp, .bz, .bz2, .cab, .chm, .deb, .ear, .gif, .gz, .ico, .img, .iso, .iso, .jar, .jpeg, .jpg, .kmz, .nupkg, .pdf, .png, .rar, .rpm, .rtf, .svg, .swm, .tar, .tbz, .tbz2, .tbz2, .tgz, .tif, .tiff, .war, .wim, .xlsx, .xz, .zip, .zipx
#### Notes:
* [Command line reference](https://www.scootersoftware.com/v4help/index.html?command_line_reference.html)
* Enable [Automatically reload unless changes will be discarded](https://www.scootersoftware.com/v4help/optionstweak.html) in `Tools > Options > Tweaks > File Operations`.
- * For `.kmz`, and `.nupkg`, Beyond Compare needs to be configured to treat them as zip.
+ * For `.kmz`, and `.nupkg`, Beyond Compare needs to be configured to treat them as zip.
`Tools > Options > Archive Types`. Scroll down to Zip, then add extra extension to the semicolon delimited list.
#### Windows settings:
@@ -279,7 +279,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Supports text files: True
* Use shell execute: True
* Environment variable for custom install location: `DiffEngine_ExamDiff`
- * Supported binaries: .svg
+ * Supported binaries: .bin, .svg
#### Notes:
@@ -358,7 +358,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Supports text files: True
* Use shell execute: True
* Environment variable for custom install location: `DiffEngine_Kaleidoscope`
- * Supported binaries: .bmp, .gif, .ico, .jpeg, .jpg, .png, .svg, .tif, .tiff
+ * Supported binaries: .bin, .bmp, .gif, .ico, .jpeg, .jpg, .png, .svg, .tif, .tiff
#### OSX settings:
@@ -445,6 +445,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
-d "tempFile.txt" "targetFile.txt"
```
* Scanned paths:
+ * `C:\Program Files\Neovim\binnvim.exe`
* `%PATH%nvim.exe`
#### OSX settings:
@@ -668,7 +669,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Supports text files: True
* Use shell execute: True
* Environment variable for custom install location: `DiffEngine_TortoiseGitMerge`
- * Supported binaries: .svg
+ * Supported binaries: .bin, .svg
#### Windows settings:
@@ -794,7 +795,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Supports text files: True
* Use shell execute: True
* 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
+ * Supported binaries: .bin, .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
#### Notes:
@@ -1030,7 +1031,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Supports text files: True
* Use shell execute: False
* Environment variable for custom install location: `DiffEngine_VisualStudioCode`
- * Supported binaries: .svg
+ * Supported binaries: .bin, .svg
#### Notes:
diff --git a/docs/diff-tool.order.md b/docs/diff-tool.order.md
index 09ad705d..0251c032 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/DiffToolsTest.cs b/src/DiffEngine.Tests/DiffToolsTest.cs
index b3696cb1..3bb49754 100644
--- a/src/DiffEngine.Tests/DiffToolsTest.cs
+++ b/src/DiffEngine.Tests/DiffToolsTest.cs
@@ -117,6 +117,11 @@ static async Task AddToolAndLaunch()
}
/**
+ [Fact]
+ public Task LaunchSpecificBinaryDiff() =>
+ DiffRunner.LaunchAsync(DiffTool.VisualStudioCode,
+ Path.Combine(SourceDirectory, "input.temp.bin"),
+ Path.Combine(SourceDirectory, "input.target.bin"));
[Fact]
public Task LaunchSpecificTextDiff() =>
DiffRunner.LaunchAsync(DiffTool.VisualStudioCode,
diff --git a/src/DiffEngine.Tests/diffTools.include.md b/src/DiffEngine.Tests/diffTools.include.md
index 6ca28f9f..d42227ff 100644
--- a/src/DiffEngine.Tests/diffTools.include.md
+++ b/src/DiffEngine.Tests/diffTools.include.md
@@ -12,13 +12,13 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Supports text files: True
* Use shell execute: True
* Environment variable for custom install location: `DiffEngine_BeyondCompare`
- * Supported binaries: .7z, .bcpkg, .bmp, .bz, .bz2, .cab, .chm, .deb, .ear, .gif, .gz, .ico, .img, .iso, .iso, .jar, .jpeg, .jpg, .kmz, .nupkg, .pdf, .png, .rar, .rpm, .rtf, .svg, .swm, .tar, .tbz, .tbz2, .tbz2, .tgz, .tif, .tiff, .war, .wim, .xlsx, .xz, .zip, .zipx
+ * Supported binaries: .7z, .bcpkg, .bin, .bmp, .bz, .bz2, .cab, .chm, .deb, .ear, .gif, .gz, .ico, .img, .iso, .iso, .jar, .jpeg, .jpg, .kmz, .nupkg, .pdf, .png, .rar, .rpm, .rtf, .svg, .swm, .tar, .tbz, .tbz2, .tbz2, .tgz, .tif, .tiff, .war, .wim, .xlsx, .xz, .zip, .zipx
#### Notes:
* [Command line reference](https://www.scootersoftware.com/v4help/index.html?command_line_reference.html)
* Enable [Automatically reload unless changes will be discarded](https://www.scootersoftware.com/v4help/optionstweak.html) in `Tools > Options > Tweaks > File Operations`.
- * For `.kmz`, and `.nupkg`, Beyond Compare needs to be configured to treat them as zip.
+ * For `.kmz`, and `.nupkg`, Beyond Compare needs to be configured to treat them as zip.
`Tools > Options > Archive Types`. Scroll down to Zip, then add extra extension to the semicolon delimited list.
#### Windows settings:
@@ -144,7 +144,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Supports text files: True
* Use shell execute: True
* Environment variable for custom install location: `DiffEngine_ExamDiff`
- * Supported binaries: .svg
+ * Supported binaries: .bin, .svg
#### Notes:
@@ -223,7 +223,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Supports text files: True
* Use shell execute: True
* Environment variable for custom install location: `DiffEngine_Kaleidoscope`
- * Supported binaries: .bmp, .gif, .ico, .jpeg, .jpg, .png, .svg, .tif, .tiff
+ * Supported binaries: .bin, .bmp, .gif, .ico, .jpeg, .jpg, .png, .svg, .tif, .tiff
#### OSX settings:
@@ -310,6 +310,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
-d "tempFile.txt" "targetFile.txt"
```
* Scanned paths:
+ * `C:\Program Files\Neovim\binnvim.exe`
* `%PATH%nvim.exe`
#### OSX settings:
@@ -533,7 +534,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Supports text files: True
* Use shell execute: True
* Environment variable for custom install location: `DiffEngine_TortoiseGitMerge`
- * Supported binaries: .svg
+ * Supported binaries: .bin, .svg
#### Windows settings:
@@ -659,7 +660,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Supports text files: True
* Use shell execute: True
* 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
+ * Supported binaries: .bin, .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
#### Notes:
@@ -895,7 +896,7 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a
* Supports text files: True
* Use shell execute: False
* Environment variable for custom install location: `DiffEngine_VisualStudioCode`
- * Supported binaries: .svg
+ * Supported binaries: .bin, .svg
#### Notes:
diff --git a/src/DiffEngine.Tests/input.target.bin b/src/DiffEngine.Tests/input.target.bin
new file mode 100644
index 00000000..25cb955b
--- /dev/null
+++ b/src/DiffEngine.Tests/input.target.bin
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/DiffEngine.Tests/input.temp.bin b/src/DiffEngine.Tests/input.temp.bin
new file mode 100644
index 00000000..6b2aaa76
--- /dev/null
+++ b/src/DiffEngine.Tests/input.temp.bin
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/DiffEngine/Implementation/BeyondCompare.cs b/src/DiffEngine/Implementation/BeyondCompare.cs
index 504a94ba..85701202 100644
--- a/src/DiffEngine/Implementation/BeyondCompare.cs
+++ b/src/DiffEngine/Implementation/BeyondCompare.cs
@@ -27,6 +27,7 @@ static string RightOsxLinuxArguments(string temp, string target) =>
RequiresTarget: true,
BinaryExtensions:
[
+ ".bin",
".svg",
".pdf",
".bmp",
@@ -91,7 +92,7 @@ static string RightOsxLinuxArguments(string temp, string target) =>
Notes: """
* [Command line reference](https://www.scootersoftware.com/v4help/index.html?command_line_reference.html)
* Enable [Automatically reload unless changes will be discarded](https://www.scootersoftware.com/v4help/optionstweak.html) in `Tools > Options > Tweaks > File Operations`.
- * For `.kmz`, and `.nupkg`, Beyond Compare needs to be configured to treat them as zip.
+ * For `.kmz`, and `.nupkg`, Beyond Compare needs to be configured to treat them as zip.
`Tools > Options > Archive Types`. Scroll down to Zip, then add extra extension to the semicolon delimited list.
""");
}
diff --git a/src/DiffEngine/Implementation/ExamDiff.cs b/src/DiffEngine/Implementation/ExamDiff.cs
index 415f0025..0c88818a 100644
--- a/src/DiffEngine/Implementation/ExamDiff.cs
+++ b/src/DiffEngine/Implementation/ExamDiff.cs
@@ -25,7 +25,11 @@ static string RightArguments(string temp, string target)
UseShellExecute: true,
RequiresTarget: true,
Cost: "Paid",
- BinaryExtensions: [".svg"],
+ BinaryExtensions:
+ [
+ ".bin",
+ ".svg"
+ ],
OsSupport: new(
Windows: new(
"ExamDiff.exe",
diff --git a/src/DiffEngine/Implementation/Kaleidoscope.cs b/src/DiffEngine/Implementation/Kaleidoscope.cs
index 128317c2..4f930343 100644
--- a/src/DiffEngine/Implementation/Kaleidoscope.cs
+++ b/src/DiffEngine/Implementation/Kaleidoscope.cs
@@ -20,7 +20,8 @@ public static Definition Kaleidoscope() =>
".jpeg",
".png",
".tiff",
- ".tif"
+ ".tif",
+ ".bin"
],
OsSupport: new(
Osx: new(
diff --git a/src/DiffEngine/Implementation/Neovim.cs b/src/DiffEngine/Implementation/Neovim.cs
index cd68e27f..544b2fdd 100644
--- a/src/DiffEngine/Implementation/Neovim.cs
+++ b/src/DiffEngine/Implementation/Neovim.cs
@@ -19,7 +19,8 @@ public static Definition Neovim()
OsSupport: new(
Windows: new(
"nvim.exe",
- launchArguments),
+ launchArguments,
+ searchDirectory: @"C:\Program Files\Neovim\bin"),
Linux: new(
"nvim",
launchArguments),
diff --git a/src/DiffEngine/Implementation/TortoiseGitMerge.cs b/src/DiffEngine/Implementation/TortoiseGitMerge.cs
index 54c9f9ea..5626a405 100644
--- a/src/DiffEngine/Implementation/TortoiseGitMerge.cs
+++ b/src/DiffEngine/Implementation/TortoiseGitMerge.cs
@@ -10,7 +10,11 @@ public static Definition TortoiseGitMerge() =>
UseShellExecute: true,
RequiresTarget: true,
Cost: "Free",
- BinaryExtensions: [".svg"],
+ BinaryExtensions:
+ [
+ ".svg",
+ ".bin"
+ ],
OsSupport: new(
Windows: new(
"TortoiseGitMerge.exe",
diff --git a/src/DiffEngine/Implementation/VsCode.cs b/src/DiffEngine/Implementation/VsCode.cs
index 7dda75ef..010ad187 100644
--- a/src/DiffEngine/Implementation/VsCode.cs
+++ b/src/DiffEngine/Implementation/VsCode.cs
@@ -14,7 +14,11 @@ public static Definition VisualStudioCode()
UseShellExecute: false,
RequiresTarget: true,
Cost: "Free",
- BinaryExtensions: [".svg"],
+ BinaryExtensions:
+ [
+ ".svg",
+ ".bin"
+ ],
OsSupport: new(
Windows: new(
"code.cmd",
@@ -28,6 +32,6 @@ public static Definition VisualStudioCode()
"code",
launchArguments,
"/Applications/Visual Studio Code.app/Contents/Resources/app/bin/")),
- Notes: " * [Command line reference](https://code.visualstudio.com/docs/editor/command-line)");
+ Notes: " * [Command line reference](https://code.visualstudio.com/docs/editor/command-line)");
}
}
\ No newline at end of file
diff --git a/src/DiffEngine/Implementation/WinMerge.cs b/src/DiffEngine/Implementation/WinMerge.cs
index 0f12a7a7..5dd8b59e 100644
--- a/src/DiffEngine/Implementation/WinMerge.cs
+++ b/src/DiffEngine/Implementation/WinMerge.cs
@@ -27,6 +27,7 @@ static string RightArguments(string temp, string target)
Cost: "Free with option to donate",
BinaryExtensions:
[
+ ".bin",
".svg",
".bmp",
".cut",