## Syntax highlighting for Go. ## Original author: Robert Clausecker ## License: CC0 (public domain) syntax go "\.go$" comment "//" formatter gofmt -w # Types. color green "\<(bool|u?int(8|16|32|64)?|float(32|64)|complex(64|128)|byte|rune|uintptr|string|error)\>" color green "\<(chan|const|func|interface|map|struct|type|var)\>" color green "<-[[:blank:]]*chan\>|\" # Control structures. color brightyellow "\<(case|default|defer|else|for|go|if|range|select|switch)\>" # Control flow. color magenta "\<(break|continue|fallthrough|goto|return)\>" # Declarations. color brightcyan "\<(package|import)\>" # Literals. color red "\<([1-9][0-9]*|0[0-7]*|0[xX][0-9A-Fa-f]+)\>" color red "\<[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?i?\>" color red "\<[0-9]+[eE][+-]?[0-9]+i?\>" color red "\B\.[0-9]+([eE][+-]?[0-9]+)?i?\>" color red "\<[0-9]+i\>" # Strings and characters; slightly fuzzy. color red "\<(true|false|nil|iota|_)\>" color red ""(\\.|[^"])*"|'(\\.|[^'])+'" color red start=""(\\.|[^"])*\\[[:blank:]]*$" end="^(\\.|[^"])*"" # Comments. color brightblue "//.*" color brightblue start="/\*" end="\*/" # Special comments. color brightcyan "//[[:blank:]]*\+build[[:blank:]]+(([a-zA-Z_0-9]+[[:blank:]]*)+,[[:blank:]]*)*[a-zA-Z_0-9]+" # Trailing whitespace. color ,green "[[:space:]]+$"