Files
vscode-extension-samples/progress-sample/src/extension.ts
2018-10-10 09:37:51 -07:00

59 lines
1.3 KiB
TypeScript

/*---------------------------------------------------------
* Copyright (C) Microsoft Corporation. All rights reserved.
*--------------------------------------------------------*/
'use strict';
import {
ExtensionContext,
StatusBarAlignment,
window,
StatusBarItem,
Selection,
workspace,
TextEditor,
commands,
ProgressLocation
} from 'vscode';
export function activate(context: ExtensionContext) {
context.subscriptions.push(
commands.registerCommand('extension.startTask', () => {
window.withProgress(
{
location: ProgressLocation.Notification,
title: 'I am long running!',
cancellable: true
},
(progress, token) => {
token.onCancellationRequested(() => {
console.log('User canceled the long running operation');
});
progress.report({ increment: 0 });
setTimeout(() => {
progress.report({ increment: 10, message: 'I am long running! - still going...' });
}, 1000);
setTimeout(() => {
progress.report({ increment: 40, message: 'I am long running! - still going even more...' });
}, 2000);
setTimeout(() => {
progress.report({ increment: 50, message: 'I am long running! - almost there...' });
}, 3000);
var p = new Promise(resolve => {
setTimeout(() => {
resolve();
}, 5000);
});
return p;
}
);
})
);
}