Change:
Following on from comments at , it would be good to have basic Dart language configuration as a built-in extension in VS Code, allowing things like syntax highlighting to in the case where the Dart extension is not installed (for example a Live Share client that hasn't installed it) or is disabled (for example in an Untrusted workspace). From : There is a Dart Team-owned grammar here that can be used - it's the (except for a small bug fix that I'll file an upstream PR for shortly): Great! Though what's the advantage of depending on the built-in extension? I try to support a few-versions-old VS Code where possible (so wouldn't do that for a few versions) but also the extension is published to open- for use by other clients so the dependency may complicate things (if they don't have the same built-in). I'd probably do some investigation into this before removing anything from Dart-Code then (it sounds like there's no downside to having the grammar/config provided by both for a period anyway). (fyi
It also works without a dependency, but only because the extension is built-in. No problem if the Dart extension keeps the grammar and language configurations for a while until it is all settled. Do you want to look into a PR or should I?
If it's easier/quicker for you to do, feel free. Otherwise I'm happy to do it but may need some pointers for how built-in extensions are set up.
I pushed the PR We have a new built-in language :-)
Super, thanks! For future reference - for changes to the language config I can send a PR to , and for grammar changes I can run (after the changes are landed in the upstream dart-lang repo)?
I just noticed in the it has the path but this doesn't seem to match the location of the file ?
Good catch, thanks. Pushed the fix:
For grammar changes, I'll pull them in about once per month so you can just rely on that if you want. If there's a change that needs to be picked up sooner than that, then feel free to make an issue an @ mention me and I'll pull in the change earlier.
Perfect, thanks!
is this support in the Code May Update (1.57) that just went out?
Yes, in microsoft/vscode you can tell what release an issue is in by looking at the Milestone. !
Yep! An easy way to test it's working is to disable the Dart/Flutter extensions (accept the prompt to reload), then open a Dart file. You'll now still get syntax highlighting (note: you won't get analysis or much other editor functionality, that requires the Dart extension). <img width="650" alt="Screenshot 2021-06-14 at 15 52 25" src="https://user-"
Yeah I just did, and it works great :-)

Discussion:
<ins> { "registrations": [ { "component": { "type": "git", "git": { "name": "dart-lang/dart-syntax-highlight", "repositoryUrl": "https://github.com/dart-lang/dart-syntax-highlight", "commitHash": "65f211722c85e9fdf0aa658d5663e6ccaf2ebe25" } }, "licenseDetail": [ "Copyright 2020, the Dart project authors.", "", "Redistribution and use in source and binary forms, with or without", "modification, are permitted provided that the following conditions are", "met:", "", "    * Redistributions of source code must retain the above copyright", "    notice, this list of conditions and the following disclaimer.", "    * Redistributions in binary form must reproduce the above", "    copyright notice, this list of conditions and the following", "    disclaimer in the documentation and/or other materials provided", "    with the distribution.", "    * Neither the name of Google LLC nor the names of its", "    contributors may be used to endorse or promote products derived", "    from this software without specific prior written permission.", "", "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS", ""AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT", "LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR", "A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT", "OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,", "SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT", "LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,", "DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY", "THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT", "(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE", "OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ], "license": "BSD", "version": "0.0.0" } ], "version": 1 } </ins>

<ins> { "comments": { "lineComment": "//", "blockComment": [ "/*", "*/" ] }, "brackets": [ ["{", "}"], ["[", "]"], ["(", ")"] ], "autoClosingPairs": [ { "open": "{", "close": "}" }, { "open": "[", "close": "]" }, { "open": "(", "close": ")" }, { "open": "'", "close": "'", "notIn": ["string", "comment"] }, { "open": """, "close": """, "notIn": ["string"] }, { "open": "`", "close": "`", "notIn": ["string", "comment"] }, { "open": "/**", "close": " */", "notIn": ["string"] } ], "surroundingPairs": [ ["{", "}"], ["[", "]"], ["(", ")"], ["<", ">"], ["'", "'"], [""", """], ["`", "`"] ] } </ins>

<ins> { "name": "dart", "displayName": "%displayName%", "description": "%description%", "version": "1.0.0", "publisher": "vscode", "license": "MIT", "engines": { "vscode": "0.10.x" }, "scripts": { "update-grammar": "node ../node_modules/vscode-grammar-updater/bin dart-lang/dart-syntax-highlight grammars/dart.json ./syntaxes/dart.tmLanguage.json" }, "contributes": { "languages": [ { "id": "dart", "extensions": [ ".dart" ], "aliases": [ "Dart" ], "configuration": "./syntaxes/dart-language-configuration.json" } ], "grammars": [ { "language": "dart", "scopeName": "source.dart", "path": "./syntaxes/dart.tmLanguage.json" } ] } } </ins>

<ins> { "displayName": "Dart Language Basics", "description": "Provides syntax highlighting & bracket matching in Dart files." } </ins>

<ins> { "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/65f211722c85e9fdf0aa658d5663e6ccaf2ebe25", "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" } ] }, { "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" } } }, { "match": "(*    .*)$" } ] }, "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": "(?<!$)b(true|false|null)b(?!$)" }, { "name": "variable.language.dart", "match": "(?<!$)b(this|super)b(?!$)" }, { "name": "constant.numeric.dart", "match": "(?<!$)b((0(x|X)[0-9a-fA-F]*)|(([0-9]+.?[0-9]*)|(.[0-9]+))((e|E)(+|-)?[0-9]+)?)b(?!$)" }, { "name": "support.class.dart", "match": "(?<![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*|boolb|numb|intb|doubleb|dynamicb)" }, { "match": "([_$]*[a-z][a-zA-Z0-9_$]*)(<|(|s+=>)", "captures": { "1": { "name": "entity.name.function.dart" } } } ] }, "keywords": { "patterns": [ { "name": "keyword.cast.dart", "match": "(?<!$)basb(?!$)" }, { "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|return|switch|while)b(?!$)" }, { "name": "keyword.control.dart", "match": "(?<!$)b(sync(*)?|async(*)?|await|yield(*)?)b(?!$)" }, { "name": "keyword.control.dart", "match": "(?<!$)bassertb(?!$)" }, { "name": "keyword.control.new.dart", "match": "(?<!$)b(new)b(?!$)" }, { "name": "keyword.declaration.dart", "match": "(?<!$)b(abstract|class|enum|extends|extension|external|factory|implements|get|mixin|native|operator|set|typedef|with|covariant)b(?!$)" }, { "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": "(!|&&|||)" }, { "name": "storage.modifier.dart", "match": "(?<!$)b(static|final|const|required|late)b(?!$)" }, { "name": "storage.type.primitive.dart", "match": "(?<!$)b(?:void|var)b(?!$)" } ] }, "string-interp": { "patterns": [ { "match": "$(([a-zA-Z0-9_]+)|{([^{}]+)})", "captures": { "2": { "name": "variable.parameter.dart" }, "3": { "name": "variable.parameter.dart" } } }, { "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": "." } ] } } } </ins>  No newline at end of file

<ins> // from https://flutter.dev/ import 'package:flutter/material.dart'; void main() async { runApp( MaterialApp( debugShowCheckedModeBanner: false, home: Scaffold( body: MyApp(), ), ), ); } class MyApp extends StatefulWidget { @override _MyAppState createState() => _MyAppState(); } </ins>  No newline at end of file

<ins> [ { "c": "// from https://flutter.dev/", "t": "source.dart comment.line.double-slash.dart", "r": { "dark_plus": "comment: #6A9955", "light_plus": "comment: #008000", "dark_vs": "comment: #6A9955", "light_vs": "comment: #008000", "hc_black": "comment: #7CA668" } }, { "c": "import", "t": "source.dart meta.declaration.dart keyword.other.import.dart", "r": { "dark_plus": "keyword: #569CD6", "light_plus": "keyword: #0000FF", "dark_vs": "keyword: #569CD6", "light_vs": "keyword: #0000FF", "hc_black": "keyword: #569CD6" } }, { "c": " ", "t": "source.dart meta.declaration.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "'package:flutter/material.dart'", "t": "source.dart meta.declaration.dart string.interpolated.single.dart", "r": { "dark_plus": "string: #CE9178", "light_plus": "string: #A31515", "dark_vs": "string: #CE9178", "light_vs": "string: #A31515", "hc_black": "string: #CE9178" } }, { "c": ";", "t": "source.dart meta.declaration.dart punctuation.terminator.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "void", "t": "source.dart storage.type.primitive.dart", "r": { "dark_plus": "storage.type: #569CD6", "light_plus": "storage.type: #0000FF", "dark_vs": "storage.type: #569CD6", "light_vs": "storage.type: #0000FF", "hc_black": "storage.type: #569CD6" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "main", "t": "source.dart entity.name.function.dart", "r": { "dark_plus": "entity.name.function: #DCDCAA", "light_plus": "entity.name.function: #795E26", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "entity.name.function: #DCDCAA" } }, { "c": "() ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "async", "t": "source.dart keyword.control.dart", "r": { "dark_plus": "keyword.control: #C586C0", "light_plus": "keyword.control: #AF00DB", "dark_vs": "keyword.control: #569CD6", "light_vs": "keyword.control: #0000FF", "hc_black": "keyword.control: #C586C0" } }, { "c": " {", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "  ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "runApp", "t": "source.dart entity.name.function.dart", "r": { "dark_plus": "entity.name.function: #DCDCAA", "light_plus": "entity.name.function: #795E26", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "entity.name.function: #DCDCAA" } }, { "c": "(", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "    ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "MaterialApp", "t": "source.dart support.class.dart", "r": { "dark_plus": "support.class: #4EC9B0", "light_plus": "support.class: #267F99", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "support.class: #4EC9B0" } }, { "c": "(", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "      debugShowCheckedModeBanner", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": ":", "t": "source.dart keyword.operator.ternary.dart", "r": { "dark_plus": "keyword.operator: #D4D4D4", "light_plus": "keyword.operator: #000000", "dark_vs": "keyword.operator: #D4D4D4", "light_vs": "keyword.operator: #000000", "hc_black": "keyword.operator: #D4D4D4" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "false", "t": "source.dart constant.language.dart", "r": { "dark_plus": "constant.language: #569CD6", "light_plus": "constant.language: #0000FF", "dark_vs": "constant.language: #569CD6", "light_vs": "constant.language: #0000FF", "hc_black": "constant.language: #569CD6" } }, { "c": ",", "t": "source.dart punctuation.comma.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "      home", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": ":", "t": "source.dart keyword.operator.ternary.dart", "r": { "dark_plus": "keyword.operator: #D4D4D4", "light_plus": "keyword.operator: #000000", "dark_vs": "keyword.operator: #D4D4D4", "light_vs": "keyword.operator: #000000", "hc_black": "keyword.operator: #D4D4D4" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "Scaffold", "t": "source.dart support.class.dart", "r": { "dark_plus": "support.class: #4EC9B0", "light_plus": "support.class: #267F99", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "support.class: #4EC9B0" } }, { "c": "(", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "        body", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": ":", "t": "source.dart keyword.operator.ternary.dart", "r": { "dark_plus": "keyword.operator: #D4D4D4", "light_plus": "keyword.operator: #000000", "dark_vs": "keyword.operator: #D4D4D4", "light_vs": "keyword.operator: #000000", "hc_black": "keyword.operator: #D4D4D4" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "MyApp", "t": "source.dart support.class.dart", "r": { "dark_plus": "support.class: #4EC9B0", "light_plus": "support.class: #267F99", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "support.class: #4EC9B0" } }, { "c": "()", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": ",", "t": "source.dart punctuation.comma.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "      )", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": ",", "t": "source.dart punctuation.comma.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "    )", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": ",", "t": "source.dart punctuation.comma.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "  )", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": ";", "t": "source.dart punctuation.terminator.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "}", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "class", "t": "source.dart keyword.declaration.dart", "r": { "dark_plus": "keyword: #569CD6", "light_plus": "keyword: #0000FF", "dark_vs": "keyword: #569CD6", "light_vs": "keyword: #0000FF", "hc_black": "keyword: #569CD6" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "MyApp", "t": "source.dart support.class.dart", "r": { "dark_plus": "support.class: #4EC9B0", "light_plus": "support.class: #267F99", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "support.class: #4EC9B0" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "extends", "t": "source.dart keyword.declaration.dart", "r": { "dark_plus": "keyword: #569CD6", "light_plus": "keyword: #0000FF", "dark_vs": "keyword: #569CD6", "light_vs": "keyword: #0000FF", "hc_black": "keyword: #569CD6" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "StatefulWidget", "t": "source.dart support.class.dart", "r": { "dark_plus": "support.class: #4EC9B0", "light_plus": "support.class: #267F99", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "support.class: #4EC9B0" } }, { "c": " {", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "  ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "@override", "t": "source.dart storage.type.annotation.dart", "r": { "dark_plus": "storage.type: #569CD6", "light_plus": "storage.type: #0000FF", "dark_vs": "storage.type: #569CD6", "light_vs": "storage.type: #0000FF", "hc_black": "storage.type: #569CD6" } }, { "c": "  ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "_MyAppState", "t": "source.dart support.class.dart", "r": { "dark_plus": "support.class: #4EC9B0", "light_plus": "support.class: #267F99", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "support.class: #4EC9B0" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "createState", "t": "source.dart entity.name.function.dart", "r": { "dark_plus": "entity.name.function: #DCDCAA", "light_plus": "entity.name.function: #795E26", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "entity.name.function: #DCDCAA" } }, { "c": "() ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "=>", "t": "source.dart keyword.operator.closure.dart", "r": { "dark_plus": "keyword.operator: #D4D4D4", "light_plus": "keyword.operator: #000000", "dark_vs": "keyword.operator: #D4D4D4", "light_vs": "keyword.operator: #000000", "hc_black": "keyword.operator: #D4D4D4" } }, { "c": " ", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "_MyAppState", "t": "source.dart support.class.dart", "r": { "dark_plus": "support.class: #4EC9B0", "light_plus": "support.class: #267F99", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "support.class: #4EC9B0" } }, { "c": "()", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": ";", "t": "source.dart punctuation.terminator.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } }, { "c": "}", "t": "source.dart", "r": { "dark_plus": "default: #D4D4D4", "light_plus": "default: #000000", "dark_vs": "default: #D4D4D4", "light_vs": "default: #000000", "hc_black": "default: #FFFFFF" } } ] </ins>  No newline at end of file