{ "information_for_contributors": [ "This file has been converted from https://github.com/dart-lang/dart-syntax-highlight/blob/master/grammars/dart.json", "If you want to provide a fix or improvement, please create a pull request against the original repository.", "Once accepted there, we are happy to receive an update request." ], "version": "https://github.com/dart-lang/dart-syntax-highlight/commit/9d4857e114b7000d94232d83187ad142961c678a", "name": "Dart", "scopeName": "source.dart", "patterns": [ { "name": "meta.preprocessor.script.dart", "match": "^(#!.*)$" }, { "name": "meta.declaration.dart", "begin": "^\\w*\\b(library|import|part of|part|export)\\b", "beginCaptures": { "0": { "name": "keyword.other.import.dart" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.terminator.dart" } }, "patterns": [ { "include": "#strings" }, { "include": "#comments" }, { "name": "keyword.other.import.dart", "match": "\\b(as|show|hide)\\b" }, { "name": "keyword.control.dart", "match": "\\b(if)\\b" } ] }, { "include": "#comments" }, { "include": "#punctuation" }, { "include": "#annotations" }, { "include": "#keywords" }, { "include": "#constants-and-special-vars" }, { "include": "#strings" } ], "repository": { "dartdoc": { "patterns": [ { "match": "(\\[.*?\\])", "captures": { "0": { "name": "variable.name.source.dart" } } }, { "match": "^ {4,}(?![ \\*]).*", "captures": { "0": { "name": "variable.name.source.dart" } } }, { "contentName": "variable.other.source.dart", "begin": "```.*?$", "end": "```" }, { "match": "(`.*?`)", "captures": { "0": { "name": "variable.other.source.dart" } } }, { "match": "(`.*?`)", "captures": { "0": { "name": "variable.other.source.dart" } } }, { "match": "(\\* (( ).*))$", "captures": { "2": { "name": "variable.other.source.dart" } } } ] }, "comments": { "patterns": [ { "name": "comment.block.empty.dart", "match": "/\\*\\*/", "captures": { "0": { "name": "punctuation.definition.comment.dart" } } }, { "include": "#comments-doc-oldschool" }, { "include": "#comments-doc" }, { "include": "#comments-inline" } ] }, "comments-doc-oldschool": { "patterns": [ { "name": "comment.block.documentation.dart", "begin": "/\\*\\*", "end": "\\*/", "patterns": [ { "include": "#comments-doc-oldschool" }, { "include": "#comments-block" }, { "include": "#dartdoc" } ] } ] }, "comments-doc": { "patterns": [ { "name": "comment.block.documentation.dart", "begin": "///", "while": "^\\s*///", "patterns": [ { "include": "#dartdoc" } ] } ] }, "comments-inline": { "patterns": [ { "include": "#comments-block" }, { "match": "((//).*)$", "captures": { "1": { "name": "comment.line.double-slash.dart" } } } ] }, "comments-block": { "patterns": [ { "name": "comment.block.dart", "begin": "/\\*", "end": "\\*/", "patterns": [ { "include": "#comments-block" } ] } ] }, "annotations": { "patterns": [ { "name": "storage.type.annotation.dart", "match": "@[a-zA-Z]+" } ] }, "constants-and-special-vars": { "patterns": [ { "name": "constant.language.dart", "match": "(??]|,\\s*|\\s+extends\\s+)+>)?|bool\\b|num\\b|int\\b|double\\b|dynamic\\b|(void)\\b)", "captures": { "1": { "name": "support.class.dart" }, "2": { "patterns": [ { "include": "#type-args" } ] }, "3": { "name": "storage.type.primitive.dart" } } } ] }, "function-identifier": { "patterns": [ { "match": "([_$]*[a-z][a-zA-Z0-9_$]*)(<(?:[a-zA-Z0-9_$<>?]|,\\s*|\\s+extends\\s+)+>)?[!?]?(\\(|\\s+=>)", "captures": { "1": { "name": "entity.name.function.dart" }, "2": { "patterns": [ { "include": "#type-args" } ] } } } ] }, "type-args": { "begin": "(<)", "end": "(>)", "beginCaptures": { "1": { "name": "other.source.dart" } }, "endCaptures": { "1": { "name": "other.source.dart" } }, "patterns": [ { "include": "#class-identifier" }, { "match": "[\\s,]+" }, { "name": "keyword.declaration.dart", "match": "extends" } ] }, "keywords": { "patterns": [ { "name": "keyword.cast.dart", "match": "(?>>?|~|\\^|\\||&)" }, { "name": "keyword.operator.assignment.bitwise.dart", "match": "((&|\\^|\\||<<|>>>?)=)" }, { "name": "keyword.operator.closure.dart", "match": "(=>)" }, { "name": "keyword.operator.comparison.dart", "match": "(==|!=|<=?|>=?)" }, { "name": "keyword.operator.assignment.arithmetic.dart", "match": "(([+*/%-]|\\~)=)" }, { "name": "keyword.operator.assignment.dart", "match": "(=)" }, { "name": "keyword.operator.increment-decrement.dart", "match": "(\\-\\-|\\+\\+)" }, { "name": "keyword.operator.arithmetic.dart", "match": "(\\-|\\+|\\*|\\/|\\~\\/|%)" }, { "name": "keyword.operator.logical.dart", "match": "(!|&&|\\|\\|)" }, { "name": "storage.modifier.dart", "match": "(?