本文整理汇总了TypeScript中vs/editor/common/modes/languageFeatureRegistry.ordered函数的典型用法代码示例。如果您正苦于以下问题:TypeScript ordered函数的具体用法?TypeScript ordered怎么用?TypeScript ordered使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ordered函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: getDeclarationsAtPosition
export function getDeclarationsAtPosition(model: IModel, position: IPosition): TPromise<IReference[]> {
const resource = model.getAssociatedResource();
const provider = DeclarationRegistry.ordered(model);
// get results
const promises = provider.map((provider, idx) => {
return provider.findDeclaration(resource, position).then(result => {
return result;
}, err => {
onUnexpectedError(err);
});
});
return TPromise.join(promises).then(allReferences => {
let result: IReference[] = [];
for (let references of allReferences) {
if (Array.isArray(references)) {
result.push(...references);
} else if (references) {
result.push(references);
}
}
return result;
});
}
示例2: formatRange
export function formatRange(model: IModel, range: IRange, options: IFormattingOptions): TPromise<ISingleEditOperation[]> {
const [support] = FormatRegistry.ordered(model)
.filter(s => typeof s.formatRange === 'function');
if (!support) {
return TPromise.as(undefined);
}
return support.formatRange(model.getAssociatedResource(), range, options);
}
示例3: getParameterHints
export function getParameterHints(model:IModel, position:IPosition, triggerCharacter: string): TPromise<IParameterHints> {
let support = ParameterHintsRegistry.ordered(model)[0];
if (!support) {
return TPromise.as(undefined);
}
return support.getParameterHints(model.getAssociatedResource(), position, triggerCharacter);
}
示例4: formatAfterKeystroke
export function formatAfterKeystroke(model: IModel, position: IPosition, ch: string, options: IFormattingOptions): TPromise<ISingleEditOperation[]> {
const [support] = FormatOnTypeRegistry.ordered(model);
if (!support) {
return TPromise.as(undefined);
}
if (support.autoFormatTriggerCharacters.indexOf(ch) < 0) {
return TPromise.as(undefined);
}
return support.formatAfterKeystroke(model.getAssociatedResource(), position, ch, options);
}
示例5: formatDocument
export function formatDocument(model: IModel, options: IFormattingOptions): TPromise<ISingleEditOperation[]> {
const [support] = FormatRegistry.ordered(model);
if (!support) {
return TPromise.as(undefined);
}
if (typeof support.formatDocument !== 'function') {
if (typeof support.formatRange === 'function') {
return formatRange(model, model.getFullModelRange(), options);
} else {
return TPromise.as(undefined);
}
}
return support.formatDocument(model.getAssociatedResource(), options);
}
示例6: asWinJsPromise
function getDefinitions<T>(
model: ITextModel,
position: Position,
registry: LanguageFeatureRegistry<T>,
provide: (provider: T, model: ITextModel, position: Position, token: CancellationToken) => Location | Location[] | Thenable<Location | Location[]>
): TPromise<Location[]> {
const provider = registry.ordered(model);
// get results
const promises = provider.map((provider, idx) => {
return asWinJsPromise((token) => {
return provide(provider, model, position, token);
}).then(undefined, err => {
onUnexpectedExternalError(err);
return null;
});
});
return outputResults(promises);
}
示例7: coalesce
function getDefinitions<T>(
model: ITextModel,
position: Position,
registry: LanguageFeatureRegistry<T>,
provide: (provider: T, model: ITextModel, position: Position) => DefinitionLink | DefinitionLink[] | Thenable<DefinitionLink | DefinitionLink[]>
): Thenable<DefinitionLink[]> {
const provider = registry.ordered(model);
// get results
const promises = provider.map((provider): Thenable<DefinitionLink | DefinitionLink[]> => {
return Promise.resolve(provide(provider, model, position)).then(undefined, err => {
onUnexpectedExternalError(err);
return null;
});
});
return Promise.all(promises)
.then(flatten)
.then(references => coalesce(references));
}
示例8: asWinJsPromise
function getDefinitions<T>(
model: ITextModel,
position: Position,
registry: LanguageFeatureRegistry<T>,
provide: (provider: T, model: ITextModel, position: Position, token: CancellationToken) => Location | Location[] | Thenable<Location | Location[]>
): TPromise<DefinitionLink[]> {
const provider = registry.ordered(model);
// get results
const promises = provider.map((provider): TPromise<DefinitionLink | DefinitionLink[]> => {
return asWinJsPromise((token) => {
return provide(provider, model, position, token);
}).then(undefined, err => {
onUnexpectedExternalError(err);
return null;
});
});
return TPromise.join(promises)
.then(flatten)
.then(references => references.filter(x => !!x));
}
示例9: getExtraInfoAtPosition
export function getExtraInfoAtPosition(model: IModel, position: IPosition): TPromise<IComputeExtraInfoResult[]> {
const resource = model.getAssociatedResource();
const supports = ExtraInfoRegistry.ordered(model);
const values: IComputeExtraInfoResult[] = [];
const promises = supports.map((support, idx) => {
return support.computeInfo(resource, position).then(result => {
if (result) {
let hasRange = (typeof result.range !== 'undefined');
let hasValue = (typeof result.value !== 'undefined');
let hasHtmlContent = (typeof result.htmlContent !== 'undefined' && result.htmlContent && result.htmlContent.length > 0);
if (hasRange && (hasValue || hasHtmlContent)) {
values[idx] = result;
}
}
}, err => {
onUnexpectedError(err);
});
});
return TPromise.join(promises).then(() => coalesce(values));
}