go function

Mode go(
  1. Highlight hljs
)

Highlight.js language definition for go.

Implementation

Mode go(Highlight hljs) {
  final Mode mode0 = Mode();
  mode0.begin = r'\\[\s\S]';
  mode0.relevance = 0;
  return Mode(
    name: r'Go',
    aliases: [r'golang'],
    keywords: {
      r'keyword': [
        r'break',
        r'case',
        r'chan',
        r'const',
        r'continue',
        r'default',
        r'defer',
        r'else',
        r'fallthrough',
        r'for',
        r'func',
        r'go',
        r'goto',
        r'if',
        r'import',
        r'interface',
        r'map',
        r'package',
        r'range',
        r'return',
        r'select',
        r'struct',
        r'switch',
        r'type',
        r'var',
      ],
      r'type': [
        r'bool',
        r'byte',
        r'complex64',
        r'complex128',
        r'error',
        r'float32',
        r'float64',
        r'int8',
        r'int16',
        r'int32',
        r'int64',
        r'string',
        r'uint8',
        r'uint16',
        r'uint32',
        r'uint64',
        r'int',
        r'uint',
        r'uintptr',
        r'rune',
      ],
      r'literal': [r'true', r'false', r'iota', r'nil'],
      r'built_in': [
        r'append',
        r'cap',
        r'close',
        r'complex',
        r'copy',
        r'imag',
        r'len',
        r'make',
        r'new',
        r'panic',
        r'print',
        r'println',
        r'real',
        r'recover',
        r'delete',
      ],
    },
    illegal: r'</',
    contains: [
      Mode(
        scope: r'comment',
        begin: r'//',
        end: r'$',
        contains: [
          Mode(
            scope: r'doctag',
            begin: r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',
            end: r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',
            excludeBegin: true,
            relevance: 0,
          ),
          Mode(
            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}",
          ),
        ],
      ),
      Mode(
        scope: r'comment',
        begin: r'/\*',
        end: r'\*/',
        contains: [
          Mode(
            scope: r'doctag',
            begin: r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',
            end: r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',
            excludeBegin: true,
            relevance: 0,
          ),
          Mode(
            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}",
          ),
        ],
      ),
      Mode(
        scope: r'string',
        variants: [
          Mode(
            scope: r'string',
            begin: r'"',
            end: r'"',
            illegal: r'\n',
            contains: [mode0],
          ),
          Mode(
            scope: r'string',
            begin: r"'",
            end: r"'",
            illegal: r'\n',
            contains: [mode0],
          ),
          Mode(begin: r'`', end: r'`'),
        ],
      ),
      Mode(
        scope: r'number',
        variants: [
          Mode(
            match:
                r'-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?',
            relevance: 0,
          ),
          Mode(
            match:
                r'-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?',
            relevance: 0,
          ),
          Mode(match: r'-?\b0[oO](_?[0-7])*i?', relevance: 0),
          Mode(match: r'-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?', relevance: 0),
          Mode(
            match: r'-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?',
            relevance: 0,
          ),
        ],
      ),
      Mode(begin: r':='),
      Mode(
        scope: r'function',
        beginKeywords: r'func',
        end: r'\s*(\{|$)',
        excludeEnd: true,
        contains: [
          Mode(scope: r'title', begin: r'[a-zA-Z]\w*', relevance: 0),
          Mode(
            scope: r'params',
            begin: r'\(',
            end: r'\)',
            endsParent: true,
            keywords: {
              r'keyword': [
                r'break',
                r'case',
                r'chan',
                r'const',
                r'continue',
                r'default',
                r'defer',
                r'else',
                r'fallthrough',
                r'for',
                r'func',
                r'go',
                r'goto',
                r'if',
                r'import',
                r'interface',
                r'map',
                r'package',
                r'range',
                r'return',
                r'select',
                r'struct',
                r'switch',
                r'type',
                r'var',
              ],
              r'type': [
                r'bool',
                r'byte',
                r'complex64',
                r'complex128',
                r'error',
                r'float32',
                r'float64',
                r'int8',
                r'int16',
                r'int32',
                r'int64',
                r'string',
                r'uint8',
                r'uint16',
                r'uint32',
                r'uint64',
                r'int',
                r'uint',
                r'uintptr',
                r'rune',
              ],
              r'literal': [r'true', r'false', r'iota', r'nil'],
              r'built_in': [
                r'append',
                r'cap',
                r'close',
                r'complex',
                r'copy',
                r'imag',
                r'len',
                r'make',
                r'new',
                r'panic',
                r'print',
                r'println',
                r'real',
                r'recover',
                r'delete',
              ],
            },
            illegal: '["\']',
          ),
        ],
      ),
    ],
  );
}