diff --git a/CHANGELOG.md b/CHANGELOG.md index 9036a65..60b456c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## Change log +**0.8.0** + +Allow the change diff view's sides ([#21](https://github.com/moshfeu/vscode-compare-folders/issues/21)) + **0.7.0** Added the ability to ignore files names' case when comparing ([#23](https://github.com/moshfeu/vscode-compare-folders/issues/23)) diff --git a/README.md b/README.md index 68764f3..92b3c96 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ The extension allows the user to compare folders, show the diffs in a list and p - `compareContent` - boolean - Compares files by content - `diffViewTitle` - One of the options: "name only", "compared path", "full path" - `ignoreFileNameCase` - boolean - Compare files with the same name but different case +- `diffLayout` - One of the options: "local <> compared" or "compared <> local" **Example** diff --git a/package.json b/package.json index 3d97d8d..a61aab0 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "compare-folders", "displayName": "Compare Folders", "description": "Compare folders by contents, present the files that have differences and display the diffs side by side", - "version": "0.7.0", + "version": "0.8.0", "repository": { "type": "git", "url": "https://github.com/moshfeu/vscode-compare-folders" @@ -76,6 +76,20 @@ ], "markdownDescription": "Specifies how the diff view's title look like", "scope": "window" + }, + "compareFolders.diffLayout": { + "type": "string", + "default": "local <> compared", + "enum": [ + "local <> compared", + "compared <> local" + ], + "enumDescriptions": [ + "eg. left: local file, right: compared file", + "eg. left: compared file, right: local file" + ], + "markdownDescription": "Specifies which file will be in the left and the right sides of the diff view", + "scope": "window" } } }, diff --git a/src/extension.ts b/src/extension.ts index c43d7f7..b7d2421 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -1,26 +1,20 @@ -import { window, commands, Disposable, env, Uri } from 'vscode'; +import { window, commands, ExtensionContext} from 'vscode'; import { CompareFoldersProvider } from './providers/foldersCompareProvider'; import { COMPARE_FILES, CHOOSE_FOLDERS_AND_COMPARE, REFRESH } from './constants/commands'; import { ViewOnlyProvider } from './providers/viewOnlyProvider'; -const disposables: Disposable[] = []; -export function activate() { + +export function activate(context: ExtensionContext) { const onlyInA = new ViewOnlyProvider(); const onlyInB = new ViewOnlyProvider(); const foldersCompareProvider = new CompareFoldersProvider(onlyInA, onlyInB); - - disposables.push( - ...[ + context.subscriptions.push( window.registerTreeDataProvider('foldersCompareAppService', foldersCompareProvider), window.registerTreeDataProvider('foldersCompareAppServiceOnlyA', onlyInA), window.registerTreeDataProvider('foldersCompareAppServiceOnlyB', onlyInB), commands.registerCommand(COMPARE_FILES, foldersCompareProvider.onFileClicked), commands.registerCommand(CHOOSE_FOLDERS_AND_COMPARE, foldersCompareProvider.chooseFoldersAndCompare), commands.registerCommand(REFRESH, foldersCompareProvider.refresh), - ] ); } -export function deactivate() { - disposables.forEach(disposable => disposable.dispose()); -} diff --git a/src/providers/foldersCompareProvider.ts b/src/providers/foldersCompareProvider.ts index fc2af2d..6319814 100644 --- a/src/providers/foldersCompareProvider.ts +++ b/src/providers/foldersCompareProvider.ts @@ -87,7 +87,11 @@ export class CompareFoldersProvider implements TreeDataProvider { onFileClicked([path1, path2]: [string, string], title: string) { try { if (path2) { - showDiffs([path1, path2], title); + let diffs: [string, string] = [path2, path1]; + if (getConfiguration('diffLayout').diffLayout === 'local <> compared') { + diffs = [path1, path2]; + } + showDiffs(diffs, title); } else { showFile(path1, title); } diff --git a/src/services/configuration.ts b/src/services/configuration.ts index 0f71661..f5f4add 100644 --- a/src/services/configuration.ts +++ b/src/services/configuration.ts @@ -5,6 +5,7 @@ interface IConfigurations { excludeFilter: string[] | undefined; includeFilter: string[] | undefined; diffViewTitle: 'name only' | 'compared path' | 'full path'; + diffLayout: 'local <> compared' | 'compared <> local'; ignoreFileNameCase: boolean; }