in server/src/lsifServer.ts [167:198]
async function checkRegistrations(): Promise<void> {
if (databases.size === 0 && registrations !== undefined) {
registrations.then(unregister => unregister.dispose(), error => connection.console.error('Failed to unregister listeners.'));
registrations = undefined;
return;
}
if (databases.size >= 1 && registrations === undefined) {
let documentSelector: DocumentSelector = [
{ scheme: 'lsif', exclusive: true } as DocumentFilter
];
let toRegister: BulkRegistration = BulkRegistration.create();
toRegister.add(DocumentSymbolRequest.type, {
documentSelector
});
toRegister.add(FoldingRangeRequest.type, {
documentSelector
});
toRegister.add(DefinitionRequest.type, {
documentSelector
});
toRegister.add(DeclarationRequest.type, {
documentSelector
});
toRegister.add(HoverRequest.type, {
documentSelector
});
toRegister.add(ReferencesRequest.type, {
documentSelector
});
registrations = connection.client.register(toRegister);
}
}