From 8859864b7d7edac392564d352fdcf9772f675857 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Fri, 10 Sep 2021 16:07:09 -0700 Subject: [PATCH 1/2] Show decompilation authorization once per install. --- src/features/commands.ts | 6 +++--- src/omnisharp/decompilationPrompt.ts | 12 ++++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/features/commands.ts b/src/features/commands.ts index 8775eb8566..67c1474daa 100644 --- a/src/features/commands.ts +++ b/src/features/commands.ts @@ -21,7 +21,7 @@ import OptionProvider from '../observers/OptionProvider'; import reportIssue from './reportIssue'; import { IMonoResolver } from '../constants/IMonoResolver'; import { getDotnetInfo } from '../utils/getDotnetInfo'; -import { getDecompilationAuthorization } from '../omnisharp/decompilationPrompt'; +import { getDecompilationAuthorization, resetDecompilationAuthorization } from '../omnisharp/decompilationPrompt'; export default function registerCommands(context: vscode.ExtensionContext, server: OmniSharpServer, platformInfo: PlatformInformation, eventStream: EventStream, optionProvider: OptionProvider, monoResolver: IMonoResolver, packageJSON: any, extensionPath: string): CompositeDisposable { let disposable = new CompositeDisposable(); @@ -62,13 +62,13 @@ export default function registerCommands(context: vscode.ExtensionContext, serve async function showDecompilationTerms(context: vscode.ExtensionContext, server: OmniSharpServer, optionProvider: OptionProvider) { // Reset the decompilation authorization so the user will be prompted on restart. - context.workspaceState.update("decompilationAuthorized", undefined); + resetDecompilationAuthorization(context); await restartOmniSharp(context, server, optionProvider); } async function restartOmniSharp(context: vscode.ExtensionContext, server: OmniSharpServer, optionProvider: OptionProvider) { - // Update decompilation authorization for this workspace. + // Update decompilation authorization. server.decompilationAuthorized = await getDecompilationAuthorization(context, optionProvider); if (server.isRunning()) { diff --git a/src/omnisharp/decompilationPrompt.ts b/src/omnisharp/decompilationPrompt.ts index 3849c0412b..6e45b49437 100644 --- a/src/omnisharp/decompilationPrompt.ts +++ b/src/omnisharp/decompilationPrompt.ts @@ -6,15 +6,19 @@ import * as vscode from "vscode"; import OptionProvider from "../observers/OptionProvider"; +export async function resetDecompilationAuthorization(context: vscode.ExtensionContext) { + context.globalState.update("csharp.decompilationAuthorized", undefined); +} + export async function getDecompilationAuthorization(context: vscode.ExtensionContext, optionProvider: OptionProvider) { - // If decompilation is disabled the return false + // If decompilation is disabled, then return false const options = optionProvider.GetLatestOptions(); if (options.enableDecompilationSupport === false) { return false; } - // If the terms have been acknowledged for this workspace then return. - let decompilationAutorized = context.workspaceState.get("decompilationAuthorized"); + // If the terms have been acknowledged, then return whether it was authorized. + let decompilationAutorized = context.globalState.get("csharp.decompilationAuthorized"); if (decompilationAutorized !== undefined) { return decompilationAutorized; } @@ -22,7 +26,7 @@ export async function getDecompilationAuthorization(context: vscode.ExtensionCon const result = await promptToAcceptDecompilationTerms(); decompilationAutorized = result === PromptResult.Yes; - await context.workspaceState.update("decompilationAuthorized", decompilationAutorized); + await context.globalState.update("csharp.decompilationAuthorized", decompilationAutorized); return decompilationAutorized; } From 94ab6a0fcbeced4556ebb747019c34aa82d930e9 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Fri, 10 Sep 2021 16:17:47 -0700 Subject: [PATCH 2/2] Fix typo; extract option name as constant --- src/omnisharp/decompilationPrompt.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/omnisharp/decompilationPrompt.ts b/src/omnisharp/decompilationPrompt.ts index 6e45b49437..e0fb09add9 100644 --- a/src/omnisharp/decompilationPrompt.ts +++ b/src/omnisharp/decompilationPrompt.ts @@ -6,8 +6,10 @@ import * as vscode from "vscode"; import OptionProvider from "../observers/OptionProvider"; +const DecompilationAuthorizedOption = "csharp.decompilationAuthorized"; + export async function resetDecompilationAuthorization(context: vscode.ExtensionContext) { - context.globalState.update("csharp.decompilationAuthorized", undefined); + context.globalState.update(DecompilationAuthorizedOption, undefined); } export async function getDecompilationAuthorization(context: vscode.ExtensionContext, optionProvider: OptionProvider) { @@ -18,17 +20,17 @@ export async function getDecompilationAuthorization(context: vscode.ExtensionCon } // If the terms have been acknowledged, then return whether it was authorized. - let decompilationAutorized = context.globalState.get("csharp.decompilationAuthorized"); - if (decompilationAutorized !== undefined) { - return decompilationAutorized; + let decompilationAuthorized = context.globalState.get(DecompilationAuthorizedOption); + if (decompilationAuthorized !== undefined) { + return decompilationAuthorized; } const result = await promptToAcceptDecompilationTerms(); - decompilationAutorized = result === PromptResult.Yes; + decompilationAuthorized = result === PromptResult.Yes; - await context.globalState.update("csharp.decompilationAuthorized", decompilationAutorized); + await context.globalState.update(DecompilationAuthorizedOption, decompilationAuthorized); - return decompilationAutorized; + return decompilationAuthorized; } enum PromptResult {