removeDocComments static method

String removeDocComments(
  1. String content,
  2. CommentStyle style
)

Remove only doc comments while preserving regular comments Works for C-style (///) and Python-style (""")

Implementation

static String removeDocComments(String content, CommentStyle style) {
  switch (style) {
    case CommentStyle.cStyle:
      final lines = content.split('\n');
      final result = <String>[];
      for (final line in lines) {
        final trimmed = line.trimLeft();
        if (trimmed.startsWith('///')) {
          continue;
        }
        result.add(line);
      }
      return result.join('\n');

    case CommentStyle.pythonStyle:
      String result = content;
      result = result.replaceAll(RegExp(r'"""[\s\S]*?"""', multiLine: true), '');
      result = result.replaceAll(RegExp(r"'''[\s\S]*?'''", multiLine: true), '');
      return result;

    default:
      return content;
  }
}