UNPKG

highlight.js

Version:

Syntax highlighting with language autodetection.

138 lines (135 loc) 2.29 kB
/* Language: Go Author: Stephan Kountso aka StepLg <steplg@gmail.com> Contributors: Evgeny Stepanischev <imbolk@gmail.com> Description: Google go language (golang). For info about language Website: http://golang.org/ Category: common, system */ function go(hljs) { const LITERALS = [ "true", "false", "iota", "nil" ]; const BUILT_INS = [ "append", "cap", "close", "complex", "copy", "imag", "len", "make", "new", "panic", "print", "println", "real", "recover", "delete" ]; const KWS = [ "break", "default", "func", "interface", "select", "case", "map", "struct", "chan", "else", "goto", "package", "switch", "const", "fallthrough", "if", "range", "type", "continue", "for", "import", "return", "var", "go", "defer", "bool", "byte", "complex64", "complex128", "float32", "float64", "int8", "int16", "int32", "int64", "string", "uint8", "uint16", "uint32", "uint64", "int", "uint", "uintptr", "rune" ]; const KEYWORDS = { keyword: KWS, literal: LITERALS, built_in: BUILT_INS }; return { name: 'Go', aliases: ['golang'], keywords: KEYWORDS, illegal: '</', contains: [ hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, { className: 'string', variants: [ hljs.QUOTE_STRING_MODE, hljs.APOS_STRING_MODE, { begin: '`', end: '`' } ] }, { className: 'number', variants: [ { begin: hljs.C_NUMBER_RE + '[i]', relevance: 1 }, hljs.C_NUMBER_MODE ] }, { begin: /:=/ // relevance booster }, { className: 'function', beginKeywords: 'func', end: '\\s*(\\{|$)', excludeEnd: true, contains: [ hljs.TITLE_MODE, { className: 'params', begin: /\(/, end: /\)/, keywords: KEYWORDS, illegal: /["']/ } ] } ] }; } module.exports = go;