COMMENT method

Mode COMMENT(
  1. dynamic begin,
  2. dynamic end, [
  3. Mode? modeOptions
])

Implementation

Mode COMMENT(dynamic begin, dynamic end, [Mode? modeOptions]) {
  final mode = Mode(
    scope: modeOptions?.scope ?? 'comment',
    begin: modeOptions?.begin ?? begin,
    end: modeOptions?.end ?? end,
    contains: modeOptions?.contains != null
        ? List.from(modeOptions!.contains!)
        : <dynamic>[],
    relevance: modeOptions?.relevance,
    keywords: modeOptions?.keywords,
    illegal: modeOptions?.illegal,
  );

  final contains = mode.contains as List<dynamic>;
  contains.add(
    Mode(
      scope: 'doctag',
      begin: r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',
      end: RegExp(r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):'),
      excludeBegin: true,
      relevance: 0,
    ),
  );

  final englishWord = regex.either(
    'I',
    'a',
    'is',
    'so',
    'us',
    'to',
    'at',
    'if',
    'in',
    'it',
    'on',
    RegExp(r"[A-Za-z]+['][](d|ve|re|ll|t|s|n)"),
    RegExp(r'[A-Za-z]+[-][a-z]+'),
    RegExp(r'[A-Za-z][a-z]{2,}'),
  );
  contains.add(
    Mode(
      begin: regex.concat(
        r'[ ]+',
        '(',
        englishWord,
        r'[.]?[:]?([.][ ]|[ ])',
        '){3}',
      ),
    ),
  );

  return mode;
}