From 89376d3f28d24e9aa75dda733960fc0e732e77a9 Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Wed, 18 Oct 2023 10:51:08 -0400 Subject: [PATCH] add Read-Only option for compare Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- .../zowe-explorer/i18n/sample/package.i18n.json | 1 + packages/zowe-explorer/package.json | 14 ++++++++++++++ packages/zowe-explorer/package.nls.json | 1 + packages/zowe-explorer/src/shared/init.ts | 8 ++++++++ .../zowe-explorer/src/utils/LocalFileManagement.ts | 9 ++++++++- 5 files changed, 32 insertions(+), 1 deletion(-) diff --git a/packages/zowe-explorer/i18n/sample/package.i18n.json b/packages/zowe-explorer/i18n/sample/package.i18n.json index dfab0bde25..af1de9b93d 100644 --- a/packages/zowe-explorer/i18n/sample/package.i18n.json +++ b/packages/zowe-explorer/i18n/sample/package.i18n.json @@ -150,5 +150,6 @@ "pasteFile": "Paste", "selectForCompare": "Select for Compare", "compareWithSelected": "Compare with Selected", + "compareWithSelectedReadOnly": "Compare with Selected (Read-Only)", "compareFileStarted": "A file has been chosen for compare" } diff --git a/packages/zowe-explorer/package.json b/packages/zowe-explorer/package.json index 0182b100df..c388e08bf8 100644 --- a/packages/zowe-explorer/package.json +++ b/packages/zowe-explorer/package.json @@ -778,6 +778,11 @@ "title": "%compareWithSelected%", "category": "Zowe Explorer" }, + { + "command": "zowe.compareWithSelectedReadOnly", + "title": "%compareWithSelectedReadOnly%", + "category": "Zowe Explorer" + }, { "command": "zowe.compareFileStarted", "title": "%compareFileStarted%", @@ -1382,6 +1387,11 @@ "when": "viewItem =~ /^(textFile|member.*|ds.*)/ && !listMultiSelection && zowe.compareFileStarted", "command": "zowe.compareWithSelected", "group": "010_zowe_fileOperations@2" + }, + { + "when": "viewItem =~ /^(textFile|member.*|ds.*)/ && !listMultiSelection && zowe.compareFileStarted", + "command": "zowe.compareWithSelectedReadOnly", + "group": "010_zowe_fileOperations@3" } ], "commandPalette": [ @@ -1736,6 +1746,10 @@ { "command": "zowe.compareWithSelected", "when": "never" + }, + { + "command": "zowe.compareWithSelectedReadOnly", + "when": "never" } ] }, diff --git a/packages/zowe-explorer/package.nls.json b/packages/zowe-explorer/package.nls.json index dfab0bde25..af1de9b93d 100644 --- a/packages/zowe-explorer/package.nls.json +++ b/packages/zowe-explorer/package.nls.json @@ -150,5 +150,6 @@ "pasteFile": "Paste", "selectForCompare": "Select for Compare", "compareWithSelected": "Compare with Selected", + "compareWithSelectedReadOnly": "Compare with Selected (Read-Only)", "compareFileStarted": "A file has been chosen for compare" } diff --git a/packages/zowe-explorer/src/shared/init.ts b/packages/zowe-explorer/src/shared/init.ts index 4a71f2b40d..882d75aece 100644 --- a/packages/zowe-explorer/src/shared/init.ts +++ b/packages/zowe-explorer/src/shared/init.ts @@ -219,6 +219,14 @@ export function registerCommonCommands(context: vscode.ExtensionContext, provide globals.resetCompareChoices(); }) ); + context.subscriptions.push( + vscode.commands.registerCommand("zowe.compareWithSelectedReadOnly", async (node: IZoweTreeNode) => { + globals.filesToCompare.push(node); + ZoweLogger.trace(`${String(globals.filesToCompare[0].label)} will be compared with selected.`); + await LocalFileManagement.compareChosenFileContent(true); + globals.resetCompareChoices(); + }) + ); context.subscriptions.push( vscode.commands.registerCommand("zowe.compareFileStarted", () => { ZoweLogger.trace(`Checking if any files have been chosen for compare: ${String(globals.FILE_SELECTED_TO_COMPARE)}`); diff --git a/packages/zowe-explorer/src/utils/LocalFileManagement.ts b/packages/zowe-explorer/src/utils/LocalFileManagement.ts index 82eb4e5568..469f2a510f 100644 --- a/packages/zowe-explorer/src/utils/LocalFileManagement.ts +++ b/packages/zowe-explorer/src/utils/LocalFileManagement.ts @@ -82,7 +82,7 @@ export class LocalFileManagement { * Function that triggers compare of the 2 files selected for compare in the active editor * @returns {Promise} */ - public static async compareChosenFileContent(): Promise { + public static async compareChosenFileContent(readOnly = false): Promise { const docUriArray: vscode.Uri[] = []; for (const node of globals.filesToCompare) { const fileInfo = await this.getCompareFilePaths(node); @@ -95,6 +95,9 @@ export class LocalFileManagement { globals.resetCompareChoices(); if (docUriArray.length === 2) { vscode.commands.executeCommand("vscode.diff", docUriArray[0], docUriArray[1]); + if (readOnly) { + this.readOnlyFile(); + } } } @@ -116,4 +119,8 @@ export class LocalFileManagement { } return fileInfo; } + + private static readOnlyFile(): void { + vscode.commands.executeCommand("workbench.action.files.setActiveEditorReadonlyInSession"); + } }