feat: more @keyword.type captures

This commit is contained in:
Riley Bruins 2024-04-23 12:23:15 -07:00 committed by Christian Clason
parent f0a1a13316
commit f58cae6c22
74 changed files with 395 additions and 239 deletions

View file

@ -168,7 +168,7 @@ As languages differ quite a lot, here is a set of captures available to you when
@keyword.function ; keywords that define a function (e.g. `func` in Go, `def` in Python)
@keyword.operator ; operators that are English words (e.g. `and` / `or`)
@keyword.import ; keywords for including modules (e.g. `import` / `from` in Python)
@keyword.type ; keywords describing composite types (e.g. `struct`, `enum`)
@keyword.type ; keywords describing namespaces and composite types (e.g. `struct`, `enum`)
@keyword.modifier ; keywords modifying other constructs (e.g. `const`, `static`, `public`)
@keyword.repeat ; keywords related to loops (e.g. `for` / `while`)
@keyword.return ; keywords like `return` and `yield`

View file

@ -38,7 +38,6 @@
"private"
"protected"
"range"
"record"
"separate"
"subtype"
"synchronized"
@ -50,6 +49,8 @@
"when"
] @keyword
"record" @keyword.type
[
"aliased"
"constant"

View file

@ -70,9 +70,10 @@
"infix"
"infixl"
"infixr"
"record"
] @keyword
"record" @keyword.type
;(expr
; f_name: (atom) @function)
; Brackets

View file

@ -227,17 +227,14 @@
[
"abstract"
"class"
"continue"
"default"
"enum"
"extends"
"final"
"get"
"global"
"implements"
"instanceof"
"interface"
"on"
"private"
"protected"
@ -254,4 +251,10 @@
"inherited_sharing"
] @keyword
[
"interface"
"class"
"enum"
] @keyword.type
"System.runAs" @function.builtin

View file

@ -7,15 +7,18 @@
[
"default"
"enum"
"struct"
"typedef"
"union"
"goto"
"asm"
"__asm__"
] @keyword
[
"enum"
"struct"
"union"
"typedef"
] @keyword.type
[
"sizeof"
"offsetof"

View file

@ -403,18 +403,10 @@
"implicit"
"explicit"
"override"
"class"
"delegate"
"enum"
"interface"
"namespace"
"struct"
"get"
"set"
"init"
"where"
"record"
"event"
"add"
"remove"
"checked"
@ -423,6 +415,17 @@
"alias"
] @keyword
[
"enum"
"record"
"class"
"struct"
"interface"
"namespace"
"event"
"delegate"
] @keyword.type
[
"async"
"await"

View file

@ -94,8 +94,6 @@
[
; 0.x
"using"
"namespace"
"struct"
"let"
"const"
"local"
@ -109,16 +107,21 @@
"call"
"nondet"
; 1.0
"type"
"impl"
"implicits"
"of"
"ref"
"mut"
"trait"
"enum"
] @keyword
[
"struct"
"enum"
"namespace"
"type"
"trait"
] @keyword.type
[
"func"
"fn"

View file

@ -15,16 +15,17 @@
(import_path) @string.special.path
; Keywords
"extends" @keyword
[
"annotation"
"enum"
"group"
"interface"
"struct"
"interface"
"union"
"extends"
"enum"
"annotation"
"group"
"namespace"
] @keyword
] @keyword.type
; Builtins
"const" @keyword.modifier

View file

@ -202,20 +202,23 @@
] @keyword.exception
[
"class"
"decltype"
"explicit"
"friend"
"namespace"
"override"
"template"
"typename"
"using"
"concept"
"requires"
"constexpr"
] @keyword
[
"class"
"namespace"
"template"
"typename"
"concept"
] @keyword.type
[
"co_await"
"co_yield"

View file

@ -196,10 +196,7 @@
(case_builtin)
"late"
"required"
"extension"
"on"
"class"
"enum"
"extends"
"in"
"is"
@ -208,6 +205,12 @@
"with"
] @keyword
[
"class"
"enum"
"extension"
] @keyword.type
"return" @keyword.return
; Built in identifiers:

View file

@ -338,7 +338,6 @@
[
"break"
"class"
"const"
"debugger"
"export"
@ -352,6 +351,8 @@
"with"
] @keyword
"class" @keyword.type
[
"async"
"await"

View file

@ -17,15 +17,19 @@
(doc_comment) @comment.documentation @spell
"method" @keyword.function
[
"service"
"errors"
"data"
] @keyword
"method" @keyword.function
[
"enum"
"extern"
] @type.builtin
"data"
] @keyword.type
"extern" @keyword.modifier
(type) @type.builtin

View file

@ -6,7 +6,6 @@
"closed"
"compose"
"const"
"enum"
"error"
"flexible"
"library"
@ -15,16 +14,20 @@
"overlay"
"protocol"
"reserved"
"resource"
"service"
"strict"
"struct"
"table"
"type"
"union"
"using"
] @keyword
[
"enum"
"struct"
"table"
"union"
"resource"
"service"
"type"
] @keyword.type
(primitives_type) @type.builtin
(builtin_complex_type) @type.builtin

View file

@ -49,28 +49,18 @@
"attributes"
"associate"
"block"
"class"
"classis"
"contains"
"default"
"dimension"
"endassociate"
"endenum"
"endinterface"
"endmodule"
"endselect"
"endsubmodule"
"endtype"
"enum"
"enumerator"
"equivalence"
"extends"
"goto"
"interface"
"intrinsic"
"non_intrinsic"
"module"
"submodule"
"namelist"
"parameter"
"quiet"
@ -82,10 +72,23 @@
"sequence"
"stop"
"target"
"type"
"typeis"
] @keyword
[
"class"
"enum"
"endenum"
"type"
"endtype"
"module"
"endmodule"
"submodule"
"endsubmodule"
"interface"
"endinterface"
] @keyword.type
(default) @keyword
; Types

View file

@ -46,7 +46,7 @@
(source_file) @string.special.url)
(namespace_declaration
"namespace" @keyword
"namespace" @keyword.type
(alias_namespace) @module)
(type

View file

@ -210,11 +210,9 @@
[
"pass"
"class"
"class_name"
"extends"
"signal"
"enum"
"var"
"onready"
"export"
@ -227,6 +225,11 @@
"puppetsync"
] @keyword
[
"enum"
"class"
] @keyword.type
"func" @keyword.function
"return" @keyword.return

View file

@ -7,9 +7,10 @@
"const"
"varying"
"uniform"
"struct"
] @keyword
"struct" @keyword.type
[
(precision_qualifier)
(interpolation_qualifier)

View file

@ -102,15 +102,18 @@
"default"
"defer"
"goto"
"interface"
"range"
"select"
"struct"
"type"
"var"
"fallthrough"
] @keyword
[
"type"
"struct"
"interface"
] @keyword.type
"func" @keyword.function
"return" @keyword.return

View file

@ -123,10 +123,6 @@
"subscription"
"fragment"
"scalar"
"type"
"interface"
"union"
"enum"
"input"
"extend"
"directive"
@ -136,6 +132,13 @@
"implements"
] @keyword
[
"enum"
"union"
"type"
"interface"
] @keyword.type
; Punctuation
;------------
[

View file

@ -1,12 +1,13 @@
[
"!instanceof"
"assert"
"class"
"extends"
"instanceof"
"package"
] @keyword
"class" @keyword.type
[
"!in"
"as"

View file

@ -22,18 +22,21 @@
"function" @keyword.function
[
"type"
"interface"
"implements"
"class"
"using"
"namespace"
"attribute"
"const"
"extends"
"insteadof"
] @keyword
[
"class"
"type"
"interface"
"namespace"
] @keyword.type
[
"async"
"await"

View file

@ -41,14 +41,17 @@
; Keywords
[
"def"
"enum"
"export"
"let"
"struct"
"type"
"union"
] @keyword
[
"enum"
"struct"
"union"
"type"
] @keyword.type
"fn" @keyword.function
[

View file

@ -168,20 +168,23 @@
; Keywords
[
"assert"
"class"
"record"
"default"
"enum"
"extends"
"implements"
"instanceof"
"interface"
"@interface"
"permits"
"to"
"with"
] @keyword
[
"record"
"class"
"enum"
"interface"
] @keyword.type
(synchronized_statement
"synchronized" @keyword)

View file

@ -249,7 +249,7 @@
[
"struct"
"end"
] @keyword)
] @keyword.type)
(macro_definition
[

View file

@ -242,12 +242,15 @@
[
"val"
"var"
; "typeof" ; NOTE: It is reserved for future use
] @keyword
[
"enum"
"class"
"object"
"interface"
; "typeof" ; NOTE: It is reserved for future use
] @keyword
] @keyword.type
[
"return"

View file

@ -1,11 +1,14 @@
"grammar" @keyword
[
"enum"
"extern"
"grammar"
"match"
"type"
"enum"
] @keyword.type
[
"pub"
] @keyword
"extern"
] @keyword.modifier
[
"match"

View file

@ -12,12 +12,15 @@
"let"
"mapping"
"program"
"record"
"self"
"struct"
"then"
] @keyword
[
"record"
"struct"
] @keyword.type
"in" @keyword.operator
[

View file

@ -5,9 +5,7 @@
; Keywords
[
"arguments"
"classdef"
"end"
"enumeration"
"events"
"global"
"methods"
@ -15,6 +13,14 @@
"properties"
] @keyword
"enumeration" @keyword.type
(class_definition
[
"classdef"
"end"
] @keyword.type)
; Conditionals
(if_statement
[

View file

@ -408,7 +408,6 @@
"const"
"let"
"var"
"type"
"concept"
"asm"
"bind"
@ -416,14 +415,18 @@
"do"
"mixin"
"static"
"object"
"tuple"
"enum"
"block"
"using"
"discard"
] @keyword
[
"enum"
"object"
"type"
] @keyword.type
; =============================================================================
; @keyword.function ; keywords that define a function (e.g. `func` in Go, `def` in Python)
[

View file

@ -46,8 +46,8 @@
] @keyword
(class_declaration
"@" @keyword
"class" @keyword) ; I hate Obj-C for allowing "@ class" :)
"@" @keyword.type
"class" @keyword.type) ; I hate Obj-C for allowing "@ class" :)
(method_definition
[

View file

@ -120,7 +120,6 @@
"as"
"assert"
"begin"
"class"
"constraint"
"end"
"external"
@ -132,16 +131,20 @@
"method"
"module"
"new"
"object"
"of"
"sig"
"struct"
"type"
"val"
"when"
"with"
] @keyword
[
"object"
"class"
"struct"
"type"
] @keyword.type
[
"lazy"
"mutable"

View file

@ -14,9 +14,6 @@
[
"foreign"
"using"
"struct"
"enum"
"union"
"defer"
"cast"
"transmute"
@ -24,9 +21,15 @@
"map"
"bit_set"
"matrix"
"bit_field"
] @keyword
[
"struct"
"enum"
"union"
"bit_field"
] @keyword.type
"proc" @keyword.function
[

View file

@ -13,26 +13,29 @@
] @keyword.function
[
"class"
"clone"
"declare"
"default"
"echo"
"enddeclare"
"enum"
"extends"
"global"
"goto"
"implements"
"insteadof"
"interface"
"print"
"namespace"
"new"
"trait"
"unset"
] @keyword
[
"enum"
"class"
"interface"
"namespace"
"trait"
] @keyword.type
[
"abstract"
"const"

View file

@ -3,13 +3,7 @@
; Keywords
[
"type"
"actor"
"class"
"primitive"
"interface"
"trait"
"struct"
"embed"
"let"
"var"
@ -21,6 +15,15 @@
"where"
] @keyword
[
"class"
"struct"
"type"
"interface"
"trait"
"actor"
] @keyword.type
"fun" @keyword.function
"be" @keyword.coroutine

View file

@ -2,13 +2,16 @@
[
"datasource"
"enum"
"generator"
"model"
"type"
"view"
] @keyword
[
"type"
"enum"
] @keyword.type
(comment) @comment @spell
(developer_comment) @comment.documentation @spell

View file

@ -1,16 +1,19 @@
[
"enum"
"extend"
"extensions"
"message"
"oneof"
"option"
"reserved"
"service"
"syntax"
"to"
] @keyword
[
"enum"
"service"
"message"
] @keyword.type
"rpc" @keyword.function
"returns" @keyword.return

View file

@ -13,14 +13,17 @@
; Keywords
[
"class"
"inherits"
"node"
"type"
"tag"
"require"
] @keyword
[
"type"
"class"
] @keyword.type
[
"define"
"function"

View file

@ -90,13 +90,10 @@
(where)
"let"
"in"
"class"
"instance"
"derive"
"foreign"
"data"
"newtype"
"type"
"as"
"hiding"
"do"
@ -108,6 +105,12 @@
"infixr"
] @keyword
[
"type"
"newtype"
"class"
] @keyword.type
(class_instance
"else" @keyword)

View file

@ -300,7 +300,6 @@
[
"assert"
"class"
"exec"
"global"
"nonlocal"
@ -308,9 +307,13 @@
"print"
"with"
"as"
"type"
] @keyword
[
"type"
"class"
] @keyword.type
[
"async"
"await"

View file

@ -1,13 +1,11 @@
[
"as"
"by"
"class"
"extends"
"from"
"implies"
"in"
"module"
"newtype"
"order"
"select"
"where"
@ -16,6 +14,11 @@
(specialId)
] @keyword
[
"newtype"
"class"
] @keyword.type
[
"and"
"not"

View file

@ -102,13 +102,16 @@
"property"
"signal"
"declare"
"enum"
"export"
"implements"
"interface"
"namespace"
"type"
"override"
] @keyword
[
"interface"
"type"
"enum"
"namespace"
] @keyword.type
"keyof" @keyword.operator

View file

@ -16,10 +16,7 @@
[
"use"
"as"
"class"
"module"
"interface"
"type"
"def"
"attr_reader"
"attr_writer"
@ -28,6 +25,18 @@
"alias"
] @keyword
[
"interface"
"type"
"class"
] @keyword.type
(class_decl
"end" @keyword.type)
(interface_decl
"end" @keyword.type)
"def" @keyword.function
; Members of declaration

View file

@ -8,7 +8,6 @@
[
"alias"
"begin"
"class"
"do"
"end"
"ensure"
@ -17,6 +16,8 @@
"then"
] @keyword
"class" @keyword.type
[
"return"
"yield"

View file

@ -243,18 +243,21 @@
[
"default"
"enum"
"impl"
"let"
"move"
"struct"
"trait"
"type"
"union"
"unsafe"
"where"
] @keyword
[
"enum"
"struct"
"union"
"trait"
"type"
] @keyword.type
[
"async"
"await"

View file

@ -170,8 +170,6 @@
[
"case"
"class"
"enum"
"extends"
"derives"
"finally"
@ -180,8 +178,6 @@
"object"
"override"
"package"
"trait"
"type"
"val"
"var"
"with"
@ -193,6 +189,13 @@
"with"
] @keyword
[
"enum"
"class"
"trait"
"type"
] @keyword.type
[
"abstract"
"final"

View file

@ -214,7 +214,7 @@
] @keyword)
(enum_definition
"enum" @keyword)
"enum" @keyword.type)
(for_loop
[
@ -250,7 +250,7 @@
] @keyword)
(struct_definition
"struct" @keyword)
"struct" @keyword.type)
(transitions_definition
[

View file

@ -16,7 +16,13 @@
"list"
"map"
"set"
] @type.builtin
"structure"
"union"
"namespace"
"service"
"operation"
"resource"
] @keyword.type
; Fields (Members)
; (field) @variable.member
@ -57,12 +63,6 @@
; Keywords
[
"namespace"
"service"
"structure"
"operation"
"union"
"resource"
"metadata"
"apply"
"for"

View file

@ -141,12 +141,8 @@
; Keywords
[
"contract"
"interface"
"library"
"is"
"struct"
"enum"
"event"
"assembly"
"emit"
@ -161,6 +157,13 @@
(virtual)
] @keyword
[
"enum"
"struct"
"contract"
"interface"
] @keyword.type
; FIXME: update grammar
; (block_statement "unchecked" @keyword)
(event_parameter

View file

@ -276,8 +276,6 @@
"__nullable__"
"defined"
"delete"
"enum"
"funcenum"
"functag"
"get"
"methodmap"
@ -285,12 +283,17 @@
"property"
"public"
"set"
"struct"
"typedef"
"typeset"
"void"
] @keyword
[
"enum"
"funcenum"
"struct"
"typedef"
] @keyword.type
[
"const"
"native"

View file

@ -1,15 +1,18 @@
; Keywords
[
"class"
"clone"
"delete"
"enum"
"extends"
"rawcall"
"resume"
"var"
] @keyword
[
"class"
"enum"
] @keyword.type
"function" @keyword.function
[

View file

@ -67,11 +67,6 @@
bound_identifier: (simple_identifier)) @variable
[
"typealias"
"struct"
"class"
"actor"
"enum"
"protocol"
"extension"
"indirect"
@ -87,6 +82,13 @@
"willSet"
] @keyword
[
"enum"
"struct"
"class"
"typealias"
] @keyword.type
[
"async"
"await"

View file

@ -61,7 +61,7 @@
"enum"
"struct"
"union"
] @keyword
] @keyword.type
"sizeof" @keyword.operator

View file

@ -7,8 +7,6 @@
; Keywords
[
"assert"
"class"
"multiclass"
"field"
"let"
"def"
@ -17,6 +15,11 @@
"defvar"
] @keyword
[
"multiclass"
"class"
] @keyword.type
"in" @keyword.operator
; Conditionals

View file

@ -37,12 +37,13 @@
[
"error"
"namespace"
"on"
"set"
"try"
] @keyword
"namespace" @keyword.type
(unpack) @operator
[

View file

@ -153,24 +153,24 @@
; Types
(record_declaration
.
"record" @keyword
"record" @keyword.type
name: (identifier) @type)
(anon_record
.
"record" @keyword)
"record" @keyword.type)
(record_body
(record_declaration
.
"record" @keyword
"record" @keyword.type
.
name: (identifier) @type))
(record_body
(enum_declaration
.
"enum" @keyword
"enum" @keyword.type
.
name: (identifier) @type))
@ -191,7 +191,7 @@
(userdata) @keyword)
(enum_declaration
"enum" @keyword
"enum" @keyword.type
name: (identifier) @type)
(type_declaration

View file

@ -120,19 +120,22 @@
; Keywords
[
"enum"
"exception"
"extends"
"interaction"
"namespace"
"senum"
"service"
"struct"
"typedef"
"union"
"uri"
] @keyword
[
"enum"
"struct"
"union"
"senum"
"interaction"
"namespace"
"service"
] @keyword.type
; Deprecated Keywords
[
"cocoa_prefix"

View file

@ -42,7 +42,6 @@
"then"
"type"
"var"
"class"
"extends"
"_cast"
"_chunks"
@ -51,6 +50,8 @@
"_namety"
] @keyword
"class" @keyword.type
; }}}
; Operators {{{
(operator) @operator

View file

@ -7,12 +7,9 @@
[
"declare"
"enum"
"export"
"implements"
"interface"
"type"
"namespace"
"override"
"module"
"asserts"
@ -21,6 +18,12 @@
"using"
] @keyword
[
"namespace"
"interface"
"enum"
] @keyword.type
[
"keyof"
"satisfies"

View file

@ -39,11 +39,12 @@
(identifier) @module)
[
"class"
"def"
"over"
] @keyword.function
"class" @keyword.type
[
"("
")"

View file

@ -10,16 +10,19 @@
"assert"
"const"
"defer"
"enum"
"goto"
"interface"
"struct"
"sql"
"type"
"union"
"unsafe"
] @keyword
[
"enum"
"union"
"struct"
"interface"
"type"
] @keyword.type
[
"as"
"in"

View file

@ -174,17 +174,12 @@
[
"abstract"
"class"
"construct"
"continue"
"default"
"delegate"
"enum"
"errordomain"
"get"
"inline"
"interface"
"namespace"
"new"
"out"
"override"
@ -192,11 +187,20 @@
"ref"
"set"
"signal"
"struct"
"virtual"
"with"
] @keyword
[
"enum"
"class"
"struct"
"interface"
"namespace"
] @keyword.type
"delegate" @keyword.function
[
"async"
"yield"

View file

@ -6,10 +6,6 @@
"endmodule"
"program"
"endprogram"
"class"
"endclass"
"interface"
"endinterface"
"package"
"endpackage"
"checker"
@ -40,6 +36,16 @@
(unique_priority)
] @keyword
[
"class"
"endclass"
"interface"
"endinterface"
"enum"
"struct"
"union"
] @keyword.type
[
"function"
"endfunction"
@ -265,10 +271,6 @@
(data_type
"packed" @keyword.modifier))
(struct_union) @type
"enum" @type
(enum_name_declaration
(enum_identifier
(simple_identifier) @constant))

View file

@ -27,7 +27,6 @@
(type_declaration) @function.call)
[
"struct"
"bitcast"
"discard"
"enable"
@ -39,6 +38,8 @@
(texel_format)
] @keyword
"struct" @keyword.type
[
"private"
"storage"

View file

@ -79,12 +79,13 @@
[
"as"
"bring"
"class"
"let"
"new"
(inflight_specifier)
] @keyword
"class" @keyword.type
[
"for"
"in"

View file

@ -98,13 +98,16 @@ field_constant: (IDENTIFIER) @constant
"defer"
"errdefer"
"test"
"struct"
"union"
"enum"
"opaque"
"error"
] @keyword
[
"struct"
"union"
"enum"
] @keyword.type
[
"async"
"await"

View file

@ -35,7 +35,7 @@ using Cxx = import "c++.capnp";
$Cxx.namespace("capnproto_test::capnp::test");
enum TestEnum {
# <- @keyword
# <- @keyword.type
# ^^^^^^^^ @type
foo @0;
# ^^^ @constant
@ -51,7 +51,7 @@ enum TestEnum {
# <- @punctuation.bracket
struct TestAllTypes {
# <- @keyword
# <- @keyword.type
voidField @0 : Void;
# ^^^^^^^^^ @variable.member
# ^ @punctuation.special
@ -97,7 +97,7 @@ struct TestInterleavedGroups {
foo @0 :UInt32;
bar @2 :UInt64;
union {
# ^^^^^ @keyword
# ^^^^^ @keyword.type
qux @4 :UInt16;
corge :group {
# ^^^^^ @type
@ -114,7 +114,7 @@ struct TestInterleavedGroups {
}
group2 :group {
# ^^^^^ @keyword
# ^^^^^ @keyword.type
foo @1 :UInt32;
bar @3 :UInt64;
union {
@ -214,7 +214,7 @@ struct TestGenerics(Foo, Bar) {
qux @3 :Qux;
interface DeepNestInterface(Quux) {
# ^^^^^^^^^ @keyword
# ^^^^^^^^^ @keyword.type
# At one time this failed to compile.
call @0 () -> ();
# ^^^^ @function.method
@ -230,7 +230,7 @@ struct TestGenerics(Foo, Bar) {
}
annotation ann(struct) :Foo;
# ^^^^^^^^^^ @keyword
# ^^^^^^^^^^ @keyword.type
# ^^^ @function.method
# ^^^^^^ @variable.parameter.builtin

View file

@ -1,7 +1,7 @@
template <class T, class U>
concept Derived = std::is_base_of<U, T>::value;
// ^ @keyword
// ^ @keyword.type
// ^ @type.definition
template<typename T>

View file

@ -3,7 +3,7 @@ include: SomeFile.fusion
// ^ @string.special.url
namespace: ns = Neos.Fusion.Space
//<- @keyword
//<- @keyword.type
// ^ @module
// ^ @operator
// ^ @module

View file

@ -5,9 +5,9 @@ use function Space\Func\F as E;
// ^ @function
// ^ @function
use type Space\Type\T;
// ^ @keyword
// ^ @keyword.type
use namespace Space\Name\N as M;
// ^ @keyword
// ^ @keyword.type
// ^ @module
use namespace Space\Name2\N2, Space\Nothing\N3 as N8, type Space\Type2\N4,;

View file

@ -47,7 +47,7 @@ model Reaction {
}
enum ReactionType {
// ^ keyword
// ^ keyword.type
LIKE
HAHA
SAD

View file

@ -12,7 +12,7 @@ import * as something from "anotherFile";
/// @title Voting with delegation.
// <- @comment
contract Ballot {
// ^keyword
// ^keyword.type
// ^ @type
// This declares a new complex type which will
// be used for variables later.

View file

@ -44,17 +44,17 @@ Var.Assign padd = (CAddition const * volatile)&d
; ^ @variable
Var.Assign e1 = (enum e2)&e
; ^ @variable
; ^ @keyword
; ^ @keyword.type
; ^ @type
; ^ @variable
Var.Assign *vector = (struct Vector3d*)&acceleration
; ^ @variable
; ^ @keyword
; ^ @keyword.type
; ^ @type
; ^ @variable
Var.Assign z = (union foo)x
; ^ @variable
; ^ @keyword
; ^ @keyword.type
; ^ @type
; ^ @variable
Var.Assign b = -a

View file

@ -1,11 +1,11 @@
let
class A extends Object {}
/* <- @keyword */
/* <- @keyword.type */
/* ^ @keyword */
/* ^ @type.builtin */
type B = class extends A {
/* ^ @keyword */
/* ^ @keyword.type */
/* ^ @keyword */
/* ^ @type */

View file

@ -2,7 +2,7 @@ bring cloud;
// <- @keyword
class Foo {
// <- @keyword
// <- @keyword.type
// ^ @type
// ^ @punctuation.bracket
name: str;