提交 9496bb79 编写于 作者: J Johannes Rieken

debt - replace asThenable with Promise.resolve

上级 75968799
......@@ -16,14 +16,6 @@ export function isThenable<T>(obj: any): obj is Thenable<T> {
return obj && typeof (<Thenable<any>>obj).then === 'function';
}
export function toThenable<T>(arg: T | Thenable<T>): Thenable<T> {
if (isThenable(arg)) {
return arg;
} else {
return TPromise.as(arg);
}
}
export interface CancelablePromise<T> extends Promise<T> {
cancel(): void;
}
......
......@@ -7,7 +7,6 @@
import { FoldingRangeProvider, FoldingRange, FoldingContext } from 'vs/editor/common/modes';
import { onUnexpectedExternalError } from 'vs/base/common/errors';
import { toThenable } from 'vs/base/common/async';
import { ITextModel } from 'vs/editor/common/model';
import { RangeProvider } from './folding';
import { TPromise } from 'vs/base/common/winjs.base';
......@@ -50,7 +49,7 @@ export class SyntaxRangeProvider implements RangeProvider {
function collectSyntaxRanges(providers: FoldingRangeProvider[], model: ITextModel, cancellationToken: CancellationToken): Thenable<IFoldingRangeData[] | null> {
let rangeData: IFoldingRangeData[] = null;
let promises = providers.map((provider, i) => {
return toThenable(provider.provideFoldingRanges(model, foldingContext, cancellationToken)).then(ranges => {
return Promise.resolve(provider.provideFoldingRanges(model, foldingContext, cancellationToken)).then(ranges => {
if (cancellationToken.isCancellationRequested) {
return;
}
......@@ -187,4 +186,4 @@ export function sanitizeRanges(rangeData: IFoldingRangeData[], limit: number): F
}
}
return collector.toIndentRanges();
}
\ No newline at end of file
}
......@@ -16,7 +16,6 @@ import { LanguageConfiguration, IndentAction } from 'vs/editor/common/modes/lang
import { Position } from 'vs/editor/common/core/position';
import { Range } from 'vs/editor/common/core/range';
import { CancellationToken } from 'vs/base/common/cancellation';
import { toThenable } from 'vs/base/common/async';
import { compile } from 'vs/editor/standalone/common/monarch/monarchCompile';
import { createTokenizationSupport } from 'vs/editor/standalone/common/monarch/monarchLexer';
import { LanguageConfigurationRegistry } from 'vs/editor/common/modes/languageConfigurationRegistry';
......@@ -352,7 +351,7 @@ export function registerHoverProvider(languageId: string, provider: modes.HoverP
provideHover: (model: model.ITextModel, position: Position, token: CancellationToken): Thenable<modes.Hover> => {
let word = model.getWordAtPosition(position);
return toThenable<modes.Hover>(provider.provideHover(model, position, token)).then((value) => {
return Promise.resolve<modes.Hover>(provider.provideHover(model, position, token)).then((value) => {
if (!value) {
return undefined;
}
......@@ -779,7 +778,7 @@ class SuggestAdapter {
provideCompletionItems(model: model.ITextModel, position: Position, context: modes.SuggestContext, token: CancellationToken): Thenable<modes.ISuggestResult> {
const result = this._provider.provideCompletionItems(model, position, token, context);
return toThenable<CompletionItem[] | CompletionList>(result).then(value => {
return Promise.resolve<CompletionItem[] | CompletionList>(result).then(value => {
const result: modes.ISuggestResult = {
suggestions: []
};
......@@ -830,7 +829,7 @@ class SuggestAdapter {
return TPromise.as(suggestion);
}
return toThenable(this._provider.resolveCompletionItem(item, token)).then(resolvedItem => {
return Promise.resolve(this._provider.resolveCompletionItem(item, token)).then(resolvedItem => {
let wordStartPos = position;
const word = model.getWordUntilPosition(position);
if (word) {
......
......@@ -5,7 +5,6 @@
'use strict';
import { Event, Emitter } from 'vs/base/common/event';
import { toThenable } from 'vs/base/common/async';
import { TextEditorSelectionChangeKind } from './extHostTypes';
import * as TypeConverters from './extHostTypeConverters';
import { TextEditorDecorationType, ExtHostTextEditor } from './extHostTextEditor';
......@@ -149,6 +148,6 @@ export class ExtHostEditors implements ExtHostEditorsShape {
}
getDiffInformation(id: string): Thenable<vscode.LineChange[]> {
return toThenable(this._proxy.$getDiffInformation(id));
return Promise.resolve(this._proxy.$getDiffInformation(id));
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册