diff --git a/src/helpers/Extension.ts b/src/helpers/Extension.ts index 2f5f0e93..f9a3ade2 100644 --- a/src/helpers/Extension.ts +++ b/src/helpers/Extension.ts @@ -1,7 +1,7 @@ import { basename } from "path"; -import { extensions, Uri, ExtensionContext } from "vscode"; +import { extensions, Uri, ExtensionContext, window, workspace, commands } from "vscode"; import { Folders, WORKSPACE_PLACEHOLDER } from "../commands/Folders"; -import { SETTINGS_CONTENT_FOLDERS, SETTINGS_CONTENT_PAGE_FOLDERS, SETTING_DATE_FIELD, SETTING_MODIFIED_FIELD, SETTING_SEO_DESCRIPTION_FIELD, SETTING_TAXONOMY_CONTENT_TYPES } from "../constants"; +import { EXTENSION_NAME, SETTINGS_CONTENT_FOLDERS, SETTINGS_CONTENT_PAGE_FOLDERS, SETTING_DATE_FIELD, SETTING_MODIFIED_FIELD, SETTING_SEO_DESCRIPTION_FIELD, SETTING_TAXONOMY_CONTENT_TYPES } from "../constants"; import { DEFAULT_CONTENT_TYPE_NAME } from "../constants/ContentType"; import { EXTENSION_BETA_ID, EXTENSION_ID, EXTENSION_STATE_VERSION } from "../constants/Extension"; import { ContentType } from "../models"; @@ -39,7 +39,23 @@ export class Extension { } if (usedVersion !== installedVersion) { - Notifications.info(`Find out what is new at [v${installedVersion} release notes](https://${this.isBetaVersion() ? 'beta.' : ''}frontmatter.codes/updates)`); + const whatIsNewTitle = `Check the changelog`; + const whatIsNew = { + title: whatIsNewTitle, + run: () => { + const uri = Uri.file(`${Extension.getInstance().extensionPath.fsPath}/CHANGELOG.md`); + workspace.openTextDocument(uri).then((() => { + commands.executeCommand("markdown.showPreview", uri) + })); + } + }; + + window.showInformationMessage(`${EXTENSION_NAME} has been updated to v${installedVersion} — check out what's new!`, whatIsNew).then((selection => { + if (selection?.title === whatIsNewTitle) { + selection.run(); + } + })); + this.setVersion(installedVersion); }