in com.microsoft.java.lsif.core/src/com/microsoft/java/lsif/core/internal/visitors/SymbolData.java [203:222]
synchronized public void resolveTypeDefinition(LsifService lsif, Document docVertex,
org.eclipse.lsp4j.Range sourceLspRange) {
if (this.typeDefinitionResolved) {
return;
}
Location typeDefinitionLocation = VisitorUtils.resolveTypeDefinitionLocation(docVertex,
sourceLspRange.getStart().getLine(), sourceLspRange.getStart().getCharacter());
if (typeDefinitionLocation != null) {
org.eclipse.lsp4j.Range typeDefinitionLspRange = typeDefinitionLocation.getRange();
Document typeDefinitionDocument = Repository.getInstance().enlistDocument(lsif,
typeDefinitionLocation.getUri(), project);
Range typeDefinitionRange = Repository.getInstance().enlistRange(lsif, typeDefinitionDocument,
typeDefinitionLspRange);
TypeDefinitionResult typeDefResult = VisitorUtils.ensureTypeDefinitionResult(lsif, this.resultSet);
LsifEmitter.getInstance().emit(lsif.getEdgeBuilder().item(typeDefResult, typeDefinitionRange, document,
ItemEdge.ItemEdgeProperties.DEFINITIONS));
}
this.typeDefinitionResolved = true;
}