add resolveDocumentLink method to the API

This commit is contained in:
Johannes Rieken
2016-08-03 17:32:07 +02:00
parent 07a53e91d0
commit 90172cec0a
6 changed files with 38 additions and 7 deletions

View File

@@ -636,6 +636,16 @@ class LinkProviderAdapter {
}
});
}
resolveLink(link: modes.ILink): TPromise<modes.ILink> {
if (typeof this._provider.resolveDocumentLink === 'function') {
return asWinJsPromise(token => this._provider.resolveDocumentLink(TypeConverters.DocumentLink.to(link), token)).then(value => {
if (value) {
return TypeConverters.DocumentLink.from(value);
}
});
}
}
}
type Adapter = OutlineAdapter | CodeLensAdapter | DefinitionAdapter | HoverAdapter
@@ -884,10 +894,14 @@ export class ExtHostLanguageFeatures extends ExtHostLanguageFeaturesShape {
return this._createDisposable(handle);
}
$providDocumentLinks(handle: number, resource: URI): TPromise<modes.ILink[]> {
$provideDocumentLinks(handle: number, resource: URI): TPromise<modes.ILink[]> {
return this._withAdapter(handle, LinkProviderAdapter, adapter => adapter.provideLinks(resource));
}
$resolveDocumentLink(handle: number, link: modes.ILink): TPromise<modes.ILink> {
return this._withAdapter(handle, LinkProviderAdapter, adapter => adapter.resolveLink(link));
}
// --- configuration
setLanguageConfiguration(languageId:string, configuration: vscode.LanguageConfiguration): vscode.Disposable {