syntax "Go" "\.go$"
-color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[()]"
-color brightblue "\b(append|cap|close|complex|copy|delete|imag|len)\b"
-color brightblue "\b(make|new|panic|print|println|protect|real|recover)\b"
-color green "\b(u?int(8|16|32|64)?|float(32|64)|complex(64|128))\b"
-color green "\b(uintptr|byte|rune|string|interface|bool|map|chan|error)\b"
-color cyan "\b(package|import|const|var|type|struct|func|go|defer|nil|iota)\b"
-color cyan "\b(for|range|if|else|case|default|switch|return)\b"
-color brightred "\b(go|goto|break|continue)\b"
-color brightcyan "\b(true|false)\b"
-color red "[-+/*=<>!~%&|^]|:="
-color blue "\b([0-9]+|0x[0-9a-fA-F]*)\b|'.'"
-color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
-color magenta "\\[abfnrtv'\"\\]"
-color magenta "\\([0-7]{3}|x[A-Fa-f0-9]{2}|u[A-Fa-f0-9]{4}|U[A-Fa-f0-9]{8})"
-color yellow "`[^`]*`"
-color brightblack "(^|[[:space:]])//.*"
-color green "(?s)/\*.*?\*/"
-color brightwhite,cyan "TODO:?"
-color ,green "[[:space:]]+$"
-color ,red " + +| + +"
+color identifier "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[()]"
+color statement "\b(append|cap|close|complex|copy|delete|imag|len)\b"
+color statement "\b(make|new|panic|print|println|protect|real|recover)\b"
+color type "\b(u?int(8|16|32|64)?|float(32|64)|complex(64|128))\b"
+color type "\b(uintptr|byte|rune|string|interface|bool|map|chan|error)\b"
+color statement "\b(package|import|const|var|type|struct|func|go|defer|nil|iota)\b"
+color statement "\b(for|range|if|else|case|default|switch|return)\b"
+color statement "\b(go|goto|break|continue)\b"
+color constant "\b(true|false)\b"
+color statement "[-+/*=<>!~%&|^]|:="
+color constant "\b([0-9]+|0x[0-9a-fA-F]*)\b|'.'"
+color constant ""(\\.|[^"])*"|'(\\.|[^'])*'"
+color constant "\\[abfnrtv'\"\\]"
+color constant "\\([0-7]{3}|x[A-Fa-f0-9]{2}|u[A-Fa-f0-9]{4}|U[A-Fa-f0-9]{8})"
+color constant "`[^`]*`"
+color comment "(^|[[:space:]])//.*"
+color comment (s) "/\*.*?\*/"
+color todo "TODO:?"