debt - add ILinksList to LinksProvider and allow it to define a lifecycle

This commit is contained in:
Johannes Rieken
2019-04-04 15:36:35 +02:00
parent 5e0c911e48
commit 272d558cf6
8 changed files with 124 additions and 78 deletions

View File

@@ -428,7 +428,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha
// --- links
$registerDocumentLinkProvider(handle: number, selector: ISerializedDocumentFilter[]): void {
this._registrations[handle] = modes.LinkProviderRegistry.register(selector, <modes.LinkProvider>{
this._registrations[handle] = modes.LinkProviderRegistry.register(selector, {
provideLinks: (model, token) => {
return this._proxy.$provideDocumentLinks(handle, model.uri, token).then(dto => {
if (dto) {
@@ -437,7 +437,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha
this._heapService.trackObject(obj);
});
}
return dto;
return { links: dto as modes.ILink[] };
});
},
resolveLink: (link, token) => {
@@ -446,7 +446,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha
MainThreadLanguageFeatures._reviveLinkDTO(obj);
this._heapService.trackObject(obj);
}
return obj;
return obj as modes.ILink;
});
}
});