vsc-material-theme/src/material.theme.config.ts
2019-02-10 19:23:48 +01:00

36 lines
1.2 KiB
TypeScript

import {
commands as Commands,
ExtensionContext
} from 'vscode';
import * as ThemeCommands from './commands';
import {updateAccent} from './helpers/settings';
import {changelogMessage, installationMessage} from './helpers/messages';
import checkInstallation from './helpers/check-installation';
import writeChangelog from './helpers/write-changelog';
import {ReleaseNotesWebview} from './webviews/ReleaseNotes';
export async function activate(context: ExtensionContext) {
const installationType = checkInstallation();
const releaseNotesView = new ReleaseNotesWebview(context);
writeChangelog();
if (installationType.isFirstInstall) {
await installationMessage();
}
const shouldShowChangelog = (installationType.isFirstInstall || installationType.isUpdate) && await changelogMessage();
if (shouldShowChangelog) {
releaseNotesView.show();
}
// Registering commands
Commands.registerCommand('materialTheme.setAccent', async () => {
const accentPicked = await ThemeCommands.accentsQuickPick();
await ThemeCommands.accentsSetter(accentPicked);
await updateAccent(accentPicked);
});
Commands.registerCommand('materialTheme.showReleaseNotes', () => releaseNotesView.show());
}