UNPKG

tm-grammars

Version:
602 lines (601 loc) 14.4 kB
{ "displayName": "Dart", "name": "dart", "patterns": [ { "match": "^(#!.*)$", "name": "meta.preprocessor.script.dart" }, { "begin": "^\\w*\\b(augment\\s+library|library|import\\s+augment|import|part\\s+of|part|export)\\b", "beginCaptures": { "0": { "name": "keyword.other.import.dart" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.terminator.dart" } }, "name": "meta.declaration.dart", "patterns": [ { "include": "#strings" }, { "include": "#comments" }, { "match": "\\b(as|show|hide)\\b", "name": "keyword.other.import.dart" }, { "match": "\\b(if)\\b", "name": "keyword.control.dart" } ] }, { "include": "#comments" }, { "include": "#punctuation" }, { "include": "#annotations" }, { "include": "#keywords" }, { "include": "#constants-and-special-vars" }, { "include": "#class-identifier-with-optional-factory-method" }, { "include": "#function-identifier" }, { "include": "#operators" }, { "include": "#strings" } ], "repository": { "annotations": { "patterns": [ { "match": "@[A-Za-z]+", "name": "storage.type.annotation.dart" } ] }, "class-identifier": { "patterns": [ { "match": "(?<!\\$)\\b(bool|num|int|double|dynamic)\\b(?!\\$)", "name": "support.class.dart" }, { "match": "(?<!\\$)\\bvoid\\b(?!\\$)", "name": "storage.type.primitive.dart" }, { "begin": "(?<![$0-9A-Z_a-z])([$_]*[A-Z][$0-9A-Z_a-z]*)\\b", "beginCaptures": { "1": { "name": "support.class.dart" } }, "end": "(?!<)", "patterns": [ { "include": "#type-args" } ] } ] }, "class-identifier-with-optional-factory-method": { "patterns": [ { "captures": { "1": { "name": "support.class.dart" }, "2": { "name": "entity.name.function.dart" } }, "match": "(?<!\\$)\\b(bool|num|int|double|dynamic)\\b(?!\\$)\\s*(factory\\b)?" }, { "captures": { "1": { "name": "storage.type.primitive.dart" }, "2": { "name": "entity.name.function.dart" } }, "match": "(?<!\\$)\\b(void)\\b(?!\\$)\\s*(factory\\b)?" }, { "begin": "(?<![$0-9A-Z_a-z])([$_]*[A-Z][$0-9A-Z_a-z]*)\\b\\s*(factory\\b)?", "beginCaptures": { "1": { "name": "support.class.dart" }, "2": { "name": "entity.name.function.dart" } }, "end": "(?!<)", "patterns": [ { "include": "#type-args" } ] } ] }, "comments": { "patterns": [ { "captures": { "0": { "name": "punctuation.definition.comment.dart" } }, "match": "/\\*\\*/", "name": "comment.block.empty.dart" }, { "include": "#comments-doc-oldschool" }, { "include": "#comments-doc" }, { "include": "#comments-inline" } ] }, "comments-block": { "patterns": [ { "begin": "/\\*", "end": "\\*/", "name": "comment.block.dart", "patterns": [ { "include": "#comments-block" } ] } ] }, "comments-doc": { "patterns": [ { "begin": "///", "end": "^(?!\\s*///)", "name": "comment.block.documentation.dart", "patterns": [ { "include": "#dartdoc" } ] } ] }, "comments-doc-oldschool": { "patterns": [ { "begin": "/\\*\\*", "end": "\\*/", "name": "comment.block.documentation.dart", "patterns": [ { "include": "#comments-doc-oldschool" }, { "include": "#comments-block" }, { "include": "#dartdoc" } ] } ] }, "comments-inline": { "patterns": [ { "include": "#comments-block" }, { "captures": { "1": { "name": "comment.line.double-slash.dart" } }, "match": "((//).*)$" } ] }, "constants-and-special-vars": { "patterns": [ { "match": "(?<!\\$)\\b(true|false|null)\\b(?!\\$)", "name": "constant.language.dart" }, { "match": "(?<!\\$)\\b(this|super|augmented)\\b(?!\\$)", "name": "variable.language.dart" }, { "match": "(?<!\\$)\\b((0([Xx])\\h[_\\h]*)|(([0-9][0-9_]*\\.?[0-9_]*)|(\\.[0-9][0-9_]*))(([Ee])([-+])?[0-9][0-9_]*)?)\\b(?!\\$)", "name": "constant.numeric.dart" } ] }, "dartdoc": { "patterns": [ { "captures": { "0": { "name": "variable.name.source.dart" } }, "match": "(\\[.*?])" }, { "begin": "^\\s*///\\s*(```)", "end": "^(?:\\s*///\\s*(```)|(?!\\s*///))", "patterns": [ { "include": "#dartdoc-codeblock-triple" } ] }, { "begin": "^\\s*\\*\\s*(```)", "end": "^(?:\\s*\\*\\s*(```)|(?=\\s*\\*/))", "patterns": [ { "include": "#dartdoc-codeblock-block" } ] }, { "match": "`[^\\n`]+`", "name": "variable.other.source.dart" }, { "captures": { "1": { "name": "variable.other.source.dart" } }, "match": "(?:\\*|//)\\s{4,}(.*?)(?=($|\\*/))" } ] }, "dartdoc-codeblock-block": { "begin": "^\\s*\\*\\s*(?!(\\s*```|/))", "contentName": "variable.other.source.dart", "end": "\\n" }, "dartdoc-codeblock-triple": { "begin": "^\\s*///\\s*(?!\\s*```)", "contentName": "variable.other.source.dart", "end": "\\n" }, "expression": { "patterns": [ { "include": "#constants-and-special-vars" }, { "include": "#class-identifier-with-optional-factory-method" }, { "include": "#function-identifier" }, { "include": "#strings" }, { "match": "[0-9A-Z_a-z]+", "name": "variable.parameter.dart" }, { "begin": "\\{", "end": "}", "patterns": [ { "include": "#expression" } ] } ] }, "function-identifier": { "patterns": [ { "captures": { "1": { "name": "entity.name.function.dart" }, "2": { "patterns": [ { "include": "#type-args" } ] } }, "match": "([$_]*[a-z][$0-9A-Z_a-z]*)(<(?:[$0-9<>?A-Z_a-z]|,\\s*|\\s+extends\\s+)+>)?[!?]?\\(" }, { "match": "(?<=\\.)new\\b", "name": "entity.name.function.dart" } ] }, "keywords": { "patterns": [ { "match": "(?<!\\$)\\bas\\b(?!\\$)", "name": "keyword.cast.dart" }, { "match": "(?<!\\$)\\b(try|on|catch|finally|throw|rethrow)\\b(?!\\$)", "name": "keyword.control.catch-exception.dart" }, { "match": "(?<!\\$)\\b(break|case|continue|default|do|else|for|if|in|switch|while|when)\\b(?!\\$)", "name": "keyword.control.dart" }, { "match": "(?<!\\$)\\b(sync(\\*)?|async(\\*)?|await|yield(\\*)?)\\b(?!\\$)", "name": "keyword.control.dart" }, { "match": "(?<!\\$)\\bassert\\b(?!\\$)", "name": "keyword.control.dart" }, { "match": "(?<![$.])\\b(new)\\b(?!\\$)", "name": "keyword.new.dart" }, { "match": "(?<!\\$)\\b(return)\\b(?!\\$)", "name": "keyword.control.return.dart" }, { "match": "(?<!\\$)\\b(abstract|sealed|base|interface|class|enum|extends|extension\\s+type|extension|external|factory|implements|get(?![(<])|mixin|native|operator|set(?![(<])|typedef|with|covariant)\\b(?!\\$)", "name": "keyword.declaration.dart" }, { "match": "(?<!\\$)\\b(macro|augment|static|final|const|required|late)\\b(?!\\$)", "name": "storage.modifier.dart" }, { "match": "(?<!\\$)\\bvar\\b(?!\\$)", "name": "storage.type.primitive.dart" } ] }, "operators": { "patterns": [ { "match": "(?<!\\$)\\b(is!?)\\b(?!\\$)", "name": "keyword.operator.dart" }, { "match": "[:?]", "name": "keyword.operator.ternary.dart" }, { "match": "(<<|>>>?|[\\&^|~])", "name": "keyword.operator.bitwise.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" } ] }, "punctuation": { "patterns": [ { "match": ",", "name": "punctuation.comma.dart" }, { "match": ";", "name": "punctuation.terminator.dart" }, { "match": "\\.", "name": "punctuation.dot.dart" } ] }, "string-interp": { "patterns": [ { "captures": { "1": { "name": "variable.parameter.dart" } }, "match": "\\$([0-9A-Z_a-z]+)", "name": "meta.embedded.expression.dart" }, { "begin": "\\$\\{", "end": "}", "name": "meta.embedded.expression.dart", "patterns": [ { "include": "#expression" } ] }, { "match": "\\\\.", "name": "constant.character.escape.dart" } ] }, "strings": { "patterns": [ { "begin": "(?<!r)\"\"\"", "end": "\"\"\"(?!\")", "name": "string.interpolated.triple.double.dart", "patterns": [ { "include": "#string-interp" } ] }, { "begin": "(?<!r)'''", "end": "'''(?!')", "name": "string.interpolated.triple.single.dart", "patterns": [ { "include": "#string-interp" } ] }, { "begin": "r\"\"\"", "end": "\"\"\"(?!\")", "name": "string.quoted.triple.double.dart" }, { "begin": "r'''", "end": "'''(?!')", "name": "string.quoted.triple.single.dart" }, { "begin": "(?<!\\|r)\"", "end": "\"", "name": "string.interpolated.double.dart", "patterns": [ { "match": "\\n", "name": "invalid.string.newline" }, { "include": "#string-interp" } ] }, { "begin": "r\"", "end": "\"", "name": "string.quoted.double.dart", "patterns": [ { "match": "\\n", "name": "invalid.string.newline" } ] }, { "begin": "(?<!\\|r)'", "end": "'", "name": "string.interpolated.single.dart", "patterns": [ { "match": "\\n", "name": "invalid.string.newline" }, { "include": "#string-interp" } ] }, { "begin": "r'", "end": "'", "name": "string.quoted.single.dart", "patterns": [ { "match": "\\n", "name": "invalid.string.newline" } ] } ] }, "type-args": { "begin": "(<)", "beginCaptures": { "1": { "name": "other.source.dart" } }, "end": "(>)", "endCaptures": { "1": { "name": "other.source.dart" } }, "patterns": [ { "include": "#class-identifier" }, { "match": "," }, { "match": "extends", "name": "keyword.declaration.dart" }, { "include": "#comments" } ] } }, "scopeName": "source.dart" }