refractor
Version:
Lightweight, robust, elegant virtual syntax highlighting using Prism
20 lines (18 loc) • 894 B
JavaScript
'use strict';
module.exports = go;
go.displayName = 'go';
go.aliases = [];
function go(Prism) {
Prism.languages.go = Prism.languages.extend('clike', {
keyword: /\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,
builtin: /\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/,
boolean: /\b(?:_|iota|nil|true|false)\b/,
operator: /[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,
number: /\b(-?(0x[a-f\d]+|(\d+\.?\d*|\.\d+)(e[-+]?\d+)?)i?)\b/i,
string: {
pattern: /(["'`])(\\[\s\S]|(?!\1)[^\\])*\1/,
greedy: true
}
});
delete Prism.languages.go['class-name'];
}