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