| { |
| "name": "Dart", |
| "version": "1.4.1", |
| "fileTypes": [ |
| "dart" |
| ], |
| "scopeName": "source.dart", |
| |
| "foldingStartMarker": "\\{\\s*$", |
| "foldingStopMarker": "^\\s*\\}", |
| |
| "patterns": [ |
| { |
| "name": "meta.preprocessor.script.dart", |
| "match": "^(#!.*)$" |
| }, |
| { |
| "name": "meta.declaration.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" |
| } |
| }, |
| "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": "#operators" |
| }, |
| { |
| "include": "#strings" |
| } |
| ], |
| |
| "repository": { |
| "dartdoc-codeblock-triple": { |
| "begin": "^\\s*///\\s*(?!\\s*```)", |
| "end": "\n", |
| "contentName": "variable.other.source.dart" |
| }, |
| "dartdoc-codeblock-block": { |
| "begin": "^\\s*\\*\\s*(?!(\\s*```|\/))", |
| "end": "\n", |
| "contentName": "variable.other.source.dart" |
| }, |
| "dartdoc": { |
| "patterns": [ |
| { |
| "match": "(\\[.*?\\])", |
| "captures": { |
| "0": { |
| "name": "variable.name.source.dart" |
| } |
| } |
| }, |
| { |
| "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" |
| }, |
| { |
| "match": "(?:\\*|\\/\\/)\\s{4,}(.*?)(?=($|\\*\\/))", |
| "captures": { |
| "1": { |
| "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": "///", |
| "end": "^(?!\\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": "(?<!\\$)\\b(true|false|null)\\b(?!\\$)" |
| }, |
| { |
| "name": "variable.language.dart", |
| "match": "(?<!\\$)\\b(this|super|augmented)\\b(?!\\$)" |
| }, |
| { |
| "name": "constant.numeric.dart", |
| "match": "(?<!\\$)\\b((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(([0-9][0-9_]*\\.?[0-9_]*)|(\\.[0-9][0-9_]*))((e|E)(\\+|-)?[0-9][0-9_]*)?)\\b(?!\\$)" |
| }, |
| { |
| "include": "#class-identifier" |
| }, |
| { |
| "include": "#function-identifier" |
| } |
| |
| ] |
| }, |
| "class-identifier": { |
| "patterns": [ |
| { |
| "match": "(?<!\\$)\\b(bool|num|int|double|dynamic)\\b(?!\\$)", |
| "name": "support.class.dart" |
| }, |
| { |
| "match": "(?<!\\$)\\bvoid\\b(?!\\$)", |
| "name": "storage.type.primitive.dart" |
| }, |
| { |
| "begin": "(?<![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*)\\b", |
| "end": "(?!<)", |
| "beginCaptures": { |
| "1": { |
| "name": "support.class.dart" |
| } |
| }, |
| "patterns": [ |
| { |
| "include": "#type-args" |
| } |
| ] |
| } |
| ] |
| }, |
| "function-identifier": { |
| "patterns": [ |
| { |
| "match": "([_$]*[a-z][a-zA-Z0-9_$]*)(<(?:[a-zA-Z0-9_$<>?]|,\\s*|\\s+extends\\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": "," |
| }, |
| { |
| "name": "keyword.declaration.dart", |
| "match": "extends" |
| }, |
| { |
| "include": "#comments" |
| } |
| ] |
| }, |
| "keywords": { |
| "patterns": [ |
| { |
| "name": "keyword.cast.dart", |
| "match": "(?<!\\$)\\bas\\b(?!\\$)" |
| }, |
| { |
| "name": "keyword.control.catch-exception.dart", |
| "match": "(?<!\\$)\\b(try|on|catch|finally|throw|rethrow)\\b(?!\\$)" |
| }, |
| { |
| "name": "keyword.control.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.new.dart", |
| "match": "(?<!\\$)\\b(new)\\b(?!\\$)" |
| }, |
| { |
| "name": "keyword.control.return.dart", |
| "match": "(?<!\\$)\\b(return)\\b(?!\\$)" |
| }, |
| { |
| "name": "keyword.declaration.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": "storage.modifier.dart", |
| "match": "(?<!\\$)\\b(macro|augment|static|final|const|required|late)\\b(?!\\$)" |
| }, |
| { |
| "name": "storage.type.primitive.dart", |
| "match": "(?<!\\$)\\b(?:void|var)\\b(?!\\$)" |
| } |
| ] |
| }, |
| "operators": { |
| "patterns": [ |
| { |
| "name": "keyword.operator.dart", |
| "match": "(?<!\\$)\\b(is\\!?)\\b(?!\\$)" |
| }, |
| { |
| "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", |
| "match": "(!|&&|\\|\\|)" |
| } |
| ] |
| }, |
| "expression": { |
| "patterns": [ |
| { |
| "include": "#constants-and-special-vars" |
| }, |
| { |
| "include": "#strings" |
| }, |
| { |
| "name": "variable.parameter.dart", |
| "match": "[a-zA-Z0-9_]+" |
| }, |
| { |
| "begin": "\\{", |
| "end": "\\}", |
| "patterns": [ |
| { |
| "include": "#expression" |
| } |
| ] |
| } |
| ] |
| }, |
| "string-interp": { |
| "patterns": [ |
| { |
| "name": "meta.embedded.expression.dart", |
| "match": "\\$([a-zA-Z0-9_]+)", |
| "captures": { |
| "1": { |
| "name": "variable.parameter.dart" |
| } |
| } |
| }, |
| { |
| "name": "meta.embedded.expression.dart", |
| "begin": "\\$\\{", |
| "end": "\\}", |
| "patterns": [ |
| { |
| "include": "#expression" |
| } |
| ] |
| }, |
| { |
| "name": "constant.character.escape.dart", |
| "match": "\\\\." |
| } |
| ] |
| }, |
| "strings": { |
| "patterns": [ |
| { |
| "name": "string.interpolated.triple.double.dart", |
| "begin": "(?<!r)\"\"\"", |
| "end": "\"\"\"(?!\")", |
| "patterns": [ |
| { |
| "include": "#string-interp" |
| } |
| ] |
| }, |
| { |
| "name": "string.interpolated.triple.single.dart", |
| "begin": "(?<!r)'''", |
| "end": "'''(?!')", |
| "patterns": [ |
| { |
| "include": "#string-interp" |
| } |
| ] |
| }, |
| { |
| "name": "string.quoted.triple.double.dart", |
| "begin": "r\"\"\"", |
| "end": "\"\"\"(?!\")" |
| }, |
| { |
| "name": "string.quoted.triple.single.dart", |
| "begin": "r'''", |
| "end": "'''(?!')" |
| }, |
| { |
| "name": "string.interpolated.double.dart", |
| "begin": "(?<!\\|r)\"", |
| "end": "\"", |
| "patterns": [ |
| { |
| "name": "invalid.string.newline", |
| "match": "\\n" |
| }, |
| { |
| "include": "#string-interp" |
| } |
| ] |
| }, |
| { |
| "name": "string.quoted.double.dart", |
| "begin": "r\"", |
| "end": "\"", |
| "patterns": [ |
| { |
| "name": "invalid.string.newline", |
| "match": "\\n" |
| } |
| ] |
| }, |
| { |
| "name": "string.interpolated.single.dart", |
| "begin": "(?<!\\|r)'", |
| "end": "'", |
| "patterns": [ |
| { |
| "name": "invalid.string.newline", |
| "match": "\\n" |
| }, |
| { |
| "include": "#string-interp" |
| } |
| ] |
| }, |
| { |
| "name": "string.quoted.single.dart", |
| "begin": "r'", |
| "end": "'", |
| "patterns": [ |
| { |
| "name": "invalid.string.newline", |
| "match": "\\n" |
| } |
| ] |
| } |
| ] |
| }, |
| "punctuation": { |
| "patterns": [ |
| { |
| "name": "punctuation.comma.dart", |
| "match": "," |
| }, |
| { |
| "name": "punctuation.terminator.dart", |
| "match": ";" |
| }, |
| { |
| "name": "punctuation.dot.dart", |
| "match": "\\." |
| } |
| ] |
| } |
| } |
| } |