From d453888d1553be010364b1b367d68dbbe7e892cb Mon Sep 17 00:00:00 2001 From: Tyler Leonhardt Date: Tue, 4 Aug 2020 16:14:30 -0700 Subject: [PATCH] Fix migration of setting --- src/features/RemoteFiles.ts | 2 +- src/session.ts | 10 +++++----- test/settings.test.ts | 12 +++++++++++- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/features/RemoteFiles.ts b/src/features/RemoteFiles.ts index bf3b9878d4..2d1e6dce78 100644 --- a/src/features/RemoteFiles.ts +++ b/src/features/RemoteFiles.ts @@ -38,7 +38,7 @@ export class RemoteFilesFeature extends LanguageClientConsumer { this.closeRemoteFiles(); vscode.workspace.onDidSaveTextDocument((doc) => { - if (this.languageClient && this.isDocumentRemote(doc)) { + if (this.isDocumentRemote(doc) && this.languageClient) { this.languageClient.sendNotification( DidSaveTextDocumentNotificationType, { diff --git a/src/session.ts b/src/session.ts index 778ba26944..aa88a1b585 100644 --- a/src/session.ts +++ b/src/session.ts @@ -332,11 +332,11 @@ export class SessionManager implements Middleware { const deprecatedSetting = 'codeFormatting.whitespaceAroundPipe' const newSetting = 'codeFormatting.addWhitespaceAroundPipe' const configurationTargetOfNewSetting = await Settings.getEffectiveConfigurationTarget(newSetting); - if (configuration.has(deprecatedSetting) && configurationTargetOfNewSetting === null) { - const configurationTarget = await Settings.getEffectiveConfigurationTarget(deprecatedSetting); - const value = configuration.get(deprecatedSetting, configurationTarget) - await Settings.change(newSetting, value, configurationTarget); - await Settings.change(deprecatedSetting, undefined, configurationTarget); + const configurationTargetOfOldSetting = await Settings.getEffectiveConfigurationTarget(deprecatedSetting); + if (configurationTargetOfOldSetting !== null && configurationTargetOfNewSetting === null) { + const value = configuration.get(deprecatedSetting, configurationTargetOfOldSetting) + await Settings.change(newSetting, value, configurationTargetOfOldSetting); + await Settings.change(deprecatedSetting, undefined, configurationTargetOfOldSetting); } } diff --git a/test/settings.test.ts b/test/settings.test.ts index d6e42122b6..f3add40fcc 100644 --- a/test/settings.test.ts +++ b/test/settings.test.ts @@ -3,7 +3,7 @@ *--------------------------------------------------------*/ import * as assert from "assert"; -import { IPowerShellExeDetails } from "../src/platform"; +import * as vscode from "vscode"; import Settings = require("../src/settings"); suite("Settings module", () => { @@ -34,4 +34,14 @@ suite("Settings module", () => { await Settings.change("powerShellAdditionalExePaths", psExeDetails, true); assert.strictEqual(Settings.load().powerShellAdditionalExePaths[0].versionName, psExeDetails[0].versionName); }); + + test("Can get effective configuration target", async () => { + await Settings.change("helpCompletion", "LineComment", false); + let target = await Settings.getEffectiveConfigurationTarget("helpCompletion"); + assert.strictEqual(target, vscode.ConfigurationTarget.Workspace); + + await Settings.change("helpCompletion", undefined, false); + target = await Settings.getEffectiveConfigurationTarget("helpCompletion"); + assert.strictEqual(target, null); + }); });