diff --git a/docs/diff-tool.md b/docs/diff-tool.md index 99c9c11c..124b6a12 100644 --- a/docs/diff-tool.md +++ b/docs/diff-tool.md @@ -873,6 +873,63 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a * `/Applications/Araxis Merge.app/Contents/Utilities/compare` * `%PATH%compare` +### [Cursor](https://cursor.com) + + * Cost: Free and Paid + * Is MDI: True + * Supports auto-refresh: True + * Supports text files: True + * Use shell execute: False + * Environment variable for custom install location: `DiffEngine_Cursor` + * Supported binaries: .bin, .svg + +#### Notes: + + * [Command line reference](https://cursor.com/docs/configuration/shell) + +#### Windows settings: + + * Example target on left arguments: + ``` + --diff "targetFile.txt" "tempFile.txt" + ``` + * Example target on right arguments: + ``` + --diff "tempFile.txt" "targetFile.txt" + ``` + * Scanned paths: + * `%ProgramFiles%\Cursor\Cursor.exe` + * `%ProgramW6432%\Cursor\Cursor.exe` + * `%ProgramFiles(x86)%\Cursor\Cursor.exe` + * `%PATH%Cursor.exe` + +#### OSX settings: + + * Example target on left arguments: + ``` + --diff "targetFile.txt" "tempFile.txt" + ``` + * Example target on right arguments: + ``` + --diff "tempFile.txt" "targetFile.txt" + ``` + * Scanned paths: + * `/Applications/Cursor.app/Contents/MacOScursor` + * `%PATH%cursor` + +#### Linux settings: + + * Example target on left arguments: + ``` + --diff "targetFile.txt" "tempFile.txt" + ``` + * Example target on right arguments: + ``` + --diff "tempFile.txt" "targetFile.txt" + ``` + * Scanned paths: + * `%PATH%cursor` + ### [Meld](https://meldmerge.org/) * Cost: Free diff --git a/docs/diff-tool.order.md b/docs/diff-tool.order.md index 0251c032..226aea96 100644 --- a/docs/diff-tool.order.md +++ b/docs/diff-tool.order.md @@ -31,6 +31,7 @@ To change this file edit the source file and then run MarkdownSnippets. * **[Meld](/docs/diff-tool.md#meld)** Win/OSX/Linux (Cost: Free) * **[SublimeMerge](/docs/diff-tool.md#sublimemerge)** Win/OSX/Linux (Cost: Paid) * **[VisualStudioCode](/docs/diff-tool.md#visualstudiocode)** Win/OSX/Linux (Cost: Free) + * **[Cursor](/docs/diff-tool.md#cursor)** Win/OSX/Linux (Cost: Free and Paid) * **[VisualStudio](/docs/diff-tool.md#visualstudio)** Win (Cost: Paid and free options) diff --git a/readme.md b/readme.md index 810f987b..7a6a4ce9 100644 --- a/readme.md +++ b/readme.md @@ -84,6 +84,7 @@ DiffEngine manages launching and cleanup of diff tools. It is designed to be use * **[Meld](/docs/diff-tool.md#meld)** Win/OSX/Linux (Cost: Free) * **[SublimeMerge](/docs/diff-tool.md#sublimemerge)** Win/OSX/Linux (Cost: Paid) * **[VisualStudioCode](/docs/diff-tool.md#visualstudiocode)** Win/OSX/Linux (Cost: Free) + * **[Cursor](/docs/diff-tool.md#cursor)** Win/OSX/Linux (Cost: Free and Paid) * **[VisualStudio](/docs/diff-tool.md#visualstudio)** Win (Cost: Paid and free options) diff --git a/src/DiffEngine.Tests/defaultOrder.include.md b/src/DiffEngine.Tests/defaultOrder.include.md index 22c88b41..f2656296 100644 --- a/src/DiffEngine.Tests/defaultOrder.include.md +++ b/src/DiffEngine.Tests/defaultOrder.include.md @@ -19,4 +19,5 @@ * **[Meld](/docs/diff-tool.md#meld)** Win/OSX/Linux (Cost: Free) * **[SublimeMerge](/docs/diff-tool.md#sublimemerge)** Win/OSX/Linux (Cost: Paid) * **[VisualStudioCode](/docs/diff-tool.md#visualstudiocode)** Win/OSX/Linux (Cost: Free) + * **[Cursor](/docs/diff-tool.md#cursor)** Win/OSX/Linux (Cost: Free and Paid) * **[VisualStudio](/docs/diff-tool.md#visualstudio)** Win (Cost: Paid and free options) diff --git a/src/DiffEngine.Tests/diffToolList.include.md b/src/DiffEngine.Tests/diffToolList.include.md index 22c88b41..f2656296 100644 --- a/src/DiffEngine.Tests/diffToolList.include.md +++ b/src/DiffEngine.Tests/diffToolList.include.md @@ -19,4 +19,5 @@ * **[Meld](/docs/diff-tool.md#meld)** Win/OSX/Linux (Cost: Free) * **[SublimeMerge](/docs/diff-tool.md#sublimemerge)** Win/OSX/Linux (Cost: Paid) * **[VisualStudioCode](/docs/diff-tool.md#visualstudiocode)** Win/OSX/Linux (Cost: Free) + * **[Cursor](/docs/diff-tool.md#cursor)** Win/OSX/Linux (Cost: Free and Paid) * **[VisualStudio](/docs/diff-tool.md#visualstudio)** Win (Cost: Paid and free options) diff --git a/src/DiffEngine.Tests/diffTools.include.md b/src/DiffEngine.Tests/diffTools.include.md index c1327fba..0016fbef 100644 --- a/src/DiffEngine.Tests/diffTools.include.md +++ b/src/DiffEngine.Tests/diffTools.include.md @@ -738,6 +738,63 @@ Non-MDI tools are preferred since it allows [DiffEngineTray](tray.md) to track a * `/Applications/Araxis Merge.app/Contents/Utilities/compare` * `%PATH%compare` +### [Cursor](https://cursor.com) + + * Cost: Free and Paid + * Is MDI: True + * Supports auto-refresh: True + * Supports text files: True + * Use shell execute: False + * Environment variable for custom install location: `DiffEngine_Cursor` + * Supported binaries: .bin, .svg + +#### Notes: + + * [Command line reference](https://cursor.com/docs/configuration/shell) + +#### Windows settings: + + * Example target on left arguments: + ``` + --diff "targetFile.txt" "tempFile.txt" + ``` + * Example target on right arguments: + ``` + --diff "tempFile.txt" "targetFile.txt" + ``` + * Scanned paths: + * `%ProgramFiles%\Cursor\Cursor.exe` + * `%ProgramW6432%\Cursor\Cursor.exe` + * `%ProgramFiles(x86)%\Cursor\Cursor.exe` + * `%PATH%Cursor.exe` + +#### OSX settings: + + * Example target on left arguments: + ``` + --diff "targetFile.txt" "tempFile.txt" + ``` + * Example target on right arguments: + ``` + --diff "tempFile.txt" "targetFile.txt" + ``` + * Scanned paths: + * `/Applications/Cursor.app/Contents/MacOScursor` + * `%PATH%cursor` + +#### Linux settings: + + * Example target on left arguments: + ``` + --diff "targetFile.txt" "tempFile.txt" + ``` + * Example target on right arguments: + ``` + --diff "tempFile.txt" "targetFile.txt" + ``` + * Scanned paths: + * `%PATH%cursor` + ### [Meld](https://meldmerge.org/) * Cost: Free diff --git a/src/DiffEngine/Definitions.cs b/src/DiffEngine/Definitions.cs index 1ec78961..5127fb74 100644 --- a/src/DiffEngine/Definitions.cs +++ b/src/DiffEngine/Definitions.cs @@ -28,6 +28,7 @@ static Definitions() => Implementation.Meld(), Implementation.SublimeMerge(), Implementation.VisualStudioCode(), + Implementation.Cursor(), Implementation.VisualStudio() ]; } \ No newline at end of file diff --git a/src/DiffEngine/DiffTool.cs b/src/DiffEngine/DiffTool.cs index d1b0a33c..13301ec0 100644 --- a/src/DiffEngine/DiffTool.cs +++ b/src/DiffEngine/DiffTool.cs @@ -23,5 +23,6 @@ public enum DiffTool Meld, SublimeMerge, VisualStudioCode, - VisualStudio + VisualStudio, + Cursor } \ No newline at end of file diff --git a/src/DiffEngine/Implementation/Cursor.cs b/src/DiffEngine/Implementation/Cursor.cs new file mode 100644 index 00000000..bab81c8e --- /dev/null +++ b/src/DiffEngine/Implementation/Cursor.cs @@ -0,0 +1,36 @@ +static partial class Implementation +{ + public static Definition Cursor() + { + var launchArguments = new LaunchArguments( + Left: (temp, target) => $"--diff \"{target}\" \"{temp}\"", + Right: (temp, target) => $"--diff \"{temp}\" \"{target}\""); + return new( + Tool: DiffTool.Cursor, + Url: "https://cursor.com", + AutoRefresh: true, + IsMdi: true, + SupportsText: true, + UseShellExecute: false, + RequiresTarget: true, + Cost: "Free and Paid", + BinaryExtensions: + [ + ".svg", + ".bin" + ], + OsSupport: new( + Windows: new( + "Cursor.exe", + launchArguments, + @"%ProgramFiles%\Cursor\"), + Linux: new( + "cursor", + launchArguments), + Osx: new( + "cursor", + launchArguments, + "/Applications/Cursor.app/Contents/MacOS")), + Notes: " * [Command line reference](https://cursor.com/docs/configuration/shell)"); + } +} \ No newline at end of file