groovy function

Mode groovy(
  1. Highlight hljs
)

Implementation

Mode groovy(Highlight hljs) {
  final Mode _mode0 = Mode();
  final Mode _mode1 = Mode();
  final Mode _mode2 = Mode();
  final Mode _mode3 = Mode();
  final Mode _mode4 = Mode();
  final Mode _mode5 = Mode();
  final Mode _mode6 = Mode();
  final Mode _mode7 = Mode();
  final Mode _mode8 = Mode();
  final Mode _mode9 = Mode();
  final Mode _mode10 = Mode();
  final Mode _mode11 = Mode();
  final Mode _mode12 = Mode();
  final Mode _mode13 = Mode();
  final Mode _mode14 = Mode();
  final Mode _mode15 = Mode();
  final Mode _mode16 = Mode();
  final Mode _mode17 = Mode();
  final Mode _mode18 = Mode();
  final Mode _mode19 = Mode();
  final Mode _mode20 = Mode();
  final Mode _mode21 = Mode();
  final Mode _mode22 = Mode();
  _mode0.variants = [_mode1, _mode4, _mode7];
  _mode1.scope = r'comment';
  _mode1.begin = r'//';
  _mode1.end = r'$';
  _mode1.contains = [_mode2, _mode3];
  _mode2.scope = r'doctag';
  _mode2.begin = r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)';
  _mode2.end = r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):';
  _mode2.excludeBegin = true;
  _mode2.relevance = 0;
  _mode3.begin =
      r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}";
  _mode4.scope = r'comment';
  _mode4.begin = r'/\*';
  _mode4.end = r'\*/';
  _mode4.contains = [_mode5, _mode6];
  _mode5.scope = r'doctag';
  _mode5.begin = r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)';
  _mode5.end = r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):';
  _mode5.excludeBegin = true;
  _mode5.relevance = 0;
  _mode6.begin =
      r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}";
  _mode7.scope = r'comment';
  _mode7.begin = r'/\*\*';
  _mode7.end = r'\*/';
  _mode7.contains = [_mode8, _mode9, _mode10, _mode11];
  _mode7.relevance = 0;
  _mode8.begin = r'\w+@';
  _mode8.relevance = 0;
  _mode9.scope = r'doctag';
  _mode9.begin = r'@[A-Za-z]+';
  _mode10.scope = r'doctag';
  _mode10.begin = r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)';
  _mode10.end = r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):';
  _mode10.excludeBegin = true;
  _mode10.relevance = 0;
  _mode11.begin =
      r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}";
  _mode12.scope = r'string';
  _mode12.variants = [_mode13, _mode14, _mode15, _mode16, _mode18];
  _mode13.begin = r'"""';
  _mode13.end = r'"""';
  _mode14.begin = r"'''";
  _mode14.end = r"'''";
  _mode15.begin = r'\$/';
  _mode15.end = r'/\$';
  _mode15.relevance = 10;
  _mode16.scope = r'string';
  _mode16.begin = r"'";
  _mode16.end = r"'";
  _mode16.illegal = r'\n';
  _mode16.contains = [_mode17];
  _mode17.begin = r'\\[\s\S]';
  _mode17.relevance = 0;
  _mode18.scope = r'string';
  _mode18.begin = r'"';
  _mode18.end = r'"';
  _mode18.illegal = r'\n';
  _mode18.contains = [_mode17];
  _mode19.scope = r'regexp';
  _mode19.begin = r'~?\/[^\/\n]+\/';
  _mode19.contains = [_mode17];
  _mode20.variants = [_mode21, _mode22];
  _mode21.scope = r'number';
  _mode21.begin = r'\b(0b[01]+)';
  _mode21.relevance = 0;
  _mode22.scope = r'number';
  _mode22.begin =
      r'(-?)(\b0[xX][a-fA-F0-9]+|(\b\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?)';
  _mode22.relevance = 0;
  return Mode(
    name: r'Groovy',
    keywords: {
      r'variable.language': r'this super',
      r'literal': r'true false null',
      r'type': [
        r'byte',
        r'short',
        r'char',
        r'int',
        r'long',
        r'boolean',
        r'float',
        r'double',
        r'void',
      ],
      r'keyword': [
        r'def',
        r'as',
        r'in',
        r'assert',
        r'trait',
        r'abstract',
        r'static',
        r'volatile',
        r'transient',
        r'public',
        r'private',
        r'protected',
        r'synchronized',
        r'final',
        r'class',
        r'interface',
        r'enum',
        r'if',
        r'else',
        r'for',
        r'while',
        r'switch',
        r'case',
        r'break',
        r'default',
        r'continue',
        r'throw',
        r'throws',
        r'try',
        r'catch',
        r'finally',
        r'implements',
        r'extends',
        r'new',
        r'import',
        r'package',
        r'return',
        r'instanceof',
        r'var',
      ],
    },
    contains: [
      Mode(
        scope: r'meta',
        begin: r'^#![ ]*\/.*\bgroovy\b.*',
        end: r'$',
        relevance: 10,
        binary: r'groovy',
      ),
      _mode0,
      _mode12,
      _mode19,
      _mode20,
      Mode(
        match: [
          r'(class|interface|trait|enum|record|extends|implements)',
          r'\s+',
          r'[a-zA-Z_]\w*',
        ],
        scope: {1: r'keyword', 3: r'title.class'},
      ),
      Mode(scope: r'meta', begin: r'@[A-Za-z]+', relevance: 0),
      Mode(scope: r'attr', begin: r'[A-Za-z0-9_$]+[ 	]*:', relevance: 0),
      Mode(
        begin: r'\?',
        end: r':',
        relevance: 0,
        contains: [_mode0, _mode12, _mode19, _mode20, r'self'],
      ),
      Mode(
        scope: r'symbol',
        begin: r'^[ 	]*(?=[A-Za-z0-9_$]+:)',
        excludeBegin: true,
        end: r'[A-Za-z0-9_$]+:',
        relevance: 0,
      ),
    ],
    illegal: r'#|<\/',
  );
}