diff --git a/src/vs/base/browser/ui/dropdown/dropdown.ts b/src/vs/base/browser/ui/dropdown/dropdown.ts index 1979e4d926b..dc82ccd5b90 100644 --- a/src/vs/base/browser/ui/dropdown/dropdown.ts +++ b/src/vs/base/browser/ui/dropdown/dropdown.ts @@ -4,7 +4,6 @@ *--------------------------------------------------------------------------------------------*/ import 'vs/css!./dropdown'; -import { TPromise } from 'vs/base/common/winjs.base'; import { Gesture, EventType as GestureEventType } from 'vs/base/browser/touch'; import { ActionRunner, IAction, IActionRunner } from 'vs/base/common/actions'; import { BaseActionItem, IActionItemProvider } from 'vs/base/browser/ui/actionbar/actionbar'; @@ -244,7 +243,7 @@ export class DropdownMenu extends BaseDropdown { this._contextMenuProvider.showContextMenu({ getAnchor: () => this.element, - getActions: () => TPromise.as(this.actions), + getActions: () => Promise.resolve(this.actions), getActionsContext: () => this.menuOptions ? this.menuOptions.context : null, getActionItem: action => this.menuOptions && this.menuOptions.actionItemProvider ? this.menuOptions.actionItemProvider(action) : null, getKeyBinding: action => this.menuOptions && this.menuOptions.getKeyBinding ? this.menuOptions.getKeyBinding(action) : null, diff --git a/src/vs/base/browser/ui/toolbar/toolbar.ts b/src/vs/base/browser/ui/toolbar/toolbar.ts index ea8fe0ef9dc..f77e09e7519 100644 --- a/src/vs/base/browser/ui/toolbar/toolbar.ts +++ b/src/vs/base/browser/ui/toolbar/toolbar.ts @@ -5,7 +5,6 @@ import 'vs/css!./toolbar'; import * as nls from 'vs/nls'; -import { TPromise } from 'vs/base/common/winjs.base'; import { Action, IActionRunner, IAction } from 'vs/base/common/actions'; import { ActionBar, ActionsOrientation, IActionItemProvider } from 'vs/base/browser/ui/actionbar/actionbar'; import { IContextMenuProvider, DropdownMenuActionItem } from 'vs/base/browser/ui/dropdown/dropdown'; @@ -176,10 +175,10 @@ class ToggleMenuAction extends Action { this.toggleDropdownMenu = toggleDropdownMenu; } - run(): TPromise { + run(): Promise { this.toggleDropdownMenu(); - return TPromise.as(true); + return Promise.resolve(true); } get menuActions() { diff --git a/src/vs/base/node/encoding.ts b/src/vs/base/node/encoding.ts index f4a56f4a326..7bf469abe20 100644 --- a/src/vs/base/node/encoding.ts +++ b/src/vs/base/node/encoding.ts @@ -5,7 +5,6 @@ import * as stream from 'vs/base/node/stream'; import * as iconv from 'iconv-lite'; -import { TPromise } from 'vs/base/common/winjs.base'; import { isLinux, isMacintosh } from 'vs/base/common/platform'; import { exec } from 'child_process'; import { Readable, Writable, WritableOptions } from 'stream'; @@ -21,8 +20,7 @@ export interface IDecodeStreamOptions { overwriteEncoding?(detectedEncoding: string): string; } -export function toDecodeStream(readable: Readable, options: IDecodeStreamOptions): TPromise<{ detected: IDetectedEncodingResult, stream: NodeJS.ReadableStream }> { - +export function toDecodeStream(readable: Readable, options: IDecodeStreamOptions): Promise<{ detected: IDetectedEncodingResult, stream: NodeJS.ReadableStream }> { if (!options.minBytesRequiredForDetection) { options.minBytesRequiredForDetection = options.guessEncoding ? AUTO_GUESS_BUFFER_MAX_LEN : NO_GUESS_BUFFER_MAX_LEN; } @@ -31,7 +29,7 @@ export function toDecodeStream(readable: Readable, options: IDecodeStreamOptions options.overwriteEncoding = detected => detected || UTF8; } - return new TPromise<{ detected: IDetectedEncodingResult, stream: NodeJS.ReadableStream }>((resolve, reject) => { + return new Promise<{ detected: IDetectedEncodingResult, stream: NodeJS.ReadableStream }>((resolve, reject) => { readable.pipe(new class extends Writable { private _decodeStream: NodeJS.ReadWriteStream; @@ -74,7 +72,7 @@ export function toDecodeStream(readable: Readable, options: IDecodeStreamOptions _startDecodeStream(callback: Function): void { - this._decodeStreamConstruction = TPromise.as(detectEncodingFromBuffer({ + this._decodeStreamConstruction = Promise.resolve(detectEncodingFromBuffer({ buffer: Buffer.concat(this._buffer), bytesRead: this._bytesBuffered }, options.guessEncoding)).then(detected => { detected.encoding = options.overwriteEncoding(detected.encoding); @@ -180,7 +178,7 @@ export function detectEncodingByBOMFromBuffer(buffer: Buffer, bytesRead: number) * Detects the Byte Order Mark in a given file. * If no BOM is detected, null will be passed to callback. */ -export function detectEncodingByBOM(file: string): TPromise { +export function detectEncodingByBOM(file: string): Promise { return stream.readExactlyByFile(file, 3).then(({ buffer, bytesRead }) => detectEncodingByBOMFromBuffer(buffer, bytesRead)); } @@ -190,8 +188,8 @@ const IGNORE_ENCODINGS = ['ascii', 'utf-8', 'utf-16', 'utf-32']; /** * Guesses the encoding from buffer. */ -export function guessEncodingByBuffer(buffer: Buffer): TPromise { - return TPromise.wrap(import('jschardet')).then(jschardet => { +export function guessEncodingByBuffer(buffer: Buffer): Promise { + return import('jschardet').then(jschardet => { jschardet.Constants.MINIMUM_THRESHOLD = MINIMUM_THRESHOLD; const guessed = jschardet.detect(buffer); @@ -270,8 +268,8 @@ export interface IDetectedEncodingResult { } export function detectEncodingFromBuffer(readResult: stream.ReadResult, autoGuessEncoding?: false): IDetectedEncodingResult; -export function detectEncodingFromBuffer(readResult: stream.ReadResult, autoGuessEncoding?: boolean): TPromise; -export function detectEncodingFromBuffer({ buffer, bytesRead }: stream.ReadResult, autoGuessEncoding?: boolean): TPromise | IDetectedEncodingResult { +export function detectEncodingFromBuffer(readResult: stream.ReadResult, autoGuessEncoding?: boolean): Promise; +export function detectEncodingFromBuffer({ buffer, bytesRead }: stream.ReadResult, autoGuessEncoding?: boolean): Promise | IDetectedEncodingResult { // Always first check for BOM to find out about encoding let encoding = detectEncodingByBOMFromBuffer(buffer, bytesRead); @@ -356,8 +354,8 @@ const windowsTerminalEncodings = { '1252': 'cp1252' // West European Latin }; -export function resolveTerminalEncoding(verbose?: boolean): TPromise { - let rawEncodingPromise: TPromise; +export function resolveTerminalEncoding(verbose?: boolean): Promise { + let rawEncodingPromise: Promise; // Support a global environment variable to win over other mechanics const cliEncodingEnv = process.env['VSCODE_CLI_ENCODING']; @@ -366,23 +364,23 @@ export function resolveTerminalEncoding(verbose?: boolean): TPromise { console.log(`Found VSCODE_CLI_ENCODING variable: ${cliEncodingEnv}`); } - rawEncodingPromise = TPromise.as(cliEncodingEnv); + rawEncodingPromise = Promise.resolve(cliEncodingEnv); } // Linux/Mac: use "locale charmap" command else if (isLinux || isMacintosh) { - rawEncodingPromise = new TPromise(c => { + rawEncodingPromise = new Promise(resolve => { if (verbose) { console.log('Running "locale charmap" to detect terminal encoding...'); } - exec('locale charmap', (err, stdout, stderr) => c(stdout)); + exec('locale charmap', (err, stdout, stderr) => resolve(stdout)); }); } // Windows: educated guess else { - rawEncodingPromise = new TPromise(c => { + rawEncodingPromise = new Promise(resolve => { if (verbose) { console.log('Running "chcp" to detect terminal encoding...'); } @@ -393,12 +391,12 @@ export function resolveTerminalEncoding(verbose?: boolean): TPromise { for (let i = 0; i < windowsTerminalEncodingKeys.length; i++) { const key = windowsTerminalEncodingKeys[i]; if (stdout.indexOf(key) >= 0) { - return c(windowsTerminalEncodings[key]); + return resolve(windowsTerminalEncodings[key]); } } } - return c(void 0); + return resolve(void 0); }); }); } diff --git a/src/vs/base/node/id.ts b/src/vs/base/node/id.ts index c4c5a8ee431..4bb03b40ec3 100644 --- a/src/vs/base/node/id.ts +++ b/src/vs/base/node/id.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import * as errors from 'vs/base/common/errors'; import * as uuid from 'vs/base/common/uuid'; import { networkInterfaces } from 'os'; @@ -76,15 +75,15 @@ export const virtualMachineHint: { value(): number } = new class { } }; -let machineId: TPromise; -export function getMachineId(): TPromise { +let machineId: Promise; +export function getMachineId(): Promise { return machineId || (machineId = getMacMachineId() .then(id => id || uuid.generateUuid())); // fallback, generate a UUID } -function getMacMachineId(): TPromise { - return new TPromise(resolve => { - TPromise.join([import('crypto'), import('getmac')]).then(([crypto, getmac]) => { +function getMacMachineId(): Promise { + return new Promise(resolve => { + Promise.all([import('crypto'), import('getmac')]).then(([crypto, getmac]) => { try { getmac.getMac((error, macAddress) => { if (!error) { diff --git a/src/vs/base/node/stream.ts b/src/vs/base/node/stream.ts index ccd704dd727..ed7f72de7c3 100644 --- a/src/vs/base/node/stream.ts +++ b/src/vs/base/node/stream.ts @@ -5,8 +5,6 @@ import * as fs from 'fs'; -import { TPromise } from 'vs/base/common/winjs.base'; - export interface ReadResult { buffer: Buffer; bytesRead: number; @@ -15,24 +13,24 @@ export interface ReadResult { /** * Reads totalBytes from the provided file. */ -export function readExactlyByFile(file: string, totalBytes: number): TPromise { - return new TPromise((complete, error) => { +export function readExactlyByFile(file: string, totalBytes: number): Promise { + return new Promise((resolve, reject) => { fs.open(file, 'r', null, (err, fd) => { if (err) { - return error(err); + return reject(err); } function end(err: Error, resultBuffer: Buffer, bytesRead: number): void { fs.close(fd, closeError => { if (closeError) { - return error(closeError); + return reject(closeError); } if (err && (err).code === 'EISDIR') { - return error(err); // we want to bubble this error up (file is actually a folder) + return reject(err); // we want to bubble this error up (file is actually a folder) } - return complete({ buffer: resultBuffer, bytesRead }); + return resolve({ buffer: resultBuffer, bytesRead }); }); } @@ -73,24 +71,24 @@ export function readExactlyByFile(file: string, totalBytes: number): TPromise { - return new TPromise((complete, error) => +export function readToMatchingString(file: string, matchingString: string, chunkBytes: number, maximumBytesToRead: number): Promise { + return new Promise((resolve, reject) => fs.open(file, 'r', null, (err, fd) => { if (err) { - return error(err); + return reject(err); } function end(err: Error, result: string): void { fs.close(fd, closeError => { if (closeError) { - return error(closeError); + return reject(closeError); } if (err && (err).code === 'EISDIR') { - return error(err); // we want to bubble this error up (file is actually a folder) + return reject(err); // we want to bubble this error up (file is actually a folder) } - return complete(result); + return resolve(result); }); } diff --git a/src/vs/code/electron-main/logUploader.ts b/src/vs/code/electron-main/logUploader.ts index 67ceb6b84d3..7bc22e237a4 100644 --- a/src/vs/code/electron-main/logUploader.ts +++ b/src/vs/code/electron-main/logUploader.ts @@ -10,7 +10,6 @@ import * as path from 'path'; import { localize } from 'vs/nls'; import { ILaunchChannel } from 'vs/platform/launch/electron-main/launchService'; -import { TPromise } from 'vs/base/common/winjs.base'; import product from 'vs/platform/node/product'; import { IRequestService } from 'vs/platform/request/node/request'; import { IRequestContext } from 'vs/base/node/request'; @@ -92,7 +91,7 @@ async function postLogs( throw e; } - return new TPromise((res, reject) => { + return new Promise((resolve, reject) => { const parts: Buffer[] = []; result.stream.on('data', data => { parts.push(data); @@ -103,7 +102,7 @@ async function postLogs( try { const response = Buffer.concat(parts).toString('utf-8'); if (result.res.statusCode === 200) { - res(JSON.parse(response)); + resolve(JSON.parse(response)); } else { const errorMessage = localize('responseError', 'Error posting logs. Got {0} — {1}', result.res.statusCode, response); console.log(errorMessage); @@ -119,10 +118,10 @@ async function postLogs( function zipLogs( logsPath: string -): TPromise { +): Promise { const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'vscode-log-upload')); const outZip = path.join(tempDir, 'logs.zip'); - return new TPromise((resolve, reject) => { + return new Promise((resolve, reject) => { doZip(logsPath, outZip, tempDir, (err, stdout, stderr) => { if (err) { console.error(localize('zipError', 'Error zipping logs: {0}', err.message)); diff --git a/src/vs/code/node/shellEnv.ts b/src/vs/code/node/shellEnv.ts index a09bdd88ef8..0ad8d4040f0 100644 --- a/src/vs/code/node/shellEnv.ts +++ b/src/vs/code/node/shellEnv.ts @@ -6,11 +6,10 @@ import * as cp from 'child_process'; import { assign } from 'vs/base/common/objects'; import { generateUuid } from 'vs/base/common/uuid'; -import { TPromise } from 'vs/base/common/winjs.base'; import { isWindows } from 'vs/base/common/platform'; -function getUnixShellEnvironment(): TPromise { - const promise = new TPromise((c, e) => { +function getUnixShellEnvironment(): Promise { + const promise = new Promise((resolve, reject) => { const runAsNode = process.env['ELECTRON_RUN_AS_NODE']; const noAttach = process.env['ELECTRON_NO_ATTACH_CONSOLE']; const mark = generateUuid().replace(/-/g, '').substr(0, 12); @@ -29,12 +28,12 @@ function getUnixShellEnvironment(): TPromise { }); const buffers: Buffer[] = []; - child.on('error', () => c({})); + child.on('error', () => resolve({})); child.stdout.on('data', b => buffers.push(b as Buffer)); child.on('close', (code: number, signal: any) => { if (code !== 0) { - return e(new Error('Failed to get environment')); + return reject(new Error('Failed to get environment')); } const raw = Buffer.concat(buffers).toString('utf8'); @@ -59,9 +58,9 @@ function getUnixShellEnvironment(): TPromise { // https://github.com/Microsoft/vscode/issues/22593#issuecomment-336050758 delete env['XDG_RUNTIME_DIR']; - c(env); + resolve(env); } catch (err) { - e(err); + reject(err); } }); }); @@ -71,19 +70,19 @@ function getUnixShellEnvironment(): TPromise { } -let _shellEnv: TPromise; +let _shellEnv: Promise; /** * We need to get the environment from a user's shell. * This should only be done when Code itself is not launched * from within a shell. */ -export function getShellEnvironment(): TPromise { +export function getShellEnvironment(): Promise { if (_shellEnv === undefined) { if (isWindows) { - _shellEnv = TPromise.as({}); + _shellEnv = Promise.resolve({}); } else if (process.env['VSCODE_CLI'] === '1') { - _shellEnv = TPromise.as({}); + _shellEnv = Promise.resolve({}); } else { _shellEnv = getUnixShellEnvironment(); } diff --git a/src/vs/platform/actions/common/actions.ts b/src/vs/platform/actions/common/actions.ts index 6ef7049c35e..b9807b16522 100644 --- a/src/vs/platform/actions/common/actions.ts +++ b/src/vs/platform/actions/common/actions.ts @@ -4,7 +4,6 @@ *--------------------------------------------------------------------------------------------*/ import { Action } from 'vs/base/common/actions'; -import { TPromise } from 'vs/base/common/winjs.base'; import { SyncDescriptor0, createSyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { IConstructorSignature2, createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { IKeybindings } from 'vs/platform/keybinding/common/keybindingsRegistry'; @@ -215,7 +214,7 @@ export class ExecuteCommandAction extends Action { super(id, label); } - run(...args: any[]): TPromise { + run(...args: any[]): Promise { return this._commandService.executeCommand(this.id, ...args); } } @@ -253,7 +252,7 @@ export class MenuItemAction extends ExecuteCommandAction { this.alt = alt ? new MenuItemAction(alt, undefined, this._options, contextKeyService, commandService) : undefined; } - run(...args: any[]): TPromise { + run(...args: any[]): Promise { let runArgs: any[] = []; if (this._options.arg) { diff --git a/src/vs/platform/integrity/node/integrityServiceImpl.ts b/src/vs/platform/integrity/node/integrityServiceImpl.ts index 4fe90fb7efa..fe0e58cf7f3 100644 --- a/src/vs/platform/integrity/node/integrityServiceImpl.ts +++ b/src/vs/platform/integrity/node/integrityServiceImpl.ts @@ -6,7 +6,6 @@ import * as nls from 'vs/nls'; import * as fs from 'fs'; import * as crypto from 'crypto'; -import { TPromise } from 'vs/base/common/winjs.base'; import { IIntegrityService, IntegrityTestResult, ChecksumPair } from 'vs/platform/integrity/common/integrity'; import product from 'vs/platform/node/product'; import { URI } from 'vs/base/common/uri'; @@ -109,11 +108,11 @@ export class IntegrityServiceImpl implements IIntegrityService { const expectedChecksums = product.checksums || {}; return this.lifecycleService.when(LifecyclePhase.Eventually).then(() => { - let asyncResults: TPromise[] = Object.keys(expectedChecksums).map((filename) => { + let asyncResults: Promise[] = Object.keys(expectedChecksums).map((filename) => { return this._resolve(filename, expectedChecksums[filename]); }); - return TPromise.join(asyncResults).then((allResults) => { + return Promise.all(asyncResults).then((allResults) => { let isPure = true; for (let i = 0, len = allResults.length; isPure && i < len; i++) { if (!allResults[i].isPure) { @@ -130,14 +129,14 @@ export class IntegrityServiceImpl implements IIntegrityService { }); } - private _resolve(filename: string, expected: string): TPromise { + private _resolve(filename: string, expected: string): Promise { let fileUri = URI.parse(require.toUrl(filename)); - return new TPromise((c, e) => { + return new Promise((resolve, reject) => { fs.readFile(fileUri.fsPath, (err, buff) => { if (err) { - return e(err); + return reject(err); } - c(IntegrityServiceImpl._createChecksumPair(fileUri, this._computeChecksum(buff), expected)); + resolve(IntegrityServiceImpl._createChecksumPair(fileUri, this._computeChecksum(buff), expected)); }); }); } diff --git a/src/vs/workbench/browser/actions/toggleActivityBarVisibility.ts b/src/vs/workbench/browser/actions/toggleActivityBarVisibility.ts index bf3b4d1b165..c464b25d3da 100644 --- a/src/vs/workbench/browser/actions/toggleActivityBarVisibility.ts +++ b/src/vs/workbench/browser/actions/toggleActivityBarVisibility.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import * as nls from 'vs/nls'; import { Registry } from 'vs/platform/registry/common/platform'; import { Action } from 'vs/base/common/actions'; @@ -30,7 +29,7 @@ export class ToggleActivityBarVisibilityAction extends Action { this.enabled = !!this.partService; } - run(): TPromise { + run(): Promise { const visibility = this.partService.isVisible(Parts.ACTIVITYBAR_PART); const newVisibilityValue = !visibility; diff --git a/src/vs/workbench/browser/actions/toggleCenteredLayout.ts b/src/vs/workbench/browser/actions/toggleCenteredLayout.ts index 2db3176a47e..1d33820971d 100644 --- a/src/vs/workbench/browser/actions/toggleCenteredLayout.ts +++ b/src/vs/workbench/browser/actions/toggleCenteredLayout.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import * as nls from 'vs/nls'; import { Action } from 'vs/base/common/actions'; import { Registry } from 'vs/platform/registry/common/platform'; @@ -25,7 +24,7 @@ class ToggleCenteredLayout extends Action { this.enabled = !!this.partService; } - run(): TPromise { + run(): Promise { this.partService.centerEditorLayout(!this.partService.isEditorLayoutCentered()); return Promise.resolve(null); diff --git a/src/vs/workbench/browser/actions/toggleEditorLayout.ts b/src/vs/workbench/browser/actions/toggleEditorLayout.ts index a934c50f0be..6b44c2ded3c 100644 --- a/src/vs/workbench/browser/actions/toggleEditorLayout.ts +++ b/src/vs/workbench/browser/actions/toggleEditorLayout.ts @@ -4,7 +4,6 @@ *--------------------------------------------------------------------------------------------*/ import 'vs/css!./media/actions'; -import { TPromise } from 'vs/base/common/winjs.base'; import * as nls from 'vs/nls'; import { Registry } from 'vs/platform/registry/common/platform'; import { Action } from 'vs/base/common/actions'; @@ -47,7 +46,7 @@ export class ToggleEditorLayoutAction extends Action { this.enabled = this.editorGroupService.count > 1; } - run(): TPromise { + run(): Promise { const newOrientation = (this.editorGroupService.orientation === GroupOrientation.VERTICAL) ? GroupOrientation.HORIZONTAL : GroupOrientation.VERTICAL; this.editorGroupService.setGroupOrientation(newOrientation); diff --git a/src/vs/workbench/browser/actions/toggleSidebarPosition.ts b/src/vs/workbench/browser/actions/toggleSidebarPosition.ts index 02049efb3eb..b77fd7af814 100644 --- a/src/vs/workbench/browser/actions/toggleSidebarPosition.ts +++ b/src/vs/workbench/browser/actions/toggleSidebarPosition.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import * as nls from 'vs/nls'; import { Registry } from 'vs/platform/registry/common/platform'; import { Action } from 'vs/base/common/actions'; @@ -30,7 +29,7 @@ export class ToggleSidebarPositionAction extends Action { this.enabled = !!this.partService && !!this.configurationService; } - run(): TPromise { + run(): Promise { const position = this.partService.getSideBarPosition(); const newPositionValue = (position === Position.LEFT) ? 'right' : 'left'; diff --git a/src/vs/workbench/browser/actions/toggleSidebarVisibility.ts b/src/vs/workbench/browser/actions/toggleSidebarVisibility.ts index e4feeb9226d..c5d450fae04 100644 --- a/src/vs/workbench/browser/actions/toggleSidebarVisibility.ts +++ b/src/vs/workbench/browser/actions/toggleSidebarVisibility.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import * as nls from 'vs/nls'; import { Registry } from 'vs/platform/registry/common/platform'; import { Action } from 'vs/base/common/actions'; @@ -27,8 +26,9 @@ export class ToggleSidebarVisibilityAction extends Action { this.enabled = !!this.partService; } - run(): TPromise { + run(): Thenable { const hideSidebar = this.partService.isVisible(Parts.SIDEBAR_PART); + return this.partService.setSideBarHidden(hideSidebar); } } diff --git a/src/vs/workbench/browser/actions/toggleStatusbarVisibility.ts b/src/vs/workbench/browser/actions/toggleStatusbarVisibility.ts index 75bdac7d068..a7bada0e912 100644 --- a/src/vs/workbench/browser/actions/toggleStatusbarVisibility.ts +++ b/src/vs/workbench/browser/actions/toggleStatusbarVisibility.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import * as nls from 'vs/nls'; import { Registry } from 'vs/platform/registry/common/platform'; import { Action } from 'vs/base/common/actions'; @@ -30,7 +29,7 @@ export class ToggleStatusbarVisibilityAction extends Action { this.enabled = !!this.partService; } - run(): TPromise { + run(): Promise { const visibility = this.partService.isVisible(Parts.STATUSBAR_PART); const newVisibilityValue = !visibility; diff --git a/src/vs/workbench/browser/actions/toggleTabsVisibility.ts b/src/vs/workbench/browser/actions/toggleTabsVisibility.ts index 3cfb46cdad1..51b0a4548c2 100644 --- a/src/vs/workbench/browser/actions/toggleTabsVisibility.ts +++ b/src/vs/workbench/browser/actions/toggleTabsVisibility.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import * as nls from 'vs/nls'; import { Registry } from 'vs/platform/registry/common/platform'; import { Action } from 'vs/base/common/actions'; @@ -27,7 +26,7 @@ export class ToggleTabsVisibilityAction extends Action { super(id, label); } - run(): TPromise { + run(): Promise { const visibility = this.configurationService.getValue(ToggleTabsVisibilityAction.tabsVisibleKey); const newVisibilityValue = !visibility; diff --git a/src/vs/workbench/browser/actions/toggleZenMode.ts b/src/vs/workbench/browser/actions/toggleZenMode.ts index fa6fc674e63..362f999dfed 100644 --- a/src/vs/workbench/browser/actions/toggleZenMode.ts +++ b/src/vs/workbench/browser/actions/toggleZenMode.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import * as nls from 'vs/nls'; import { Action } from 'vs/base/common/actions'; import { KeyCode, KeyMod, KeyChord } from 'vs/base/common/keyCodes'; @@ -26,8 +25,9 @@ class ToggleZenMode extends Action { this.enabled = !!this.partService; } - run(): TPromise { + run(): Promise { this.partService.toggleZenMode(); + return Promise.resolve(null); } } diff --git a/src/vs/workbench/browser/actions/workspaceActions.ts b/src/vs/workbench/browser/actions/workspaceActions.ts index 4131879e60c..79885e6f18b 100644 --- a/src/vs/workbench/browser/actions/workspaceActions.ts +++ b/src/vs/workbench/browser/actions/workspaceActions.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import { Action } from 'vs/base/common/actions'; import * as nls from 'vs/nls'; import { IWindowService } from 'vs/platform/windows/common/windows'; @@ -32,7 +31,7 @@ export class OpenFileAction extends Action { super(id, label); } - run(event?: any, data?: ITelemetryData): TPromise { + run(event?: any, data?: ITelemetryData): Thenable { return this.dialogService.pickFileAndOpen({ forceNewWindow: false, telemetryExtraData: data }); } } @@ -50,7 +49,7 @@ export class OpenFolderAction extends Action { super(id, label); } - run(event?: any, data?: ITelemetryData): TPromise { + run(event?: any, data?: ITelemetryData): Thenable { return this.dialogService.pickFolderAndOpen({ forceNewWindow: false, telemetryExtraData: data }); } } @@ -68,7 +67,7 @@ export class OpenFileFolderAction extends Action { super(id, label); } - run(event?: any, data?: ITelemetryData): TPromise { + run(event?: any, data?: ITelemetryData): Thenable { return this.dialogService.pickFileFolderAndOpen({ forceNewWindow: false, telemetryExtraData: data }); } } @@ -86,7 +85,7 @@ export class AddRootFolderAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { return this.commandService.executeCommand(ADD_ROOT_FOLDER_COMMAND_ID); } } @@ -106,7 +105,7 @@ export class GlobalRemoveRootFolderAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { const state = this.contextService.getWorkbenchState(); // Workspace / Folder @@ -140,7 +139,7 @@ export class SaveWorkspaceAsAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { return this.getNewWorkspaceConfigPath().then(configPathUri => { if (configPathUri) { const configPath = configPathUri.fsPath; @@ -159,7 +158,7 @@ export class SaveWorkspaceAsAction extends Action { }); } - private getNewWorkspaceConfigPath(): TPromise { + private getNewWorkspaceConfigPath(): Thenable { return this.dialogService.showSaveDialog({ saveLabel: mnemonicButtonLabel(nls.localize({ key: 'save', comment: ['&& denotes a mnemonic'] }, "&&Save")), title: nls.localize('saveWorkspace', "Save Workspace"), @@ -182,7 +181,7 @@ export class OpenWorkspaceAction extends Action { super(id, label); } - run(event?: any, data?: ITelemetryData): TPromise { + run(event?: any, data?: ITelemetryData): Thenable { return this.dialogService.pickWorkspaceAndOpen({ telemetryExtraData: data }); } } @@ -203,7 +202,7 @@ export class OpenWorkspaceConfigFileAction extends Action { this.enabled = !!this.workspaceContextService.getWorkspace().configuration; } - run(): TPromise { + run(): Thenable { return this.editorService.openEditor({ resource: this.workspaceContextService.getWorkspace().configuration }); } } @@ -224,7 +223,7 @@ export class DuplicateWorkspaceInNewWindowAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { const folders = this.workspaceContextService.getWorkspace().folders; return this.workspacesService.createWorkspace(folders).then(newWorkspace => { diff --git a/src/vs/workbench/browser/dnd.ts b/src/vs/workbench/browser/dnd.ts index cdccb696190..38bf337a617 100644 --- a/src/vs/workbench/browser/dnd.ts +++ b/src/vs/workbench/browser/dnd.ts @@ -10,7 +10,6 @@ import { IWindowsService, IWindowService } from 'vs/platform/windows/common/wind import { URI } from 'vs/base/common/uri'; import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles'; import { IBackupFileService } from 'vs/workbench/services/backup/common/backup'; -import { TPromise } from 'vs/base/common/winjs.base'; import { Schemas } from 'vs/base/common/network'; import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService'; import { DefaultEndOfLine } from 'vs/editor/common/model'; @@ -207,7 +206,7 @@ export class ResourcesDropHandler { }); } - private doHandleDrop(untitledOrFileResources: (IDraggedResource | IDraggedEditor)[]): TPromise { + private doHandleDrop(untitledOrFileResources: (IDraggedResource | IDraggedEditor)[]): Thenable { // Check for dirty editors being dropped const resourcesWithBackups: IDraggedEditor[] = untitledOrFileResources.filter(resource => !resource.isExternal && !!(resource as IDraggedEditor).backupResource); @@ -226,7 +225,7 @@ export class ResourcesDropHandler { return Promise.resolve(false); } - private handleDirtyEditorDrop(droppedDirtyEditor: IDraggedEditor): TPromise { + private handleDirtyEditorDrop(droppedDirtyEditor: IDraggedEditor): Thenable { // Untitled: always ensure that we open a new untitled for each file we drop if (droppedDirtyEditor.resource.scheme === Schemas.untitled) { @@ -255,7 +254,7 @@ export class ResourcesDropHandler { return DefaultEndOfLine.LF; } - private handleWorkspaceFileDrop(fileOnDiskResources: URI[]): TPromise { + private handleWorkspaceFileDrop(fileOnDiskResources: URI[]): Thenable { const workspaceResources: { workspaces: URI[], folders: URI[] } = { workspaces: [], folders: [] @@ -287,7 +286,7 @@ export class ResourcesDropHandler { // Pass focus to window this.windowService.focusWindow(); - let workspacesToOpen: TPromise; + let workspacesToOpen: Thenable; // Open in separate windows if we drop workspaces or just one folder if (workspaces.length > 0 || folders.length === 1) { diff --git a/src/vs/workbench/browser/layout.ts b/src/vs/workbench/browser/layout.ts index 5f878cd2afe..967c730dd71 100644 --- a/src/vs/workbench/browser/layout.ts +++ b/src/vs/workbench/browser/layout.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import { QuickOpenController } from 'vs/workbench/browser/parts/quickopen/quickOpenController'; import { QuickInputService } from 'vs/workbench/browser/parts/quickinput/quickInput'; import { Sash, ISashEvent, IVerticalSashLayoutProvider, IHorizontalSashLayoutProvider, Orientation } from 'vs/base/browser/ui/sash/sash'; @@ -261,7 +260,7 @@ export class WorkbenchLayout extends Disposable implements IVerticalSashLayoutPr let sidebarPosition = this.partService.getSideBarPosition(); let isSidebarVisible = this.partService.isVisible(Parts.SIDEBAR_PART); let newSashWidth = (sidebarPosition === Position.LEFT) ? startSidebarWidth + e.currentX - startX : startSidebarWidth - e.currentX + startX; - let promise = TPromise.wrap(null); + let promise: Thenable = Promise.resolve(null); // Sidebar visible if (isSidebarVisible) { @@ -300,7 +299,7 @@ export class WorkbenchLayout extends Disposable implements IVerticalSashLayoutPr let doLayout = false; let isPanelVisible = this.partService.isVisible(Parts.PANEL_PART); let newSashHeight = startPanelHeight - (e.currentY - startY); - let promise = TPromise.wrap(null); + let promise: Thenable = Promise.resolve(null); // Panel visible if (isPanelVisible) { @@ -338,7 +337,7 @@ export class WorkbenchLayout extends Disposable implements IVerticalSashLayoutPr let doLayout = false; let isPanelVisible = this.partService.isVisible(Parts.PANEL_PART); let newSashWidth = startPanelWidth - (e.currentX - startXTwo); - let promise = TPromise.wrap(null); + let promise: Thenable = Promise.resolve(null); // Panel visible if (isPanelVisible) { diff --git a/src/vs/workbench/browser/panel.ts b/src/vs/workbench/browser/panel.ts index dd03517db5e..b44595941cb 100644 --- a/src/vs/workbench/browser/panel.ts +++ b/src/vs/workbench/browser/panel.ts @@ -4,7 +4,6 @@ *--------------------------------------------------------------------------------------------*/ import { Registry } from 'vs/platform/registry/common/platform'; -import { TPromise } from 'vs/base/common/winjs.base'; import { IPanel } from 'vs/workbench/common/panel'; import { Composite, CompositeDescriptor, CompositeRegistry } from 'vs/workbench/browser/composite'; import { Action } from 'vs/base/common/actions'; @@ -76,7 +75,7 @@ export abstract class TogglePanelAction extends Action { this.panelId = panelId; } - run(): TPromise { + run(): Thenable { if (this.isPanelFocused()) { return this.partService.setPanelHidden(true); } diff --git a/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts b/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts index fb61ca4a6b7..c2440a2bb94 100644 --- a/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts +++ b/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts @@ -6,7 +6,6 @@ import 'vs/css!./media/activityaction'; import * as DOM from 'vs/base/browser/dom'; import { EventType as TouchEventType, GestureEvent } from 'vs/base/browser/touch'; -import { TPromise } from 'vs/base/common/winjs.base'; import { Action } from 'vs/base/common/actions'; import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; import { ViewletDescriptor } from 'vs/workbench/browser/viewlet'; @@ -39,7 +38,7 @@ export class ViewletActivityAction extends ActivityAction { super(activity); } - run(event: any): TPromise { + run(event: any): Thenable { if (event instanceof MouseEvent && event.button === 2) { return Promise.resolve(false); // do not run on right click } @@ -85,7 +84,7 @@ export class ToggleViewletAction extends Action { super(_viewlet.id, _viewlet.name); } - run(): TPromise { + run(): Thenable { const sideBarVisible = this.partService.isVisible(Parts.SIDEBAR_PART); const activeViewlet = this.viewletService.getActiveViewlet(); diff --git a/src/vs/workbench/browser/parts/compositeBarActions.ts b/src/vs/workbench/browser/parts/compositeBarActions.ts index 80cea9a03a3..36dcbd54c80 100644 --- a/src/vs/workbench/browser/parts/compositeBarActions.ts +++ b/src/vs/workbench/browser/parts/compositeBarActions.ts @@ -5,7 +5,6 @@ import * as nls from 'vs/nls'; import { Action } from 'vs/base/common/actions'; -import { TPromise } from 'vs/base/common/winjs.base'; import * as dom from 'vs/base/browser/dom'; import { BaseActionItem, IBaseActionItemOptions, Separator } from 'vs/base/browser/ui/actionbar/actionbar'; import { ICommandService } from 'vs/platform/commands/common/commands'; @@ -338,7 +337,7 @@ export class CompositeOverflowActivityAction extends ActivityAction { }); } - run(event: any): TPromise { + run(event: any): Promise { this.showMenu(); return Promise.resolve(true); @@ -413,7 +412,7 @@ class ManageExtensionAction extends Action { super('activitybar.manage.extension', nls.localize('manageExtension', "Manage Extension")); } - run(id: string): TPromise { + run(id: string): Promise { return this.commandService.executeCommand('_extensions.manage', id); } } @@ -653,7 +652,7 @@ export class ToggleCompositePinnedAction extends Action { this.checked = this.activity && this.compositeBar.isPinned(this.activity.id); } - run(context: string): TPromise { + run(context: string): Promise { const id = this.activity ? this.activity.id : context; if (this.compositeBar.isPinned(id)) { diff --git a/src/vs/workbench/browser/parts/editor/editorActions.ts b/src/vs/workbench/browser/parts/editor/editorActions.ts index 5e4e0e003da..ed046115ec1 100644 --- a/src/vs/workbench/browser/parts/editor/editorActions.ts +++ b/src/vs/workbench/browser/parts/editor/editorActions.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import * as nls from 'vs/nls'; import { Action } from 'vs/base/common/actions'; import { mixin } from 'vs/base/common/objects'; @@ -36,7 +35,7 @@ export class ExecuteCommandAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { return this.commandService.executeCommand(this.commandId, this.commandArgs); } } @@ -70,10 +69,10 @@ export class BaseSplitEditorAction extends Action { })); } - run(context?: IEditorIdentifier): TPromise { + run(context?: IEditorIdentifier): Promise { splitEditor(this.editorGroupService, this.direction, context); - return TPromise.as(true); + return Promise.resolve(true); } dispose(): void { @@ -188,7 +187,7 @@ export class JoinTwoGroupsAction extends Action { super(id, label); } - run(context?: IEditorIdentifier): TPromise { + run(context?: IEditorIdentifier): Promise { let sourceGroup: IEditorGroup; if (context && typeof context.groupId === 'number') { sourceGroup = this.editorGroupService.getGroup(context.groupId); @@ -202,11 +201,11 @@ export class JoinTwoGroupsAction extends Action { if (targetGroup && sourceGroup !== targetGroup) { this.editorGroupService.mergeGroup(sourceGroup, targetGroup); - return TPromise.as(true); + return Promise.resolve(true); } } - return TPromise.as(true); + return Promise.resolve(true); } } @@ -223,10 +222,10 @@ export class JoinAllGroupsAction extends Action { super(id, label); } - run(context?: IEditorIdentifier): TPromise { + run(context?: IEditorIdentifier): Promise { mergeAllGroups(this.editorGroupService); - return TPromise.as(true); + return Promise.resolve(true); } } @@ -243,11 +242,11 @@ export class NavigateBetweenGroupsAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { const nextGroup = this.editorGroupService.findGroup({ location: GroupLocation.NEXT }, this.editorGroupService.activeGroup, true); nextGroup.focus(); - return TPromise.as(true); + return Promise.resolve(true); } } @@ -264,10 +263,10 @@ export class FocusActiveGroupAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { this.editorGroupService.activeGroup.focus(); - return TPromise.as(true); + return Promise.resolve(true); } } @@ -282,13 +281,13 @@ export abstract class BaseFocusGroupAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { const group = this.editorGroupService.findGroup(this.scope, this.editorGroupService.activeGroup, true); if (group) { group.focus(); } - return TPromise.as(true); + return Promise.resolve(true); } } @@ -424,7 +423,7 @@ export class OpenToSideFromQuickOpenAction extends Action { this.class = (preferredDirection === GroupDirection.RIGHT) ? 'quick-open-sidebyside-vertical' : 'quick-open-sidebyside-horizontal'; } - run(context: any): TPromise { + run(context: any): Thenable { const entry = toEditorQuickOpenEntry(context); if (entry) { const input = entry.getInput(); @@ -438,7 +437,7 @@ export class OpenToSideFromQuickOpenAction extends Action { return this.editorService.openEditor(resourceInput, SIDE_GROUP); } - return TPromise.as(false); + return Promise.resolve(false); } } @@ -473,7 +472,7 @@ export class CloseEditorAction extends Action { super(id, label, 'close-editor-action'); } - run(context?: IEditorCommandsContext): TPromise { + run(context?: IEditorCommandsContext): Promise { return this.commandService.executeCommand(CLOSE_EDITOR_COMMAND_ID, void 0, context); } } @@ -491,7 +490,7 @@ export class CloseOneEditorAction extends Action { super(id, label, 'close-editor-action'); } - run(context?: IEditorCommandsContext): TPromise { + run(context?: IEditorCommandsContext): Thenable { let group: IEditorGroup; let editorIndex: number; if (context) { @@ -519,7 +518,7 @@ export class CloseOneEditorAction extends Action { return group.closeEditor(group.activeEditor); } - return TPromise.as(false); + return Promise.resolve(false); } } @@ -536,7 +535,7 @@ export class RevertAndCloseEditorAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { const activeControl = this.editorService.activeControl; if (activeControl) { const editor = activeControl.input; @@ -552,7 +551,7 @@ export class RevertAndCloseEditorAction extends Action { }); } - return TPromise.as(false); + return Promise.resolve(false); } } @@ -570,13 +569,13 @@ export class CloseLeftEditorsInGroupAction extends Action { super(id, label); } - run(context?: IEditorIdentifier): TPromise { + run(context?: IEditorIdentifier): Thenable { const { group, editor } = getTarget(this.editorService, this.editorGroupService, context); if (group && editor) { return group.closeEditors({ direction: CloseDirection.LEFT, except: editor }); } - return TPromise.as(false); + return Promise.resolve(false); } } @@ -615,7 +614,7 @@ export abstract class BaseCloseAllAction extends Action { return groupsToClose; } - run(): TPromise { + run(): Thenable { // Just close all if there are no or one dirty editor if (this.textFileService.getDirty().length < 2) { @@ -628,7 +627,7 @@ export abstract class BaseCloseAllAction extends Action { return void 0; } - let saveOrRevertPromise: TPromise; + let saveOrRevertPromise: Thenable; if (confirm === ConfirmResult.DONT_SAVE) { saveOrRevertPromise = this.textFileService.revertAll(null, { soft: true }).then(() => true); } else { @@ -645,7 +644,7 @@ export abstract class BaseCloseAllAction extends Action { }); } - protected abstract doCloseAll(): TPromise; + protected abstract doCloseAll(): Thenable; } export class CloseAllEditorsAction extends BaseCloseAllAction { @@ -662,7 +661,7 @@ export class CloseAllEditorsAction extends BaseCloseAllAction { super(id, label, 'action-close-all-files', textFileService, editorGroupService); } - protected doCloseAll(): TPromise { + protected doCloseAll(): Promise { return Promise.all(this.groupsToClose.map(g => g.closeAllEditors())); } } @@ -681,7 +680,7 @@ export class CloseAllEditorGroupsAction extends BaseCloseAllAction { super(id, label, void 0, textFileService, editorGroupService); } - protected doCloseAll(): TPromise { + protected doCloseAll(): Promise { return Promise.all(this.groupsToClose.map(g => g.closeAllEditors())).then(() => { this.groupsToClose.forEach(group => this.editorGroupService.removeGroup(group)); }); @@ -701,11 +700,11 @@ export class CloseEditorsInOtherGroupsAction extends Action { super(id, label); } - run(context?: IEditorIdentifier): TPromise { + run(context?: IEditorIdentifier): Thenable { const groupToSkip = context ? this.editorGroupService.getGroup(context.groupId) : this.editorGroupService.activeGroup; return Promise.all(this.editorGroupService.getGroups(GroupsOrder.MOST_RECENTLY_ACTIVE).map(g => { if (g.id === groupToSkip.id) { - return TPromise.as(null); + return Promise.resolve(null); } return g.closeAllEditors(); @@ -727,13 +726,13 @@ export class CloseEditorInAllGroupsAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { const activeEditor = this.editorService.activeEditor; if (activeEditor) { return Promise.all(this.editorGroupService.getGroups(GroupsOrder.MOST_RECENTLY_ACTIVE).map(g => g.closeEditor(activeEditor))); } - return TPromise.as(null); + return Promise.resolve(null); } } @@ -748,7 +747,7 @@ export class BaseMoveGroupAction extends Action { super(id, label); } - run(context?: IEditorIdentifier): TPromise { + run(context?: IEditorIdentifier): Promise { let sourceGroup: IEditorGroup; if (context && typeof context.groupId === 'number') { sourceGroup = this.editorGroupService.getGroup(context.groupId); @@ -761,7 +760,7 @@ export class BaseMoveGroupAction extends Action { this.editorGroupService.moveGroup(sourceGroup, targetGroup, this.direction); } - return TPromise.as(true); + return Promise.resolve(true); } private findTargetGroup(sourceGroup: IEditorGroup): IEditorGroup { @@ -857,10 +856,10 @@ export class MinimizeOtherGroupsAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { this.editorGroupService.arrangeGroups(GroupsArrangement.MINIMIZE_OTHERS); - return TPromise.as(false); + return Promise.resolve(false); } } @@ -873,10 +872,10 @@ export class ResetGroupSizesAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { this.editorGroupService.arrangeGroups(GroupsArrangement.EVEN); - return TPromise.as(false); + return Promise.resolve(false); } } @@ -895,14 +894,14 @@ export class MaximizeGroupAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { if (this.editorService.activeEditor) { this.editorGroupService.arrangeGroups(GroupsArrangement.MINIMIZE_OTHERS); return this.partService.setSideBarHidden(true); } - return TPromise.as(false); + return Promise.resolve(false); } } @@ -917,15 +916,15 @@ export abstract class BaseNavigateEditorAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { const result = this.navigate(); if (!result) { - return TPromise.as(false); + return Promise.resolve(false); } const { groupId, editor } = result; if (!editor) { - return TPromise.as(false); + return Promise.resolve(false); } const group = this.editorGroupService.getGroup(groupId); @@ -1104,10 +1103,10 @@ export class NavigateForwardAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { this.historyService.forward(); - return TPromise.as(null); + return Promise.resolve(null); } } @@ -1120,10 +1119,10 @@ export class NavigateBackwardsAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { this.historyService.back(); - return TPromise.as(null); + return Promise.resolve(null); } } @@ -1136,10 +1135,10 @@ export class NavigateToLastEditLocationAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { this.historyService.openLastEditLocation(); - return TPromise.as(null); + return Promise.resolve(null); } } @@ -1152,10 +1151,10 @@ export class NavigateLastAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { this.historyService.last(); - return TPromise.as(null); + return Promise.resolve(null); } } @@ -1172,10 +1171,10 @@ export class ReopenClosedEditorAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { this.historyService.reopenLastClosedEditor(); - return TPromise.as(false); + return Promise.resolve(false); } } @@ -1193,7 +1192,7 @@ export class ClearRecentFilesAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { // Clear global recently opened this.windowsService.clearRecentlyOpened(); @@ -1201,7 +1200,7 @@ export class ClearRecentFilesAction extends Action { // Clear workspace specific recently opened this.historyService.clearRecentlyOpened(); - return TPromise.as(false); + return Promise.resolve(false); } } @@ -1240,14 +1239,14 @@ export class BaseQuickOpenEditorInGroupAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { const keys = this.keybindingService.lookupKeybindings(this.id); this.quickOpenService.show(NAVIGATE_IN_ACTIVE_GROUP_PREFIX, { quickNavigateConfiguration: { keybindings: keys } }); - return TPromise.as(true); + return Promise.resolve(true); } } @@ -1295,12 +1294,12 @@ export class OpenPreviousEditorFromHistoryAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { const keys = this.keybindingService.lookupKeybindings(this.id); this.quickOpenService.show(null, { quickNavigateConfiguration: { keybindings: keys } }); - return TPromise.as(true); + return Promise.resolve(true); } } @@ -1313,10 +1312,10 @@ export class OpenNextRecentlyUsedEditorAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { this.historyService.forward(true); - return TPromise.as(null); + return Promise.resolve(null); } } @@ -1329,10 +1328,10 @@ export class OpenPreviousRecentlyUsedEditorAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { this.historyService.back(true); - return TPromise.as(null); + return Promise.resolve(null); } } @@ -1349,12 +1348,12 @@ export class ClearEditorHistoryAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { // Editor history this.historyService.clear(); - return TPromise.as(true); + return Promise.resolve(true); } } @@ -1621,10 +1620,10 @@ export class BaseCreateEditorGroupAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { this.editorGroupService.addGroup(this.editorGroupService.activeGroup, this.direction, { activate: true }); - return TPromise.as(true); + return Promise.resolve(true); } } diff --git a/src/vs/workbench/browser/parts/editor/editorCommands.ts b/src/vs/workbench/browser/parts/editor/editorCommands.ts index 59b0288ea8d..c94806acc4a 100644 --- a/src/vs/workbench/browser/parts/editor/editorCommands.ts +++ b/src/vs/workbench/browser/parts/editor/editorCommands.ts @@ -12,7 +12,6 @@ import { IEditorService } from 'vs/workbench/services/editor/common/editorServic import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; import { TextDiffEditor } from 'vs/workbench/browser/parts/editor/textDiffEditor'; import { KeyMod, KeyCode, KeyChord } from 'vs/base/common/keyCodes'; -import { TPromise } from 'vs/base/common/winjs.base'; import { URI } from 'vs/base/common/uri'; import { IQuickOpenService } from 'vs/platform/quickOpen/common/quickOpen'; import { IListService } from 'vs/platform/list/browser/listService'; @@ -592,7 +591,7 @@ function registerCloseEditorCommands() { return group.closeEditors({ direction: CloseDirection.RIGHT, except: editor }); } - return TPromise.as(false); + return Promise.resolve(false); } }); @@ -609,7 +608,7 @@ function registerCloseEditorCommands() { return group.pinEditor(editor); } - return TPromise.as(false); + return Promise.resolve(false); } }); diff --git a/src/vs/workbench/browser/parts/notifications/notificationsActions.ts b/src/vs/workbench/browser/parts/notifications/notificationsActions.ts index 71508c51877..f373b109854 100644 --- a/src/vs/workbench/browser/parts/notifications/notificationsActions.ts +++ b/src/vs/workbench/browser/parts/notifications/notificationsActions.ts @@ -7,7 +7,6 @@ import 'vs/css!./media/notificationsActions'; import { INotificationViewItem } from 'vs/workbench/common/notifications'; import { localize } from 'vs/nls'; import { Action, IAction, ActionRunner } from 'vs/base/common/actions'; -import { TPromise } from 'vs/base/common/winjs.base'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { INotificationService } from 'vs/platform/notification/common/notification'; import { CLEAR_NOTIFICATION, EXPAND_NOTIFICATION, COLLAPSE_NOTIFICATION, CLEAR_ALL_NOTIFICATIONS, HIDE_NOTIFICATIONS_CENTER } from 'vs/workbench/browser/parts/notifications/notificationsCommands'; @@ -27,7 +26,7 @@ export class ClearNotificationAction extends Action { super(id, label, 'clear-notification-action'); } - run(notification: INotificationViewItem): TPromise { + run(notification: INotificationViewItem): Promise { this.commandService.executeCommand(CLEAR_NOTIFICATION, notification); return Promise.resolve(void 0); @@ -47,7 +46,7 @@ export class ClearAllNotificationsAction extends Action { super(id, label, 'clear-all-notifications-action'); } - run(notification: INotificationViewItem): TPromise { + run(notification: INotificationViewItem): Promise { this.commandService.executeCommand(CLEAR_ALL_NOTIFICATIONS); return Promise.resolve(void 0); @@ -67,7 +66,7 @@ export class HideNotificationsCenterAction extends Action { super(id, label, 'hide-all-notifications-action'); } - run(notification: INotificationViewItem): TPromise { + run(notification: INotificationViewItem): Promise { this.commandService.executeCommand(HIDE_NOTIFICATIONS_CENTER); return Promise.resolve(void 0); @@ -87,7 +86,7 @@ export class ExpandNotificationAction extends Action { super(id, label, 'expand-notification-action'); } - run(notification: INotificationViewItem): TPromise { + run(notification: INotificationViewItem): Promise { this.commandService.executeCommand(EXPAND_NOTIFICATION, notification); return Promise.resolve(void 0); @@ -107,7 +106,7 @@ export class CollapseNotificationAction extends Action { super(id, label, 'collapse-notification-action'); } - run(notification: INotificationViewItem): TPromise { + run(notification: INotificationViewItem): Promise { this.commandService.executeCommand(COLLAPSE_NOTIFICATION, notification); return Promise.resolve(void 0); @@ -145,7 +144,7 @@ export class CopyNotificationMessageAction extends Action { super(id, label); } - run(notification: INotificationViewItem): TPromise { + run(notification: INotificationViewItem): Promise { this.clipboardService.writeText(notification.message.raw); return Promise.resolve(void 0); @@ -161,7 +160,7 @@ export class NotificationActionRunner extends ActionRunner { super(); } - protected runAction(action: IAction, context: INotificationViewItem): TPromise { + protected runAction(action: IAction, context: INotificationViewItem): Promise { /* __GDPR__ "workbenchActionExecuted" : { diff --git a/src/vs/workbench/browser/parts/panel/panelActions.ts b/src/vs/workbench/browser/parts/panel/panelActions.ts index 879f869d160..53cd2e76c1e 100644 --- a/src/vs/workbench/browser/parts/panel/panelActions.ts +++ b/src/vs/workbench/browser/parts/panel/panelActions.ts @@ -5,7 +5,6 @@ import 'vs/css!./media/panelpart'; import * as nls from 'vs/nls'; -import { TPromise } from 'vs/base/common/winjs.base'; import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { KeyMod, KeyCode } from 'vs/base/common/keyCodes'; import { Action } from 'vs/base/common/actions'; @@ -30,7 +29,7 @@ export class ClosePanelAction extends Action { super(id, name, 'hide-panel-action'); } - run(): TPromise { + run(): Thenable { return this.partService.setPanelHidden(true); } } @@ -48,7 +47,7 @@ export class TogglePanelAction extends Action { super(id, name, partService.isVisible(Parts.PANEL_PART) ? 'panel expanded' : 'panel'); } - run(): TPromise { + run(): Thenable { return this.partService.setPanelHidden(this.partService.isVisible(Parts.PANEL_PART)); } } @@ -67,7 +66,7 @@ class FocusPanelAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { // Show panel if (!this.partService.isVisible(Parts.PANEL_PART)) { @@ -79,6 +78,7 @@ class FocusPanelAction extends Action { if (panel) { panel.focus(); } + return Promise.resolve(true); } } @@ -99,23 +99,29 @@ export class TogglePanelPositionAction extends Action { @IPartService private partService: IPartService, ) { super(id, label, partService.getPanelPosition() === Position.RIGHT ? 'move-panel-to-bottom' : 'move-panel-to-right'); + this.toDispose = []; + const setClassAndLabel = () => { const positionRight = this.partService.getPanelPosition() === Position.RIGHT; this.class = positionRight ? 'move-panel-to-bottom' : 'move-panel-to-right'; this.label = positionRight ? TogglePanelPositionAction.MOVE_TO_BOTTOM_LABEL : TogglePanelPositionAction.MOVE_TO_RIGHT_LABEL; }; + this.toDispose.push(partService.onEditorLayout(() => setClassAndLabel())); + setClassAndLabel(); } - run(): TPromise { + run(): Thenable { const position = this.partService.getPanelPosition(); + return this.partService.setPanelPosition(position === Position.BOTTOM ? Position.RIGHT : Position.BOTTOM); } dispose(): void { super.dispose(); + this.toDispose = dispose(this.toDispose); } } @@ -136,7 +142,9 @@ export class ToggleMaximizedPanelAction extends Action { @IPartService private partService: IPartService ) { super(id, label, partService.isPanelMaximized() ? 'minimize-panel-action' : 'maximize-panel-action'); + this.toDispose = []; + this.toDispose.push(partService.onEditorLayout(() => { const maximized = this.partService.isPanelMaximized(); this.class = maximized ? 'minimize-panel-action' : 'maximize-panel-action'; @@ -144,13 +152,15 @@ export class ToggleMaximizedPanelAction extends Action { })); } - run(): TPromise { - const thenable: Thenable = !this.partService.isVisible(Parts.PANEL_PART) ? this.partService.setPanelHidden(false) : Promise.resolve(null); - return thenable.then(() => this.partService.toggleMaximizedPanel()); + run(): Thenable { + const promise: Thenable = !this.partService.isVisible(Parts.PANEL_PART) ? this.partService.setPanelHidden(false) : Promise.resolve(null); + + return promise.then(() => this.partService.toggleMaximizedPanel()); } dispose(): void { super.dispose(); + this.toDispose = dispose(this.toDispose); } } @@ -164,7 +174,7 @@ export class PanelActivityAction extends ActivityAction { super(activity); } - run(event: any): TPromise { + run(event: any): Thenable { return this.panelService.openPanel(this.activity.id, true).then(() => this.activate()); } } diff --git a/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts b/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts index 6b35049126f..d2cd171ed10 100644 --- a/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts +++ b/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts @@ -4,7 +4,6 @@ *--------------------------------------------------------------------------------------------*/ import 'vs/css!./media/titlebarpart'; -import { TPromise } from 'vs/base/common/winjs.base'; import * as paths from 'vs/base/common/paths'; import { Part } from 'vs/workbench/browser/part'; import { ITitleService, ITitleProperties } from 'vs/workbench/services/title/common/titleService'; @@ -596,7 +595,7 @@ class ShowItemInFolderAction extends Action { super('showItemInFolder.action.id', label); } - run(): TPromise { + run(): Thenable { return this.windowsService.showItemInFolder(this.path); } } diff --git a/src/vs/workbench/browser/viewlet.ts b/src/vs/workbench/browser/viewlet.ts index 257f6ee510c..f3c1a3c74d6 100644 --- a/src/vs/workbench/browser/viewlet.ts +++ b/src/vs/workbench/browser/viewlet.ts @@ -4,7 +4,6 @@ *--------------------------------------------------------------------------------------------*/ import * as nls from 'vs/nls'; -import { TPromise } from 'vs/base/common/winjs.base'; import * as DOM from 'vs/base/browser/dom'; import { Registry } from 'vs/platform/registry/common/platform'; import { Action, IAction } from 'vs/base/common/actions'; @@ -135,7 +134,7 @@ export class ShowViewletAction extends Action { this.enabled = !!this.viewletService && !!this.editorGroupService; } - run(): TPromise { + run(): Promise { // Pass focus to viewlet if not open or focused if (this.otherViewletShowing() || !this.sidebarHasFocus()) { diff --git a/src/vs/workbench/common/actions.ts b/src/vs/workbench/common/actions.ts index 64b90d67df6..23f9607cfc8 100644 --- a/src/vs/workbench/common/actions.ts +++ b/src/vs/workbench/common/actions.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import { Registry } from 'vs/platform/registry/common/platform'; import { KeybindingsRegistry, KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { ICommandHandler, CommandsRegistry } from 'vs/platform/commands/common/commands'; @@ -30,14 +29,14 @@ export interface IWorkbenchActionRegistry { Registry.add(Extensions.WorkbenchActions, new class implements IWorkbenchActionRegistry { registerWorkbenchAction(descriptor: SyncActionDescriptor, alias: string, category?: string, when?: ContextKeyExpr): IDisposable { - return this._registerWorkbenchCommandFromAction(descriptor, alias, category, when); + return this.registerWorkbenchCommandFromAction(descriptor, alias, category, when); } - private _registerWorkbenchCommandFromAction(descriptor: SyncActionDescriptor, alias: string, category?: string, when?: ContextKeyExpr): IDisposable { + private registerWorkbenchCommandFromAction(descriptor: SyncActionDescriptor, alias: string, category?: string, when?: ContextKeyExpr): IDisposable { let registrations: IDisposable[] = []; // command - registrations.push(CommandsRegistry.registerCommand(descriptor.id, this._createCommandHandler(descriptor))); + registrations.push(CommandsRegistry.registerCommand(descriptor.id, this.createCommandHandler(descriptor))); // keybinding const weight = (typeof descriptor.keybindingWeight === 'undefined' ? KeybindingWeight.WorkbenchContrib : descriptor.keybindingWeight); @@ -82,19 +81,20 @@ Registry.add(Extensions.WorkbenchActions, new class implements IWorkbenchActionR return combinedDisposable(registrations); } - private _createCommandHandler(descriptor: SyncActionDescriptor): ICommandHandler { + private createCommandHandler(descriptor: SyncActionDescriptor): ICommandHandler { return (accessor, args) => { const notificationService = accessor.get(INotificationService); const instantiationService = accessor.get(IInstantiationService); const lifecycleService = accessor.get(ILifecycleService); - TPromise.as(this._triggerAndDisposeAction(instantiationService, lifecycleService, descriptor, args)).then(null, err => { + Promise.resolve(this.triggerAndDisposeAction(instantiationService, lifecycleService, descriptor, args)).then(null, err => { notificationService.error(err); }); }; } - private _triggerAndDisposeAction(instantiationService: IInstantiationService, lifecycleService: ILifecycleService, descriptor: SyncActionDescriptor, args: any): Thenable { + private triggerAndDisposeAction(instantiationService: IInstantiationService, lifecycleService: ILifecycleService, descriptor: SyncActionDescriptor, args: any): Thenable { + // run action when workbench is created return lifecycleService.when(LifecyclePhase.Running).then(() => { const actionInstance = instantiationService.createInstance(descriptor.syncDescriptor); @@ -110,15 +110,17 @@ Registry.add(Extensions.WorkbenchActions, new class implements IWorkbenchActionR const from = args && args.from || 'keybinding'; - return TPromise.as(actionInstance.run(undefined, { from })).then(() => { + return Promise.resolve(actionInstance.run(undefined, { from })).then(() => { actionInstance.dispose(); - }, (err) => { + }, err => { actionInstance.dispose(); - return TPromise.wrapError(err); + + return Promise.reject(err); }); } catch (err) { actionInstance.dispose(); - return TPromise.wrapError(err); + + return Promise.reject(err); } }); } diff --git a/src/vs/workbench/common/notifications.ts b/src/vs/workbench/common/notifications.ts index 498d5059066..c02358cca0d 100644 --- a/src/vs/workbench/common/notifications.ts +++ b/src/vs/workbench/common/notifications.ts @@ -9,7 +9,6 @@ import { Event, Emitter, once } from 'vs/base/common/event'; import { Disposable } from 'vs/base/common/lifecycle'; import { isPromiseCanceledError, isErrorWithActions } from 'vs/base/common/errors'; import { Action } from 'vs/base/common/actions'; -import { TPromise } from 'vs/base/common/winjs.base'; export interface INotificationsModel { @@ -562,7 +561,7 @@ export class ChoiceAction extends Action { // Emit Event this._onDidRun.fire(); - return TPromise.as(void 0); + return Promise.resolve(void 0); }); this._keepOpen = choice.keepOpen; diff --git a/src/vs/workbench/electron-browser/actions.ts b/src/vs/workbench/electron-browser/actions.ts index f8577c4e785..dfdedf07557 100644 --- a/src/vs/workbench/electron-browser/actions.ts +++ b/src/vs/workbench/electron-browser/actions.ts @@ -6,7 +6,6 @@ import 'vs/css!./media/actions'; import { URI } from 'vs/base/common/uri'; -import { TPromise } from 'vs/base/common/winjs.base'; import { Action } from 'vs/base/common/actions'; import { IWindowService, IWindowsService, MenuBarVisibility } from 'vs/platform/windows/common/windows'; import * as nls from 'vs/nls'; @@ -55,10 +54,10 @@ export class CloseCurrentWindowAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { this.windowService.closeWindow(); - return TPromise.as(true); + return Promise.resolve(true); } } @@ -77,11 +76,11 @@ export class CloseWorkspaceAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { if (this.contextService.getWorkbenchState() === WorkbenchState.EMPTY) { this.notificationService.info(nls.localize('noWorkspaceOpened', "There is currently no workspace opened in this instance to close.")); - return TPromise.as(null); + return Promise.resolve(null); } return this.windowService.closeWorkspace(); @@ -101,7 +100,7 @@ export class NewWindowAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { return this.windowsService.openNewWindow(); } } @@ -115,7 +114,7 @@ export class ToggleFullScreenAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { return this.windowService.toggleFullScreen(); } } @@ -135,7 +134,7 @@ export class ToggleMenuBarAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { let currentVisibilityValue = this.configurationService.getValue(ToggleMenuBarAction.menuBarVisibilityKey); if (typeof currentVisibilityValue !== 'string') { currentVisibilityValue = 'default'; @@ -150,7 +149,7 @@ export class ToggleMenuBarAction extends Action { this.configurationService.updateValue(ToggleMenuBarAction.menuBarVisibilityKey, newVisibilityValue, ConfigurationTarget.USER); - return TPromise.as(null); + return Promise.resolve(null); } } @@ -163,7 +162,7 @@ export class ToggleDevToolsAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { return this.windowsService.toggleDevTools(); } } @@ -208,10 +207,10 @@ export class ZoomInAction extends BaseZoomAction { super(id, label, configurationService); } - run(): TPromise { + run(): Thenable { this.setConfiguredZoomLevel(webFrame.getZoomLevel() + 1); - return TPromise.as(true); + return Promise.resolve(true); } } @@ -228,10 +227,10 @@ export class ZoomOutAction extends BaseZoomAction { super(id, label, configurationService); } - run(): TPromise { + run(): Thenable { this.setConfiguredZoomLevel(webFrame.getZoomLevel() - 1); - return TPromise.as(true); + return Promise.resolve(true); } } @@ -248,10 +247,10 @@ export class ZoomResetAction extends BaseZoomAction { super(id, label, configurationService); } - run(): TPromise { + run(): Thenable { this.setConfiguredZoomLevel(0); - return TPromise.as(true); + return Promise.resolve(true); } } @@ -268,7 +267,7 @@ export class ReloadWindowAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { return this.windowService.reloadWindow().then(() => true); } } @@ -286,7 +285,7 @@ export class ReloadWindowWithExtensionsDisabledAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { return this.windowService.reloadWindow({ _: [], 'disable-extensions': true }).then(() => true); } } @@ -314,7 +313,7 @@ export abstract class BaseSwitchWindow extends Action { protected abstract isQuickNavigate(): boolean; - run(): TPromise { + run(): Thenable { const currentWindowId = this.windowService.getCurrentWindowId(); return this.windowsService.getWindows().then(windows => { @@ -424,7 +423,7 @@ export abstract class BaseOpenRecentAction extends Action { protected abstract isQuickNavigate(): boolean; - run(): TPromise { + run(): Thenable { return this.windowService.getRecentlyOpened() .then(({ workspaces, files }) => this.openRecent(workspaces, files)); } @@ -559,7 +558,7 @@ export class OpenIssueReporterAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { return this.issueService.openReporter() .then(() => true); } @@ -577,7 +576,7 @@ export class OpenProcessExplorer extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { return this.issueService.openProcessExplorer() .then(() => true); } @@ -595,7 +594,7 @@ export class ReportPerformanceIssueUsingReporterAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { // TODO: Reporter should send timings table as well return this.issueService.openReporter({ issueType: IssueType.PerformanceIssue }) .then(() => true); @@ -618,7 +617,7 @@ export class KeybindingsReferenceAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { window.open(KeybindingsReferenceAction.URL); return null; } @@ -639,7 +638,7 @@ export class OpenDocumentationUrlAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { window.open(OpenDocumentationUrlAction.URL); return null; } @@ -660,7 +659,7 @@ export class OpenIntroductoryVideosUrlAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { window.open(OpenIntroductoryVideosUrlAction.URL); return null; } @@ -681,7 +680,7 @@ export class OpenTipsAndTricksUrlAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { window.open(OpenTipsAndTricksUrlAction.URL); return null; } @@ -696,7 +695,7 @@ export class ToggleSharedProcessAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { return this.windowsService.toggleSharedProcess(); } } @@ -719,7 +718,7 @@ export abstract class BaseNavigationAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { const isEditorFocus = this.partService.hasFocus(Parts.EDITOR_PART); const isPanelFocus = this.partService.hasFocus(Parts.PANEL_PART); const isSidebarFocus = this.partService.hasFocus(Parts.SIDEBAR_PART); @@ -739,24 +738,24 @@ export abstract class BaseNavigationAction extends Action { return this.navigateOnSidebarFocus(isSidebarPositionLeft, isPanelPositionDown); } - return TPromise.as(false); + return Promise.resolve(false); } - protected navigateOnEditorFocus(_isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): TPromise { - return TPromise.as(true); + protected navigateOnEditorFocus(_isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): Promise { + return Promise.resolve(true); } - protected navigateOnPanelFocus(_isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): TPromise { - return TPromise.as(true); + protected navigateOnPanelFocus(_isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): Promise { + return Promise.resolve(true); } - protected navigateOnSidebarFocus(_isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): TPromise { - return TPromise.as(true); + protected navigateOnSidebarFocus(_isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): Promise { + return Promise.resolve(true); } - protected navigateToPanel(): TPromise { + protected navigateToPanel(): Thenable { if (!this.partService.isVisible(Parts.PANEL_PART)) { - return TPromise.as(false); + return Promise.resolve(false); } const activePanelId = this.panelService.getActivePanel().getId(); @@ -764,9 +763,9 @@ export abstract class BaseNavigationAction extends Action { return this.panelService.openPanel(activePanelId, true); } - protected navigateToSidebar(): TPromise { + protected navigateToSidebar(): Promise { if (!this.partService.isVisible(Parts.SIDEBAR_PART)) { - return TPromise.as(false); + return Promise.resolve(false); } const activeViewletId = this.viewletService.getActiveViewlet().getId(); @@ -774,23 +773,23 @@ export abstract class BaseNavigationAction extends Action { return this.viewletService.openViewlet(activeViewletId, true); } - protected navigateAcrossEditorGroup(direction: GroupDirection): TPromise { + protected navigateAcrossEditorGroup(direction: GroupDirection): Promise { return this.doNavigateToEditorGroup({ direction }); } - protected navigateToEditorGroup(location: GroupLocation): TPromise { + protected navigateToEditorGroup(location: GroupLocation): Promise { return this.doNavigateToEditorGroup({ location }); } - private doNavigateToEditorGroup(scope: IFindGroupScope): TPromise { + private doNavigateToEditorGroup(scope: IFindGroupScope): Promise { const targetGroup = this.editorGroupService.findGroup(scope, this.editorGroupService.activeGroup); if (targetGroup) { targetGroup.focus(); - return TPromise.as(true); + return Promise.resolve(true); } - return TPromise.as(false); + return Promise.resolve(false); } } @@ -810,22 +809,22 @@ export class NavigateLeftAction extends BaseNavigationAction { super(id, label, editorGroupService, panelService, partService, viewletService); } - protected navigateOnEditorFocus(isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): TPromise { + protected navigateOnEditorFocus(isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): Promise { return this.navigateAcrossEditorGroup(GroupDirection.LEFT) .then(didNavigate => { if (didNavigate) { - return TPromise.as(true); + return Promise.resolve(true); } if (isSidebarPositionLeft) { return this.navigateToSidebar(); } - return TPromise.as(false); + return Promise.resolve(false); }); } - protected navigateOnPanelFocus(isSidebarPositionLeft: boolean, isPanelPositionDown: boolean): TPromise { + protected navigateOnPanelFocus(isSidebarPositionLeft: boolean, isPanelPositionDown: boolean): Promise { if (isPanelPositionDown && isSidebarPositionLeft) { return this.navigateToSidebar(); } @@ -834,15 +833,15 @@ export class NavigateLeftAction extends BaseNavigationAction { return this.navigateToEditorGroup(GroupLocation.LAST); } - return TPromise.as(false); + return Promise.resolve(false); } - protected navigateOnSidebarFocus(isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): TPromise { + protected navigateOnSidebarFocus(isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): Promise { if (!isSidebarPositionLeft) { return this.navigateToEditorGroup(GroupLocation.LAST); } - return TPromise.as(false); + return Promise.resolve(false); } } @@ -862,11 +861,11 @@ export class NavigateRightAction extends BaseNavigationAction { super(id, label, editorGroupService, panelService, partService, viewletService); } - protected navigateOnEditorFocus(isSidebarPositionLeft: boolean, isPanelPositionDown: boolean): TPromise { + protected navigateOnEditorFocus(isSidebarPositionLeft: boolean, isPanelPositionDown: boolean): Promise { return this.navigateAcrossEditorGroup(GroupDirection.RIGHT) .then(didNavigate => { if (didNavigate) { - return TPromise.as(true); + return Promise.resolve(true); } if (!isPanelPositionDown) { @@ -877,24 +876,24 @@ export class NavigateRightAction extends BaseNavigationAction { return this.navigateToSidebar(); } - return TPromise.as(false); + return Promise.resolve(false); }); } - protected navigateOnPanelFocus(isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): TPromise { + protected navigateOnPanelFocus(isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): Promise { if (!isSidebarPositionLeft) { return this.navigateToSidebar(); } - return TPromise.as(false); + return Promise.resolve(false); } - protected navigateOnSidebarFocus(isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): TPromise { + protected navigateOnSidebarFocus(isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): Promise { if (isSidebarPositionLeft) { return this.navigateToEditorGroup(GroupLocation.FIRST); } - return TPromise.as(false); + return Promise.resolve(false); } } @@ -914,16 +913,16 @@ export class NavigateUpAction extends BaseNavigationAction { super(id, label, editorGroupService, panelService, partService, viewletService); } - protected navigateOnEditorFocus(_isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): TPromise { + protected navigateOnEditorFocus(_isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): Promise { return this.navigateAcrossEditorGroup(GroupDirection.UP); } - protected navigateOnPanelFocus(_isSidebarPositionLeft: boolean, isPanelPositionDown: boolean): TPromise { + protected navigateOnPanelFocus(_isSidebarPositionLeft: boolean, isPanelPositionDown: boolean): Promise { if (isPanelPositionDown) { return this.navigateToEditorGroup(GroupLocation.LAST); } - return TPromise.as(false); + return Promise.resolve(false); } } @@ -943,18 +942,18 @@ export class NavigateDownAction extends BaseNavigationAction { super(id, label, editorGroupService, panelService, partService, viewletService); } - protected navigateOnEditorFocus(_isSidebarPositionLeft: boolean, isPanelPositionDown: boolean): TPromise { + protected navigateOnEditorFocus(_isSidebarPositionLeft: boolean, isPanelPositionDown: boolean): Promise { return this.navigateAcrossEditorGroup(GroupDirection.DOWN) .then(didNavigate => { if (didNavigate) { - return TPromise.as(true); + return Promise.resolve(true); } if (isPanelPositionDown) { return this.navigateToPanel(); } - return TPromise.as(false); + return Promise.resolve(false); }); } } @@ -1006,9 +1005,9 @@ export class IncreaseViewSizeAction extends BaseResizeViewAction { super(id, label, partService); } - run(): TPromise { + run(): Thenable { this.resizePart(BaseResizeViewAction.RESIZE_INCREMENT); - return TPromise.as(true); + return Promise.resolve(true); } } @@ -1026,9 +1025,9 @@ export class DecreaseViewSizeAction extends BaseResizeViewAction { super(id, label, partService); } - run(): TPromise { + run(): Thenable { this.resizePart(-BaseResizeViewAction.RESIZE_INCREMENT); - return TPromise.as(true); + return Promise.resolve(true); } } @@ -1045,7 +1044,7 @@ export class NewWindowTab extends Action { super(NewWindowTab.ID, NewWindowTab.LABEL); } - run(): TPromise { + run(): Thenable { return this.windowsService.newWindowTab().then(() => true); } } @@ -1063,7 +1062,7 @@ export class ShowPreviousWindowTab extends Action { super(ShowPreviousWindowTab.ID, ShowPreviousWindowTab.LABEL); } - run(): TPromise { + run(): Thenable { return this.windowsService.showPreviousWindowTab().then(() => true); } } @@ -1081,7 +1080,7 @@ export class ShowNextWindowTab extends Action { super(ShowNextWindowTab.ID, ShowNextWindowTab.LABEL); } - run(): TPromise { + run(): Thenable { return this.windowsService.showNextWindowTab().then(() => true); } } @@ -1099,7 +1098,7 @@ export class MoveWindowTabToNewWindow extends Action { super(MoveWindowTabToNewWindow.ID, MoveWindowTabToNewWindow.LABEL); } - run(): TPromise { + run(): Thenable { return this.windowsService.moveWindowTabToNewWindow().then(() => true); } } @@ -1117,7 +1116,7 @@ export class MergeAllWindowTabs extends Action { super(MergeAllWindowTabs.ID, MergeAllWindowTabs.LABEL); } - run(): TPromise { + run(): Thenable { return this.windowsService.mergeAllWindowTabs().then(() => true); } } @@ -1135,7 +1134,7 @@ export class ToggleWindowTabsBar extends Action { super(ToggleWindowTabsBar.ID, ToggleWindowTabsBar.LABEL); } - run(): TPromise { + run(): Thenable { return this.windowsService.toggleWindowTabsBar().then(() => true); } } @@ -1152,12 +1151,12 @@ export class OpenTwitterUrlAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { if (product.twitterUrl) { - return TPromise.as(shell.openExternal(product.twitterUrl)); + return Promise.resolve(shell.openExternal(product.twitterUrl)); } - return TPromise.as(false); + return Promise.resolve(false); } } @@ -1173,12 +1172,12 @@ export class OpenRequestFeatureUrlAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { if (product.requestFeatureUrl) { - return TPromise.as(shell.openExternal(product.requestFeatureUrl)); + return Promise.resolve(shell.openExternal(product.requestFeatureUrl)); } - return TPromise.as(false); + return Promise.resolve(false); } } @@ -1194,17 +1193,17 @@ export class OpenLicenseUrlAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { if (product.licenseUrl) { if (language) { const queryArgChar = product.licenseUrl.indexOf('?') > 0 ? '&' : '?'; - return TPromise.as(shell.openExternal(`${product.licenseUrl}${queryArgChar}lang=${language}`)); + return Promise.resolve(shell.openExternal(`${product.licenseUrl}${queryArgChar}lang=${language}`)); } else { - return TPromise.as(shell.openExternal(product.licenseUrl)); + return Promise.resolve(shell.openExternal(product.licenseUrl)); } } - return TPromise.as(false); + return Promise.resolve(false); } } @@ -1221,18 +1220,18 @@ export class OpenPrivacyStatementUrlAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { if (product.privacyStatementUrl) { if (language) { const queryArgChar = product.privacyStatementUrl.indexOf('?') > 0 ? '&' : '?'; - return TPromise.as(shell.openExternal(`${product.privacyStatementUrl}${queryArgChar}lang=${language}`)); + return Promise.resolve(shell.openExternal(`${product.privacyStatementUrl}${queryArgChar}lang=${language}`)); } else { - return TPromise.as(shell.openExternal(product.privacyStatementUrl)); + return Promise.resolve(shell.openExternal(product.privacyStatementUrl)); } } - return TPromise.as(false); + return Promise.resolve(false); } } @@ -1249,7 +1248,7 @@ export class ShowAboutDialogAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { return this.windowsService.openAboutDialog(); } } @@ -1268,7 +1267,7 @@ export class InspectContextKeysAction extends Action { super(id, label); } - run(): TPromise { + run(): Thenable { const disposables: IDisposable[] = []; const stylesheet = createStyleSheet(); @@ -1310,6 +1309,6 @@ export class InspectContextKeysAction extends Action { dispose(disposables); }, null, disposables); - return TPromise.as(null); + return Promise.resolve(null); } } diff --git a/src/vs/workbench/parts/codeEditor/electron-browser/toggleMinimap.ts b/src/vs/workbench/parts/codeEditor/electron-browser/toggleMinimap.ts index d5a90194e07..dd032a17ec2 100644 --- a/src/vs/workbench/parts/codeEditor/electron-browser/toggleMinimap.ts +++ b/src/vs/workbench/parts/codeEditor/electron-browser/toggleMinimap.ts @@ -8,7 +8,6 @@ import { IConfigurationService, ConfigurationTarget } from 'vs/platform/configur import { Registry } from 'vs/platform/registry/common/platform'; import { IWorkbenchActionRegistry, Extensions as ActionExtensions } from 'vs/workbench/common/actions'; import { Action } from 'vs/base/common/actions'; -import { TPromise } from 'vs/base/common/winjs.base'; import { SyncActionDescriptor, MenuRegistry, MenuId } from 'vs/platform/actions/common/actions'; export class ToggleMinimapAction extends Action { @@ -23,7 +22,7 @@ export class ToggleMinimapAction extends Action { super(id, label); } - public run(): TPromise { + public run(): Promise { const newValue = !this._configurationService.getValue('editor.minimap.enabled'); return this._configurationService.updateValue('editor.minimap.enabled', newValue, ConfigurationTarget.USER); } diff --git a/src/vs/workbench/parts/codeEditor/electron-browser/toggleMultiCursorModifier.ts b/src/vs/workbench/parts/codeEditor/electron-browser/toggleMultiCursorModifier.ts index 8cd23101245..fdcd677e019 100644 --- a/src/vs/workbench/parts/codeEditor/electron-browser/toggleMultiCursorModifier.ts +++ b/src/vs/workbench/parts/codeEditor/electron-browser/toggleMultiCursorModifier.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import * as nls from 'vs/nls'; import * as platform from 'vs/base/common/platform'; import { Registry } from 'vs/platform/registry/common/platform'; @@ -30,7 +29,7 @@ export class ToggleMultiCursorModifierAction extends Action { super(id, label); } - public run(): TPromise { + public run(): Promise { const editorConf = this.configurationService.getValue<{ multiCursorModifier: 'ctrlCmd' | 'alt' }>('editor'); const newValue: 'ctrlCmd' | 'alt' = (editorConf.multiCursorModifier === 'ctrlCmd' ? 'alt' : 'ctrlCmd'); diff --git a/src/vs/workbench/parts/codeEditor/electron-browser/toggleRenderControlCharacter.ts b/src/vs/workbench/parts/codeEditor/electron-browser/toggleRenderControlCharacter.ts index 98308fcffd2..f7f7e580297 100644 --- a/src/vs/workbench/parts/codeEditor/electron-browser/toggleRenderControlCharacter.ts +++ b/src/vs/workbench/parts/codeEditor/electron-browser/toggleRenderControlCharacter.ts @@ -8,7 +8,6 @@ import { IConfigurationService, ConfigurationTarget } from 'vs/platform/configur import { Registry } from 'vs/platform/registry/common/platform'; import { IWorkbenchActionRegistry, Extensions as ActionExtensions } from 'vs/workbench/common/actions'; import { Action } from 'vs/base/common/actions'; -import { TPromise } from 'vs/base/common/winjs.base'; import { SyncActionDescriptor, MenuRegistry, MenuId } from 'vs/platform/actions/common/actions'; export class ToggleRenderControlCharacterAction extends Action { @@ -24,7 +23,7 @@ export class ToggleRenderControlCharacterAction extends Action { super(id, label); } - public run(): TPromise { + public run(): Promise { let newRenderControlCharacters = !this._configurationService.getValue('editor.renderControlCharacters'); return this._configurationService.updateValue('editor.renderControlCharacters', newRenderControlCharacters, ConfigurationTarget.USER); } diff --git a/src/vs/workbench/parts/codeEditor/electron-browser/toggleRenderWhitespace.ts b/src/vs/workbench/parts/codeEditor/electron-browser/toggleRenderWhitespace.ts index c87432e246b..8b3f0bf808e 100644 --- a/src/vs/workbench/parts/codeEditor/electron-browser/toggleRenderWhitespace.ts +++ b/src/vs/workbench/parts/codeEditor/electron-browser/toggleRenderWhitespace.ts @@ -8,7 +8,6 @@ import { IConfigurationService, ConfigurationTarget } from 'vs/platform/configur import { Registry } from 'vs/platform/registry/common/platform'; import { IWorkbenchActionRegistry, Extensions as ActionExtensions } from 'vs/workbench/common/actions'; import { Action } from 'vs/base/common/actions'; -import { TPromise } from 'vs/base/common/winjs.base'; import { SyncActionDescriptor, MenuRegistry, MenuId } from 'vs/platform/actions/common/actions'; export class ToggleRenderWhitespaceAction extends Action { @@ -24,7 +23,7 @@ export class ToggleRenderWhitespaceAction extends Action { super(id, label); } - public run(): TPromise { + public run(): Promise { const renderWhitespace = this._configurationService.getValue('editor.renderWhitespace'); let newRenderWhitespace: string; diff --git a/src/vs/workbench/parts/feedback/electron-browser/feedbackStatusbarItem.ts b/src/vs/workbench/parts/feedback/electron-browser/feedbackStatusbarItem.ts index 189574eb54a..28ae869f96a 100644 --- a/src/vs/workbench/parts/feedback/electron-browser/feedbackStatusbarItem.ts +++ b/src/vs/workbench/parts/feedback/electron-browser/feedbackStatusbarItem.ts @@ -16,7 +16,6 @@ import { IWorkspaceConfigurationService } from 'vs/workbench/services/configurat import { IConfigurationChangeEvent } from 'vs/platform/configuration/common/configuration'; import { clearNode, EventHelper, addClass, removeClass, addDisposableListener } from 'vs/base/browser/dom'; import { localize } from 'vs/nls'; -import { TPromise } from 'vs/base/common/winjs.base'; import { Action } from 'vs/base/common/actions'; class TwitterFeedbackService implements IFeedbackDelegate { @@ -111,7 +110,7 @@ export class FeedbackStatusbarItem extends Themable implements IStatusbarItem { this.contextMenuService.showContextMenu({ getAnchor: () => this.container, - getActions: () => TPromise.as([this.hideAction]) + getActions: () => Promise.resolve([this.hideAction]) }); })); @@ -161,7 +160,7 @@ class HideAction extends Action { super('feedback.hide', localize('hide', "Hide")); } - run(extensionId: string): TPromise { + run(extensionId: string): Promise { return this.configurationService.updateValue(FEEDBACK_VISIBLE_CONFIG, false); } } diff --git a/src/vs/workbench/parts/files/electron-browser/saveErrorHandler.ts b/src/vs/workbench/parts/files/electron-browser/saveErrorHandler.ts index 1cd5244bfab..bbdff6dcb19 100644 --- a/src/vs/workbench/parts/files/electron-browser/saveErrorHandler.ts +++ b/src/vs/workbench/parts/files/electron-browser/saveErrorHandler.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import * as nls from 'vs/nls'; import { toErrorMessage } from 'vs/base/common/errorMessage'; import * as paths from 'vs/base/common/paths'; @@ -198,7 +197,7 @@ class ResolveConflictLearnMoreAction extends Action { super('workbench.files.action.resolveConflictLearnMore', nls.localize('learnMore', "Learn More")); } - run(): TPromise { + run(): Promise { return this.openerService.open(URI.parse('https://go.microsoft.com/fwlink/?linkid=868264')); } } @@ -211,7 +210,7 @@ class DoNotShowResolveConflictLearnMoreAction extends Action { super('workbench.files.action.resolveConflictLearnMoreDoNotShowAgain', nls.localize('dontShowAgain', "Don't Show Again")); } - run(notification: IDisposable): TPromise { + run(notification: IDisposable): Promise { this.storageService.store(LEARN_MORE_DIRTY_WRITE_IGNORE_KEY, true); // Hide notification @@ -234,7 +233,7 @@ class ResolveSaveConflictAction extends Action { super('workbench.files.action.resolveConflict', nls.localize('compareChanges', "Compare")); } - run(): TPromise { + run(): Thenable { if (!this.model.isDisposed()) { const resource = this.model.getResource(); const name = paths.basename(resource.fsPath); @@ -276,7 +275,7 @@ class SaveElevatedAction extends Action { super('workbench.files.action.saveElevated', triedToMakeWriteable ? nls.localize('overwriteElevated', "Overwrite as Admin...") : nls.localize('saveElevated', "Retry as Admin...")); } - run(): TPromise { + run(): Promise { if (!this.model.isDisposed()) { this.model.save({ writeElevated: true, @@ -296,7 +295,7 @@ class OverwriteReadonlyAction extends Action { super('workbench.files.action.overwrite', nls.localize('overwrite', "Overwrite")); } - run(): TPromise { + run(): Promise { if (!this.model.isDisposed()) { this.model.save({ overwriteReadonly: true }); } diff --git a/src/vs/workbench/services/contextview/electron-browser/contextmenuService.ts b/src/vs/workbench/services/contextview/electron-browser/contextmenuService.ts index 574c24e0bc5..cc219f85a0c 100644 --- a/src/vs/workbench/services/contextview/electron-browser/contextmenuService.ts +++ b/src/vs/workbench/services/contextview/electron-browser/contextmenuService.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import { IAction, IActionRunner, ActionRunner } from 'vs/base/common/actions'; import { Separator } from 'vs/base/browser/ui/actionbar/actionbar'; import * as dom from 'vs/base/browser/dom'; @@ -142,7 +141,7 @@ export class ContextMenuService extends Disposable implements IContextMenuServic this.telemetryService.publicLog('workbenchActionExecuted', { id: actionToRun.id, from: 'contextMenu' }); const context = delegate.getActionsContext ? delegate.getActionsContext(event) : event; - const res = actionRunner.run(actionToRun, context) || TPromise.as(null); + const res = actionRunner.run(actionToRun, context) || Promise.resolve(null); res.then(null, e => this.notificationService.error(e)); } diff --git a/src/vs/workbench/services/history/electron-browser/history.ts b/src/vs/workbench/services/history/electron-browser/history.ts index ad08598913e..2ef8bc1d4a6 100644 --- a/src/vs/workbench/services/history/electron-browser/history.ts +++ b/src/vs/workbench/services/history/electron-browser/history.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import * as errors from 'vs/base/common/errors'; import { URI } from 'vs/base/common/uri'; import { IEditor } from 'vs/editor/common/editorCommon'; @@ -405,7 +404,7 @@ export class HistoryService extends Disposable implements IHistoryService { }); } - private doNavigate(location: IStackEntry, withSelection: boolean): TPromise { + private doNavigate(location: IStackEntry, withSelection: boolean): Thenable { const options: ITextEditorOptions = { revealIfOpened: true // support to navigate across editor groups };