@ -1,26 +1,80 @@
( comment ) @comment
( module_clause
( identifier ) @namespace )
( import_path
( import_name ) @namespace )
( import_alias
( import_name ) @namespace )
( enum_fetch
( reference_expression ) @constant )
( enum_field_definition
( identifier ) @constant )
( global_var_definition
( identifier ) @constant )
( compile_time_if_expression
condition: ( reference_expression ) @constant )
( compile_time_if_expression
condition: ( binary_expression
left: ( reference_expression ) @constant
right: ( reference_expression ) @constant ) )
( compile_time_if_expression
condition: ( binary_expression
left: ( reference_expression ) @constant
right: ( unary_expression ( reference_expression ) @constant ) ) )
( label_reference ) @label
( parameter_declaration
name: ( identifier ) @variable . parameter )
( receiver
name: ( identifier ) @variable . parameter )
( function_declaration
name: ( identifier ) @function )
( function_declaration
receiver: ( parameter_list )
receiver: ( receiver )
name: ( identifier ) @function . method )
( interface_method_definition
name: ( identifier ) @function . method )
( call_expression
function: ( identifier ) @function )
name: ( selector_expression
field: ( reference_expression ) @function . method ) )
( call_expression
function: ( selector_expression
field: ( identifier ) @function . method ) )
name: ( reference_expression ) @function )
( struct_declaration
name: ( identifier ) @type )
( enum_declaration
name: ( identifier ) @type )
( interface_declaration
name: ( identifier ) @type )
( type_declaration
name: ( identifier ) @type )
( struct_field_declaration
name: ( identifier ) @variable . other . member )
( field_name ) @variable . other . member
( field_identifier ) @variable . other . member
( selector_expression
operand: ( identifier ) @variable
field: ( identifier ) @variable . other . member )
field: ( reference_expression ) @variable . other . member )
( int_literal ) @constant . numeric . integer
( escape_sequence ) @constant . character . escape
( attribute_declaration ) @attribute
( comment ) @comment
[
( c_string_literal )
( raw_string_literal )
@ -29,55 +83,30 @@
( rune_literal )
] @string
( escape_sequence ) @constant . character . escape
[
( pointer_type )
( array_type )
] @type
( const_spec name: ( identifier ) @constant )
( global_var_type_initializer name: ( identifier ) @constant )
( global_var_spec name: ( identifier ) @constant )
( ( identifier ) @constant ( # match? @constant "^[A-Z][A-Z\\d_]*$" ) )
( string_interpolation
( braced_interpolation_opening ) @punctuation . bracket
( interpolated_expression ) @embedded
( braced_interpolation_closing ) @punctuation . bracket )
( attribute ) @attribute
[
( generic_type )
( type_identifier )
] @constructor
( builtin_type ) @type . builtin
( type_reference_expression )
] @type
[
( true )
( false )
] @constant . builtin . boolean
[
( module_identifier )
( import_path )
] @namespace
[
( pseudo_comptime_identifier )
( label_name )
] @label
[
( identifier )
] @variable
[
"pub"
"assert"
"go"
"asm"
"defer"
"unsafe"
"sql"
( nil )
( none )
] @keyword
@ -105,12 +134,17 @@
"lock"
"rlock"
"spawn"
"break"
"continue"
"go"
] @keyword . control
[
"if"
"$if"
"select"
"else"
"$else"
"match"
] @keyword . control . conditional
@ -155,7 +189,7 @@
"]"
] @punctuation . bracket
( array ) @punctuation . bracket
( array _creation ) @punctuation . bracket
[
"++"