diff --git a/Extension/src/common.ts b/Extension/src/common.ts index 8a4a809cf..994acc902 100644 --- a/Extension/src/common.ts +++ b/Extension/src/common.ts @@ -167,8 +167,16 @@ export function getProgressExecutableSuccess(): number { return progressExecutab export function getProgressParseRootSuccess(): number { return progressParseRootSuccess; } // Parse root was successful (i.e. not blocked by processing taking too long). export function getProgressIntelliSenseNoSquiggles(): number { return progressIntelliSenseNoSquiggles; } // IntelliSense was successful and the user got no squiggles. -export function showReleaseNotes(): void { - vscode.commands.executeCommand('vscode.previewHtml', vscode.Uri.file(getExtensionFilePath("ReleaseNotes.html")), vscode.ViewColumn.One, "C/C++ Extension Release Notes"); +let releaseNotesPanel: vscode.WebviewPanel = undefined; + +export async function showReleaseNotes(): Promise { + if (releaseNotesPanel) { + releaseNotesPanel.reveal(); + } else { + releaseNotesPanel = vscode.window.createWebviewPanel('releaseNotes', "C/C++ Extension Release Notes", vscode.ViewColumn.One); + releaseNotesPanel.webview.html = await readFileText(getExtensionFilePath("ReleaseNotes.html")); + releaseNotesPanel.onDidDispose(() => releaseNotesPanel = undefined, null, extensionContext.subscriptions); + } } export function isUri(input: any): input is vscode.Uri {