in src/extension.ts [34:178]
export async function activate(context: vscode.ExtensionContext): Promise<void> {
const wskEntityProvider = new WskEntityProvider(context);
const wskEntityView = vscode.window.createTreeView('wskEntities', {
treeDataProvider: wskEntityProvider,
});
wskEntityView.onDidChangeVisibility(() => wskEntityProvider.refresh());
const disp = vscode.commands.registerCommand('wskEntities.refreshEntry', () =>
wskEntityProvider.refresh()
);
const wskActivationProvider = new WskActivationProvider(context, wskEntityView);
vscode.window.registerTreeDataProvider('wskActivations', wskActivationProvider);
// `a`ction, `p`ackage, `t`rigger, `r`ule
const triggerCharacters = 'aptr'.split('');
context.subscriptions.push(
vscode.languages.registerCompletionItemProvider(
{ scheme: 'file', language: 'yaml' },
new WskdeployYamlCompletionItemProvider(),
...triggerCharacters
)
);
// register TextDocumentContentProviders
const actionCodeProvider = new ActionCodeProvider();
const activationProvider = new ActivationProvider();
vscode.workspace.registerTextDocumentContentProvider(
ActionCodeProvider.scheme,
actionCodeProvider
);
vscode.workspace.registerTextDocumentContentProvider(
ActivationProvider.scheme,
activationProvider
);
vscode.commands.registerCommand('wskAction.openActionCode', async (action: WskAction) => {
commands.openActionCode(action);
});
vscode.commands.registerCommand('wskAction.editActionMetadata', async (action: WskAction) => {
commands.editActionMetadata(action, context);
});
vscode.commands.registerCommand('wskAction.editActionCode', async (action: WskAction) => {
commands.editAction(action);
});
vscode.commands.registerCommand('wskAction.deleteAction', async (action: WskAction) => {
await commands.deleteAction(action);
wskEntityProvider.refresh();
});
vscode.commands.registerCommand('wskAction.invokeAction', (action) =>
commands.invokeAction(action, context)
);
vscode.commands.registerCommand('wskTrigger.deleteTrigger', async (trigger: WskTrigger) => {
await commands.deleteTrigger(trigger);
wskEntityProvider.refresh();
});
vscode.commands.registerCommand('wskEntities.addEndpoint', async () => {
await addEndpoint(context);
wskEntityProvider.refresh();
});
vscode.commands.registerCommand('wskEndpoint.addNamespace', async (endpoint: WskEndpoint) => {
await addNamespace(endpoint.apihost, context);
wskEntityProvider.refresh();
});
vscode.commands.registerCommand('wskEndpoint.rename', async (endpoint: WskEndpoint) => {
await renameEndpoint(endpoint.apihost, context);
wskEntityProvider.refresh();
});
vscode.commands.registerCommand('wskTrigger.showInfo', async (trigger: WskTrigger) => {
commands.showTriggerInfo(trigger, context);
});
vscode.commands.registerCommand('wskActivation.showDetails', showActivationDetails);
vscode.commands.registerCommand('wskActivations.refresh', () =>
wskActivationProvider.refresh()
);
vscode.commands.registerCommand('wskEndpoint.remove', async (endpoint: WskEndpoint) => {
const confirmed = await showConfirmMessage(
`Are you sure you want to remove '${endpoint.label}' endpoint from the explorer?`
);
if (confirmed) {
await removeEndpoint(endpoint, context);
wskEntityProvider.refresh();
}
});
vscode.commands.registerCommand('wskNamespace.remove', async (namespace: WskNamespace) => {
const confirmed = await showConfirmMessage(
`Are you sure you want to remove '${namespace.label}' namespace from the explorer?`
);
if (confirmed) {
await removeNamespace(namespace, context);
wskEntityProvider.refresh();
}
});
vscode.commands.registerCommand(
'wskNamespace.createAction',
async (namespace: WskNamespace) => {
await commands.createAction(namespace);
wskEntityProvider.refresh();
}
);
vscode.commands.registerCommand(
'wskNamespace.createPackage',
async (namespace: WskNamespace) => {
await commands.createPackage(namespace);
wskEntityProvider.refresh();
}
);
vscode.commands.registerCommand('wskPackage.createAction', async (pkg: WskPackage) => {
await commands.createAction(pkg);
wskEntityProvider.refresh();
});
vscode.commands.registerCommand('wskPackage.editPackageMetadata', async (pkg: WskPackage) => {
commands.editPackageMetadata(pkg, context);
});
vscode.commands.registerCommand('wskPackage.deletePackage', async (pkg: WskPackage) => {
await commands.deletePackage(pkg);
wskEntityProvider.refresh();
});
vscode.commands.registerCommand('wskdeploy.createProject', () =>
commands.createWskdeployProject()
);
vscode.window.registerTreeDataProvider('wskdeploy', new WskDeployManifestProvider(context));
context.subscriptions.push(disp);
}