diff --git a/extensions/markdown-language-features/src/languageFeatures/linkUpdater.ts b/extensions/markdown-language-features/src/languageFeatures/linkUpdater.ts index cfe16893b39..32553783bfa 100644 --- a/extensions/markdown-language-features/src/languageFeatures/linkUpdater.ts +++ b/extensions/markdown-language-features/src/languageFeatures/linkUpdater.ts @@ -123,50 +123,38 @@ class UpdateLinksOnFileRenameHandler extends Disposable { return false; } - const enum Choice { - None = 0, - Accept = 1, - Reject = 2, - Always = 3, - Never = 4, - } + const rejectItem: vscode.MessageItem = { + title: localize('reject.title', "No"), + isCloseAffordance: true, + }; - interface Item extends vscode.MessageItem { - readonly choice: Choice; - } + const acceptItem: vscode.MessageItem = { + title: localize('accept.title', "Yes"), + }; - const response = await vscode.window.showInformationMessage( + const alwaysItem: vscode.MessageItem = { + title: localize('always.title', "Always automatically update Markdown Links"), + }; + + const neverItem: vscode.MessageItem = { + title: localize('never.title', "Never automatically update Markdown Links"), + }; + + const choice = await vscode.window.showInformationMessage( newResources.length === 1 ? localize('prompt', "Update Markdown links for '{0}'?", path.basename(newResources[0].fsPath)) : this.getConfirmMessage(localize('promptMoreThanOne', "Update Markdown link for the following {0} files?", newResources.length), newResources), { modal: true, - }, { - title: localize('reject.title', "No"), - choice: Choice.Reject, - isCloseAffordance: true, - }, { - title: localize('accept.title', "Yes"), - choice: Choice.Accept, - }, { - title: localize('always.title', "Always automatically update Markdown Links"), - choice: Choice.Always, - }, { - title: localize('never.title', "Never automatically update Markdown Links"), - choice: Choice.Never, - }); + }, rejectItem, acceptItem, alwaysItem, neverItem); - if (!response) { - return false; - } - - switch (response.choice) { - case Choice.Accept: { + switch (choice) { + case acceptItem: { return true; } - case Choice.Reject: { + case rejectItem: { return false; } - case Choice.Always: { + case alwaysItem: { const config = vscode.workspace.getConfiguration('markdown', newResources[0]); config.update( settingNames.enabled, @@ -174,7 +162,7 @@ class UpdateLinksOnFileRenameHandler extends Disposable { this.getConfigTargetScope(config, settingNames.enabled)); return true; } - case Choice.Never: { + case neverItem: { const config = vscode.workspace.getConfiguration('markdown', newResources[0]); config.update( settingNames.enabled, @@ -182,9 +170,10 @@ class UpdateLinksOnFileRenameHandler extends Disposable { this.getConfigTargetScope(config, settingNames.enabled)); return false; } + default: { + return false; + } } - - return false; } private async getEditsForFileRename(renames: readonly RenameAction[], token: vscode.CancellationToken): Promise<{ edit: vscode.WorkspaceEdit; resourcesBeingRenamed: vscode.Uri[] } | undefined> { diff --git a/extensions/typescript-language-features/src/languageFeatures/updatePathsOnRename.ts b/extensions/typescript-language-features/src/languageFeatures/updatePathsOnRename.ts index 4882ae3ca59..7c6995ec7d5 100644 --- a/extensions/typescript-language-features/src/languageFeatures/updatePathsOnRename.ts +++ b/extensions/typescript-language-features/src/languageFeatures/updatePathsOnRename.ts @@ -147,62 +147,47 @@ class UpdateImportsOnFileRenameHandler extends Disposable { return false; } - const enum Choice { - None = 0, - Accept = 1, - Reject = 2, - Always = 3, - Never = 4, - } + const rejectItem: vscode.MessageItem = { + title: localize('reject.title', "No"), + isCloseAffordance: true, + }; - interface Item extends vscode.MessageItem { - readonly choice: Choice; - } + const acceptItem: vscode.MessageItem = { + title: localize('accept.title', "Yes"), + }; + const alwaysItem: vscode.MessageItem = { + title: localize('always.title', "Always automatically update imports"), + }; - const response = await vscode.window.showInformationMessage( + const neverItem: vscode.MessageItem = { + title: localize('never.title', "Never automatically update imports"), + }; + + const response = await vscode.window.showInformationMessage( newResources.length === 1 ? localize('prompt', "Update imports for '{0}'?", path.basename(newResources[0].fsPath)) : this.getConfirmMessage(localize('promptMoreThanOne', "Update imports for the following {0} files?", newResources.length), newResources), { modal: true, - }, { - title: localize('reject.title', "No"), - choice: Choice.Reject, - isCloseAffordance: true, - }, { - title: localize('accept.title', "Yes"), - choice: Choice.Accept, - }, { - title: localize('always.title', "Always automatically update imports"), - choice: Choice.Always, - }, { - title: localize('never.title', "Never automatically update imports"), - choice: Choice.Never, - }); + }, rejectItem, acceptItem, alwaysItem, neverItem); - if (!response) { - return false; - } - switch (response.choice) { - case Choice.Accept: - { - return true; - } - case Choice.Reject: - { - return false; - } - case Choice.Always: - { - const config = this.getConfiguration(newResources[0]); - config.update( - updateImportsOnFileMoveName, - UpdateImportsOnFileMoveSetting.Always, - this.getConfigTargetScope(config, updateImportsOnFileMoveName)); - return true; - } - case Choice.Never: + switch (response) { + case acceptItem: { + return true; + } + case rejectItem: { + return false; + } + case alwaysItem: { + const config = this.getConfiguration(newResources[0]); + config.update( + updateImportsOnFileMoveName, + UpdateImportsOnFileMoveSetting.Always, + this.getConfigTargetScope(config, updateImportsOnFileMoveName)); + return true; + } + case neverItem: { const config = this.getConfiguration(newResources[0]); config.update( @@ -211,9 +196,10 @@ class UpdateImportsOnFileRenameHandler extends Disposable { this.getConfigTargetScope(config, updateImportsOnFileMoveName)); return false; } + default: { + return false; + } } - - return false; } private async getJsTsFileBeingMoved(resource: vscode.Uri): Promise {