Find every caller of a function across a 1M-line codebase
When to use: You need a complete, correct list of callers — grep gives false positives (comments, strings, similarly-named functions in other scopes) and misses overloads.
Prerequisites
- uv installed — curl -LsSf https://astral.sh/uv/install.sh | sh
- Project opened in a language Serena's LSP supports — Most mainstream languages work out of the box
Flow
-
Open the projectOpen /abs/path/to/repo with Serena. Confirm the LSP index built.✓ Copied→ Serena reports the project root and the LSP that loaded
-
Find symbol referencesFind every call site of
PaymentService.chargeCustomer. Include overloads and overrides, exclude tests.✓ Copied→ Exact file:line list, no false positives from comments/strings -
Summarize impactGroup the call sites by module. For each group, tell me what the caller does with the return value.✓ Copied→ Module-grouped narrative, not a flat list
Outcome: You know exactly what a change would touch — before you touch it.
Pitfalls
- Some polyglot repos need multiple LSPs — Start Serena per sub-project if languages don't share a server