extractDocComment static method

String? extractDocComment(
  1. String source,
  2. String functionName
)

Extract doc comment from function source, joining multilines with spaces.

Implementation

static String? extractDocComment(String source, String functionName) {
  final pattern = RegExp(
    r'///\s*(.*?)\n\s*(?:void|String|int|bool|List|Map|Future)[^]*?\b' +
        RegExp.escape(functionName) +
        r'\s*\(',
    multiLine: true,
  );

  final match = pattern.firstMatch(source);
  if (match == null) return null;

  final docLines = <String>[];
  final lines = source.split('\n');
  final startIndex = match.start;

  for (var i = startIndex - 1; i >= 0 && i >= startIndex - 10; i--) {
    final line = lines[i];
    if (!line.trim().startsWith('///')) break;
    docLines.insert(0, line.replaceFirst('///', '').trim());
  }

  if (docLines.isEmpty) return null;
  return docLines.join(' ').replaceAll(r'\s+', ' ').trim();
}