diff --git a/src/vs/editor/contrib/links/getLinks.ts b/src/vs/editor/contrib/links/getLinks.ts index 185da7cc0e1..57d97eb31cf 100644 --- a/src/vs/editor/contrib/links/getLinks.ts +++ b/src/vs/editor/contrib/links/getLinks.ts @@ -7,7 +7,6 @@ import { onUnexpectedExternalError } from 'vs/base/common/errors'; import { URI } from 'vs/base/common/uri'; -import { TPromise } from 'vs/base/common/winjs.base'; import { Range, IRange } from 'vs/editor/common/core/range'; import { ITextModel } from 'vs/editor/common/model'; import { ILink, LinkProvider, LinkProviderRegistry } from 'vs/editor/common/modes'; @@ -45,7 +44,7 @@ export class Link implements ILink { try { return Promise.resolve(URI.parse(this._link.url)); } catch (e) { - return TPromise.wrapError(new Error('invalid')); + return Promise.reject(new Error('invalid')); } } @@ -57,11 +56,11 @@ export class Link implements ILink { return this.resolve(token); } - return TPromise.wrapError(new Error('missing')); + return Promise.reject(new Error('missing')); }); } - return TPromise.wrapError(new Error('missing')); + return Promise.reject(new Error('missing')); } } diff --git a/src/vs/workbench/api/electron-browser/mainThreadDocuments.ts b/src/vs/workbench/api/electron-browser/mainThreadDocuments.ts index cf0f1d0f816..86543321a9b 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadDocuments.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadDocuments.ts @@ -9,7 +9,6 @@ import { toErrorMessage } from 'vs/base/common/errorMessage'; import { IModelService, shouldSynchronizeModel } from 'vs/editor/common/services/modelService'; import { IDisposable, dispose, IReference } from 'vs/base/common/lifecycle'; import { TextFileModelChangeEvent, ITextFileService } from 'vs/workbench/services/textfile/common/textfiles'; -import { TPromise } from 'vs/base/common/winjs.base'; import { IFileService } from 'vs/platform/files/common/files'; import { IModeService } from 'vs/editor/common/services/modeService'; import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService'; @@ -176,10 +175,10 @@ export class MainThreadDocuments implements MainThreadDocumentsShape { $tryOpenDocument(_uri: UriComponents): Thenable { const uri = URI.revive(_uri); if (!uri.scheme || !(uri.fsPath || uri.authority)) { - return TPromise.wrapError(new Error(`Invalid uri. Scheme and authority or path must be set.`)); + return Promise.reject(new Error(`Invalid uri. Scheme and authority or path must be set.`)); } - let promise: TPromise; + let promise: Thenable; switch (uri.scheme) { case Schemas.untitled: promise = this._handleUnititledScheme(uri); @@ -192,14 +191,14 @@ export class MainThreadDocuments implements MainThreadDocumentsShape { return promise.then(success => { if (!success) { - return TPromise.wrapError(new Error('cannot open ' + uri.toString())); + return Promise.reject(new Error('cannot open ' + uri.toString())); } else if (!this._modelIsSynced[uri.toString()]) { - return TPromise.wrapError(new Error('cannot open ' + uri.toString() + '. Detail: Files above 50MB cannot be synchronized with extensions.')); + return Promise.reject(new Error('cannot open ' + uri.toString() + '. Detail: Files above 50MB cannot be synchronized with extensions.')); } else { return undefined; } }, err => { - return TPromise.wrapError(new Error('cannot open ' + uri.toString() + '. Detail: ' + toErrorMessage(err))); + return Promise.reject(new Error('cannot open ' + uri.toString() + '. Detail: ' + toErrorMessage(err))); }); } @@ -207,7 +206,7 @@ export class MainThreadDocuments implements MainThreadDocumentsShape { return this._doCreateUntitled(void 0, options ? options.language : void 0, options ? options.content : void 0); } - private _handleAsResourceInput(uri: URI): TPromise { + private _handleAsResourceInput(uri: URI): Thenable { return this._textModelResolverService.createModelReference(uri).then(ref => { this._modelReferenceCollection.add(ref); const result = !!ref.object; @@ -215,17 +214,17 @@ export class MainThreadDocuments implements MainThreadDocumentsShape { }); } - private _handleUnititledScheme(uri: URI): TPromise { + private _handleUnititledScheme(uri: URI): Thenable { let asFileUri = uri.with({ scheme: Schemas.file }); return this._fileService.resolveFile(asFileUri).then(stats => { // don't create a new file ontop of an existing file - return TPromise.wrapError(new Error('file already exists on disk')); + return Promise.reject(new Error('file already exists on disk')); }, err => { return this._doCreateUntitled(uri).then(resource => !!resource); }); } - private _doCreateUntitled(resource?: URI, modeId?: string, initialValue?: string): TPromise { + private _doCreateUntitled(resource?: URI, modeId?: string, initialValue?: string): Thenable { return this._untitledEditorService.loadOrCreate({ resource, modeId, diff --git a/src/vs/workbench/api/electron-browser/mainThreadEditors.ts b/src/vs/workbench/api/electron-browser/mainThreadEditors.ts index 2a4208d0d82..e17a797c077 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadEditors.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadEditors.ts @@ -11,7 +11,6 @@ import { disposed } from 'vs/base/common/errors'; import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { equals as objectEquals } from 'vs/base/common/objects'; import { URI, UriComponents } from 'vs/base/common/uri'; -import { TPromise } from 'vs/base/common/winjs.base'; import { IBulkEditService } from 'vs/editor/browser/services/bulkEditService'; import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService'; import { IRange } from 'vs/editor/common/core/range'; @@ -164,33 +163,33 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { $trySetSelections(id: string, selections: ISelection[]): Thenable { if (!this._documentsAndEditors.getEditor(id)) { - return TPromise.wrapError(disposed(`TextEditor(${id})`)); + return Promise.reject(disposed(`TextEditor(${id})`)); } this._documentsAndEditors.getEditor(id).setSelections(selections); - return TPromise.as(null); + return Promise.resolve(null); } $trySetDecorations(id: string, key: string, ranges: IDecorationOptions[]): Thenable { key = `${this._instanceId}-${key}`; if (!this._documentsAndEditors.getEditor(id)) { - return TPromise.wrapError(disposed(`TextEditor(${id})`)); + return Promise.reject(disposed(`TextEditor(${id})`)); } this._documentsAndEditors.getEditor(id).setDecorations(key, ranges); - return TPromise.as(null); + return Promise.resolve(null); } $trySetDecorationsFast(id: string, key: string, ranges: number[]): Thenable { key = `${this._instanceId}-${key}`; if (!this._documentsAndEditors.getEditor(id)) { - return TPromise.wrapError(disposed(`TextEditor(${id})`)); + return Promise.reject(disposed(`TextEditor(${id})`)); } this._documentsAndEditors.getEditor(id).setDecorationsFast(key, ranges); - return TPromise.as(null); + return Promise.resolve(null); } $tryRevealRange(id: string, range: IRange, revealType: TextEditorRevealType): Thenable { if (!this._documentsAndEditors.getEditor(id)) { - return TPromise.wrapError(disposed(`TextEditor(${id})`)); + return Promise.reject(disposed(`TextEditor(${id})`)); } this._documentsAndEditors.getEditor(id).revealRange(range, revealType); return undefined; @@ -198,17 +197,17 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { $trySetOptions(id: string, options: ITextEditorConfigurationUpdate): Thenable { if (!this._documentsAndEditors.getEditor(id)) { - return TPromise.wrapError(disposed(`TextEditor(${id})`)); + return Promise.reject(disposed(`TextEditor(${id})`)); } this._documentsAndEditors.getEditor(id).setConfiguration(options); - return TPromise.as(null); + return Promise.resolve(null); } $tryApplyEdits(id: string, modelVersionId: number, edits: ISingleEditOperation[], opts: IApplyEditsOptions): Thenable { if (!this._documentsAndEditors.getEditor(id)) { - return TPromise.wrapError(disposed(`TextEditor(${id})`)); + return Promise.reject(disposed(`TextEditor(${id})`)); } - return TPromise.as(this._documentsAndEditors.getEditor(id).applyEdits(modelVersionId, edits, opts)); + return Promise.resolve(this._documentsAndEditors.getEditor(id).applyEdits(modelVersionId, edits, opts)); } $tryApplyWorkspaceEdit(dto: WorkspaceEditDto): Thenable { @@ -218,9 +217,9 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { $tryInsertSnippet(id: string, template: string, ranges: IRange[], opts: IUndoStopOptions): Thenable { if (!this._documentsAndEditors.getEditor(id)) { - return TPromise.wrapError(disposed(`TextEditor(${id})`)); + return Promise.reject(disposed(`TextEditor(${id})`)); } - return TPromise.as(this._documentsAndEditors.getEditor(id).insertSnippet(template, ranges, opts)); + return Promise.resolve(this._documentsAndEditors.getEditor(id).insertSnippet(template, ranges, opts)); } $registerTextEditorDecorationType(key: string, options: IDecorationRenderOptions): void { @@ -239,7 +238,7 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { const editor = this._documentsAndEditors.getEditor(id); if (!editor) { - return TPromise.wrapError(new Error('No such TextEditor')); + return Promise.reject(new Error('No such TextEditor')); } const codeEditor = editor.getCodeEditor(); @@ -248,16 +247,16 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { const [diffEditor] = diffEditors.filter(d => d.getOriginalEditor().getId() === codeEditorId || d.getModifiedEditor().getId() === codeEditorId); if (diffEditor) { - return TPromise.as(diffEditor.getLineChanges()); + return Promise.resolve(diffEditor.getLineChanges()); } const dirtyDiffContribution = codeEditor.getContribution('editor.contrib.dirtydiff'); if (dirtyDiffContribution) { - return TPromise.as((dirtyDiffContribution as any).getChanges()); + return Promise.resolve((dirtyDiffContribution as any).getChanges()); } - return TPromise.as([]); + return Promise.resolve([]); } } @@ -277,7 +276,7 @@ CommandsRegistry.registerCommand('_workbench.open', function (accessor: Services if (resource && resource.scheme === 'command') { // do not allow to execute commands from here - return TPromise.as(void 0); + return Promise.resolve(void 0); } // finally, delegate to opener service diff --git a/src/vs/workbench/api/node/extHostApiCommands.ts b/src/vs/workbench/api/node/extHostApiCommands.ts index caafafe8a78..6fc1746eda8 100644 --- a/src/vs/workbench/api/node/extHostApiCommands.ts +++ b/src/vs/workbench/api/node/extHostApiCommands.ts @@ -5,7 +5,6 @@ 'use strict'; import { URI } from 'vs/base/common/uri'; -import { TPromise } from 'vs/base/common/winjs.base'; import { IDisposable } from 'vs/base/common/lifecycle'; import * as vscode from 'vscode'; import * as typeConverters from 'vs/workbench/api/node/extHostTypeConverters'; @@ -350,7 +349,7 @@ export class ExtHostApiCommands { return undefined; } if (value.rejectReason) { - return TPromise.wrapError(new Error(value.rejectReason)); + return Promise.reject(new Error(value.rejectReason)); } return typeConverters.WorkspaceEdit.to(value); }); diff --git a/src/vs/workbench/api/node/extHostDocumentData.ts b/src/vs/workbench/api/node/extHostDocumentData.ts index fec31cda756..bd910c1f57d 100644 --- a/src/vs/workbench/api/node/extHostDocumentData.ts +++ b/src/vs/workbench/api/node/extHostDocumentData.ts @@ -12,7 +12,6 @@ import { Range, Position, EndOfLine } from 'vs/workbench/api/node/extHostTypes'; import * as vscode from 'vscode'; import { getWordAtText, ensureValidWordDefinition } from 'vs/editor/common/model/wordHelper'; import { MainThreadDocumentsShape } from './extHost.protocol'; -import { TPromise } from 'vs/base/common/winjs.base'; import { Schemas } from 'vs/base/common/network'; const _modeId2WordDefinition = new Map(); @@ -101,7 +100,7 @@ export class ExtHostDocumentData extends MirrorTextModel { private _save(): Thenable { if (this._isDisposed) { - return TPromise.wrapError(new Error('Document has been closed')); + return Promise.reject(new Error('Document has been closed')); } return this._proxy.$trySaveDocument(this._uri); } diff --git a/src/vs/workbench/api/node/extHostDocuments.ts b/src/vs/workbench/api/node/extHostDocuments.ts index 53303a27602..c200032d0bf 100644 --- a/src/vs/workbench/api/node/extHostDocuments.ts +++ b/src/vs/workbench/api/node/extHostDocuments.ts @@ -8,7 +8,6 @@ import { Event, Emitter } from 'vs/base/common/event'; import { URI, UriComponents } from 'vs/base/common/uri'; import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import * as TypeConverters from './extHostTypeConverters'; -import { TPromise } from 'vs/base/common/winjs.base'; import * as vscode from 'vscode'; import { MainContext, MainThreadDocumentsShape, ExtHostDocumentsShape, IMainContext } from './extHost.protocol'; import { ExtHostDocumentData, setWordDefinitionFor } from './extHostDocumentData'; @@ -73,7 +72,7 @@ export class ExtHostDocuments implements ExtHostDocumentsShape { let cached = this._documentsAndEditors.getDocument(uri.toString()); if (cached) { - return TPromise.as(cached); + return Promise.resolve(cached); } let promise = this._documentLoader.get(uri.toString()); @@ -83,7 +82,7 @@ export class ExtHostDocuments implements ExtHostDocumentsShape { return this._documentsAndEditors.getDocument(uri.toString()); }, err => { this._documentLoader.delete(uri.toString()); - return TPromise.wrapError(err); + return Promise.reject(err); }); this._documentLoader.set(uri.toString(), promise); } diff --git a/src/vs/workbench/api/node/extHostLanguageFeatures.ts b/src/vs/workbench/api/node/extHostLanguageFeatures.ts index 5aac71c8638..2e37fe5dee8 100644 --- a/src/vs/workbench/api/node/extHostLanguageFeatures.ts +++ b/src/vs/workbench/api/node/extHostLanguageFeatures.ts @@ -5,7 +5,6 @@ 'use strict'; import { URI, UriComponents } from 'vs/base/common/uri'; -import { TPromise } from 'vs/base/common/winjs.base'; import { mixin } from 'vs/base/common/objects'; import * as vscode from 'vscode'; import * as typeConvert from 'vs/workbench/api/node/extHostTypeConverters'; @@ -132,7 +131,7 @@ class CodeLensAdapter { let resolve: Thenable; if (typeof this._provider.resolveCodeLens !== 'function' || lens.isResolved) { - resolve = TPromise.as(lens); + resolve = Promise.resolve(lens); } else { resolve = asThenable(() => this._provider.resolveCodeLens(lens, token)); } @@ -447,7 +446,7 @@ class NavigateTypeAdapter { resolveWorkspaceSymbol(symbol: WorkspaceSymbolDto, token: CancellationToken): Thenable { if (typeof this._provider.resolveWorkspaceSymbol !== 'function') { - return TPromise.as(symbol); + return Promise.resolve(symbol); } const item = this._symbolCache[symbol._id]; @@ -504,7 +503,7 @@ class RenameAdapter { resolveRenameLocation(resource: URI, position: IPosition, token: CancellationToken): Thenable { if (typeof this._provider.prepareRename !== 'function') { - return TPromise.as(undefined); + return Promise.resolve(undefined); } let doc = this._documents.getDocumentData(resource).document; @@ -622,13 +621,13 @@ class SuggestAdapter { resolveCompletionItem(resource: URI, position: IPosition, suggestion: modes.ISuggestion, token: CancellationToken): Thenable { if (typeof this._provider.resolveCompletionItem !== 'function') { - return TPromise.as(suggestion); + return Promise.resolve(suggestion); } const { _parentId, _id } = (suggestion); const item = this._cache.has(_parentId) && this._cache.get(_parentId)[_id]; if (!item) { - return TPromise.as(suggestion); + return Promise.resolve(suggestion); } return asThenable(() => this._provider.resolveCompletionItem(item, token)).then(resolvedItem => { @@ -928,7 +927,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { private _withAdapter(handle: number, ctor: { new(...args: any[]): A }, callback: (adapter: A) => Thenable): Thenable { let adapter = this._adapter.get(handle); if (!(adapter instanceof ctor)) { - return TPromise.wrapError(new Error('no adapter found')); + return Promise.reject(new Error('no adapter found')); } return callback(adapter); } diff --git a/src/vs/workbench/api/node/extHostTextEditor.ts b/src/vs/workbench/api/node/extHostTextEditor.ts index 5131242cf21..ba1b3b06468 100644 --- a/src/vs/workbench/api/node/extHostTextEditor.ts +++ b/src/vs/workbench/api/node/extHostTextEditor.ts @@ -8,7 +8,6 @@ import { ok } from 'vs/base/common/assert'; import { readonly, illegalArgument } from 'vs/base/common/errors'; import { IdGenerator } from 'vs/base/common/idGenerator'; -import { TPromise } from 'vs/base/common/winjs.base'; import { ExtHostDocumentData } from 'vs/workbench/api/node/extHostDocumentData'; import { Selection, Range, Position, EndOfLine, TextEditorRevealType, TextEditorLineNumbersStyle, SnippetString } from './extHostTypes'; import { ISingleEditOperation } from 'vs/editor/common/model'; @@ -499,7 +498,7 @@ export class ExtHostTextEditor implements vscode.TextEditor { edit(callback: (edit: TextEditorEdit) => void, options: { undoStopBefore: boolean; undoStopAfter: boolean; } = { undoStopBefore: true, undoStopAfter: true }): Thenable { if (this._disposed) { - return TPromise.wrapError(new Error('TextEditor#edit not possible on closed editors')); + return Promise.reject(new Error('TextEditor#edit not possible on closed editors')); } let edit = new TextEditorEdit(this._documentData.document, options); callback(edit); @@ -511,7 +510,7 @@ export class ExtHostTextEditor implements vscode.TextEditor { // return when there is nothing to do if (editData.edits.length === 0 && !editData.setEndOfLine) { - return TPromise.wrap(true); + return Promise.resolve(true); } // check that the edits are not overlapping (i.e. illegal) @@ -538,7 +537,7 @@ export class ExtHostTextEditor implements vscode.TextEditor { if (nextRangeStart.isBefore(rangeEnd)) { // overlapping ranges - return TPromise.wrapError( + return Promise.reject( new Error('Overlapping ranges are not allowed!') ); } @@ -562,7 +561,7 @@ export class ExtHostTextEditor implements vscode.TextEditor { insertSnippet(snippet: SnippetString, where?: Position | Position[] | Range | Range[], options: { undoStopBefore: boolean; undoStopAfter: boolean; } = { undoStopBefore: true, undoStopAfter: true }): Thenable { if (this._disposed) { - return TPromise.wrapError(new Error('TextEditor#insertSnippet not possible on closed editors')); + return Promise.reject(new Error('TextEditor#insertSnippet not possible on closed editors')); } let ranges: IRange[]; @@ -595,7 +594,7 @@ export class ExtHostTextEditor implements vscode.TextEditor { private _runOnProxy(callback: () => Thenable): Thenable { if (this._disposed) { console.warn('TextEditor is closed/disposed'); - return TPromise.as(undefined); + return Promise.resolve(undefined); } return callback().then(() => this, err => { if (!(err instanceof Error && err.name === 'DISPOSED')) {