go function
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: '["\']',
),
],
),
],
);
}