formatIncomingCallsResult function
Format incomingCalls result.
Implementation
String formatIncomingCallsResult(List<LspIncomingCall>? calls, {String? cwd}) {
if (calls == null || calls.isEmpty) {
return 'No incoming calls found (nothing calls this function)';
}
final plural = calls.length == 1 ? 'call' : 'calls';
final lines = <String>['Found ${calls.length} incoming $plural:'];
final byFile = groupByFile(calls, (c) => c.from.uri, cwd: cwd);
for (final entry in byFile.entries) {
lines.add('\n${entry.key}:');
for (final call in entry.value) {
final kind = symbolKindToString(call.from.kind);
final line = call.from.range.start.line + 1;
var callLine = ' ${call.from.name} ($kind) - Line $line';
if (call.fromRanges.isNotEmpty) {
final callSites = call.fromRanges
.map((r) => '${r.start.line + 1}:${r.start.character + 1}')
.join(', ');
callLine += ' [calls at: $callSites]';
}
lines.add(callLine);
}
}
return lines.join('\n');
}