in src/scip-lib/registry/partial_registry.go [252:281]
func (p *partialScipRegistry) DocumentSymbols(uri uri.URI) ([]*model.SymbolOccurrence, error) {
doc, err := p.Index.LoadDocument(p.uriToRelativePath(uri))
if err != nil {
p.logger.Errorf("failed to load document %s: %s", uri, err)
return nil, err
}
if doc == nil {
return nil, nil
}
symbolOccurrences := make([]*model.SymbolOccurrence, 0)
for _, occ := range doc.Occurrences {
if scip.IsGlobalSymbol(occ.Symbol) && occ.SymbolRoles&int32(scip.SymbolRole_Definition) > 0 {
info := doc.SymbolMap[occ.Symbol]
if info != nil {
if info.DisplayName == "" {
info.DisplayName = model.ParseScipSymbolToDisplayName(info.Symbol)
}
symbolOccurrences = append(symbolOccurrences, &model.SymbolOccurrence{
Info: info,
Occurrence: occ,
Location: uri,
})
}
}
}
return symbolOccurrences, nil
}