in server/src/blobStore.ts [237:259]
public hover(uri: string, position: lsp.Position): lsp.Hover | undefined {
const { range, blob } = this.findRangeFromPosition(this.toDatabase(uri), position);
if (range === undefined || blob === undefined || blob.hovers === undefined) {
return undefined;
}
let result = this.findResult(blob.resultSets, blob.hovers, range, 'hoverResult');
if (result !== undefined) {
return result;
}
const moniker = this.findMoniker(blob.resultSets, blob.monikers, range);
if (moniker === undefined) {
return undefined;
}
const qResult: BlobResult = this.findHoverStmt.get({ version: this.version, scheme: moniker.scheme, identifier: moniker.identifier });
if (qResult === undefined) {
return undefined;
}
result = JSON.parse(qResult.content.toString()) as lsp.Hover;
if (result.range === undefined) {
result.range = lsp.Range.create(range.start.line, range.start.character, range.end.line, range.end.character);
}
return result;
}