diff --git a/languages.toml b/languages.toml index 3fd8f14c..e4399540 100644 --- a/languages.toml +++ b/languages.toml @@ -2150,7 +2150,7 @@ indent = { tab-width = 2, unit = " " } [[grammar]] name = "dart" -source = { git = "https://github.com/UserNobody14/tree-sitter-dart", rev = "e398400a0b785af3cf571f5a57eccab242f0cdf9" } +source = { git = "https://github.com/UserNobody14/tree-sitter-dart", rev = "a9bdfa3db2fbc9b9f12c93450d04a671f33a5102" } [[language]] name = "scala" diff --git a/runtime/queries/dart/highlights.scm b/runtime/queries/dart/highlights.scm index 37ec1432..d9154670 100644 --- a/runtime/queries/dart/highlights.scm +++ b/runtime/queries/dart/highlights.scm @@ -11,14 +11,20 @@ ; -------------------- (annotation name: (identifier) @attribute) -(marker_annotation - name: (identifier) @attribute) ; Types ; -------------------- (class_definition name: (identifier) @type) +; Dart 3 extension types and extensions +(extension_type_declaration + name: (identifier) @type) +(extension_declaration + name: (identifier) @type) +(representation_declaration + name: (identifier) @variable.other.member) + (constructor_signature name: (identifier) @function.method) @@ -83,6 +89,14 @@ (named_argument (label (identifier) @variable)) +; Dart 3 dot-shorthand (`.red`): the member resolved from the context type. +(dot_shorthand + (identifier) @variable.other.member) + +; Statement labels (`outer:` … `break outer;`). +(labeled_statement + (identifier) @label) + ; Literals ; -------------------- [ @@ -190,12 +204,15 @@ "throw" "catch" "finally" + (rethrow_builtin) (break_statement) ] @keyword.control.exception ; Reserved words (cannot be used as identifiers) [ (case_builtin) + (assert_builtin) + (part_of_builtin) "abstract" "async" "async*" @@ -204,7 +221,6 @@ "class" "covariant" "deferred" - "dynamic" "enum" "extends" "extension" @@ -233,4 +249,4 @@ ; when used as an identifier: ((identifier) @variable.builtin - (#match? @variable.builtin "^(abstract|as|base|covariant|deferred|dynamic|export|external|factory|final|Function|get|implements|import|interface|library|operator|mixin|part|sealed|set|static|typedef)$")) + (#match? @variable.builtin "^(abstract|as|base|covariant|deferred|export|external|factory|final|Function|get|implements|import|interface|library|operator|mixin|part|sealed|set|static|typedef)$")) diff --git a/runtime/queries/dart/textobjects.scm b/runtime/queries/dart/textobjects.scm index b88b97bc..5750300c 100644 --- a/runtime/queries/dart/textobjects.scm +++ b/runtime/queries/dart/textobjects.scm @@ -7,6 +7,9 @@ (extension_declaration (extension_body) @class.inside) @class.around +(extension_type_declaration + body: (_) @class.inside) @class.around + (enum_declaration body: (_) @class.inside) @class.around