544351f3be
In many places a carriage return is not valid whitespace and should thus not be colored as such. In some of these places a vertical tab or form feed is maybe valid whitespace, but it would be ugly or even wrong to color them because they are not part of the subsequent comment or keyword. This fixes https://savannah.gnu.org/bugs/?60456.
50 строки
1.4 KiB
Plaintext
50 строки
1.4 KiB
Plaintext
## 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\>|\<chan[[:blank:]]*<-"
|
|
|
|
# Predefined functions.
|
|
color blue "\<(append|cap|close|complex|copy|delete|imag|len|make|new|panic|print|println|real|recover)\>"
|
|
|
|
# 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 ""(\\.|[^"])*""
|
|
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:]]+$"
|