func()

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
}