diff --git a/extensions/javascript/syntaxes/JavaScript.tmLanguage b/extensions/javascript/syntaxes/JavaScript.tmLanguage index 89987b89ef3..af9b89bfa38 100644 --- a/extensions/javascript/syntaxes/JavaScript.tmLanguage +++ b/extensions/javascript/syntaxes/JavaScript.tmLanguage @@ -70,6 +70,13 @@ name keyword.operator.assignment.js + await-modifier + + match + await + name + storage.modifier.js + block begin @@ -98,11 +105,11 @@ include - #expression + #object-member include - #object-member + #expression @@ -116,7 +123,7 @@ cast begin - (?:(?<=return|throw|yield|[=(,:>]))\s*(<)(?!<?\=) + (?:(?<=return|throw|yield|await|[=(,:>]))\s*(<)(?!<?\=) beginCaptures 1 @@ -380,7 +387,7 @@ field-declaration begin - (?<!\()\s*\b([a-zA-Z_$][\w$]*)\s*(\?\s*)?(?=(=|:)) + (?<!\()\s*((?:\b[a-zA-Z_$][\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\"))\s*(\?\s*)?(?=(=|:)) beginCaptures 1 @@ -432,6 +439,10 @@ functioncall.expr.js patterns + + include + #await-modifier + include #type-parameters @@ -445,7 +456,7 @@ function-declaration begin - \b(?:(export)\s+)?(function\b)(?:\s+([a-zA-Z_$][\w$]*))?\s* + \b(?:(export)\s+)?(?:(async)\s+)?(function\b)(?:\s+([a-zA-Z_$][\w$]*))?\s* beginCaptures 1 @@ -456,9 +467,14 @@ 2 name - storage.type.function.js + storage.modifier.js 3 + + name + storage.type.function.js + + 4 name entity.name.function.js @@ -667,7 +683,7 @@ method-declaration begin - \b(?:(abstract)\s+)?\b(?:(public|private|protected)\s+)?(?:(get|set)\s+)?(?:(new)|(?:([a-zA-Z_$][\.\w$]*)\s*(\??)))?\s*(?=\(|\<) + \b(?:(abstract)\s+)?\b(?:(public|private|protected)\s+)?\b(?:(async)\s+)?(?:(get|set)\s+)?(?:(new)|(?:([a-zA-Z_$][\.\w$]*)\s*(\??)))?\s*(?=\(|\<) beginCaptures 1 @@ -683,19 +699,24 @@ 3 name - storage.type.property.js + storage.modifier.js 4 name - keyword.operator.js + storage.type.property.js 5 name - entity.name.function.js + keyword.operator.js 6 + + name + entity.name.function.js + + 7 name keyword.operator.js diff --git a/extensions/javascript/syntaxes/JavaScriptReact.tmLanguage b/extensions/javascript/syntaxes/JavaScriptReact.tmLanguage index 8331a9176a2..c29607cd6ab 100644 --- a/extensions/javascript/syntaxes/JavaScriptReact.tmLanguage +++ b/extensions/javascript/syntaxes/JavaScriptReact.tmLanguage @@ -22,14 +22,14 @@ match \b(public|protected|private)\b name - storage.modifier.tsx + storage.modifier.jsx arithmetic-operator match \*|/|\-\-|\-|\+\+|\+|% name - keyword.operator.arithmetic.tsx + keyword.operator.arithmetic.jsx array-literal @@ -40,7 +40,7 @@ 0 name - meta.brace.square.tsx + meta.brace.square.jsx end @@ -50,11 +50,11 @@ 0 name - meta.brace.square.tsx + meta.brace.square.jsx name - meta.array.literal.tsx + meta.array.literal.jsx patterns @@ -68,7 +68,7 @@ match <<=|>>=|>>>=|\*=|(?<!\()/=|%=|\+=|\-=|&=|\^= name - keyword.operator.assignment.tsx + keyword.operator.assignment.jsx block @@ -79,7 +79,7 @@ 0 name - meta.brace.curly.tsx + meta.brace.curly.jsx end @@ -89,20 +89,20 @@ 0 name - meta.brace.curly.tsx + meta.brace.curly.jsx name - meta.block.tsx + meta.block.jsx patterns include - #expression + #object-member include - #object-member + #expression @@ -111,12 +111,12 @@ match \b(false|true)\b name - constant.language.boolean.tsx + constant.language.boolean.jsx comment name - comment.tsx + comment.jsx patterns @@ -140,7 +140,7 @@ end \*/ name - comment.block.tsx + comment.block.jsx comment-block-doc @@ -149,21 +149,21 @@ end \*/ name - comment.block.documentation.tsx + comment.block.documentation.jsx comment-line match (//).*$\n? name - comment.line.tsx + comment.line.jsx control-statement match (?<!\.)\b(break|catch|continue|debugger|declare|do|else|finally|for|if|return|switch|throw|try|while|with|super|switch|case)\b name - keyword.control.tsx + keyword.control.jsx decl-block @@ -174,7 +174,7 @@ 0 name - meta.brace.curly.tsx + meta.brace.curly.jsx end @@ -184,11 +184,11 @@ 0 name - meta.brace.curly.tsx + meta.brace.curly.jsx name - meta.decl.block.tsx + meta.decl.block.jsx patterns @@ -200,7 +200,7 @@ declaration name - meta.declaration.tsx + meta.declaration.jsx patterns @@ -228,28 +228,28 @@ 1 name - storage.modifier.tsx + storage.modifier.jsx 2 name - storage.type.tsx + storage.type.jsx 3 name - entity.name.class.tsx + entity.name.class.jsx match (?:\b(const)\s+)?\b(enum)\s+([a-zA-Z_$][\w$]*) name - meta.enum.declaration.tsx + meta.enum.declaration.jsx expression name - meta.expression.tsx + meta.expression.jsx patterns @@ -343,29 +343,29 @@ match =>|\b(delete|export|import|in|instanceof|module|namespace|new|typeof|void|as)\b name - keyword.operator.tsx + keyword.operator.jsx field-declaration begin - (?<!\()\s*\b([a-zA-Z_$][\w$]*)\s*(\?\s*)?(?=(=|:)) + (?<!\()\s*((?:\b[a-zA-Z_$][\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\"))\s*(\?\s*)?(?=(=|:)) beginCaptures 1 name - variable.tsx + variable.jsx 2 name - keyword.operator.tsx + keyword.operator.jsx end (?=\}|;|,)|(?<=\}) name - meta.field.declaration.tsx + meta.field.declaration.jsx patterns @@ -381,23 +381,23 @@ 1 name - storage.type.tsx + storage.type.jsx 3 name - keyword.operator.tsx + keyword.operator.jsx match (?<=\()\s*\b(var|let|const)\s+([a-zA-Z_$][\w$]*)\s+(in|of)\b name - forin.expr.tsx + forin.expr.jsx function-call name - functioncall.expr.tsx + functioncall.expr.jsx patterns @@ -419,23 +419,23 @@ 1 name - storage.modifier.tsx + storage.modifier.jsx 2 name - storage.type.function.tsx + storage.type.function.jsx 3 name - entity.name.function.tsx + entity.name.function.jsx end (?=;|\})|(?<=\}) name - meta.function.tsx + meta.function.jsx patterns @@ -471,23 +471,23 @@ 1 name - storage.modifier.tsx + storage.modifier.jsx 2 name - storage.type.function.tsx + storage.type.function.jsx 3 name - entity.name.function.tsx + entity.name.function.jsx match \b(?:(export)\s+)?(function\b)(?:\s+([a-zA-Z_$][\w$]*))?\s* name - meta.function.overload.tsx + meta.function.overload.jsx function-type-parameters @@ -498,7 +498,7 @@ 0 name - meta.brace.round.tsx + meta.brace.round.jsx end @@ -508,11 +508,11 @@ 0 name - meta.brace.round.tsx + meta.brace.round.jsx name - meta.function.type.parameter.tsx + meta.function.type.parameter.jsx patterns @@ -542,7 +542,7 @@ 0 name - meta.brace.square.tsx + meta.brace.square.jsx end @@ -552,16 +552,16 @@ 1 name - meta.brace.square.tsx + meta.brace.square.jsx 2 name - keyword.operator.tsx + keyword.operator.jsx name - meta.indexer.declaration.tsx + meta.indexer.declaration.jsx patterns @@ -585,18 +585,18 @@ 1 name - variable.parameter.tsx + variable.parameter.jsx match ([a-zA-Z_$][\w$]*)(?=\:) name - meta.indexer.parameter.tsx + meta.indexer.parameter.jsx jsx name - meta.jsx.tsx + meta.jsx.jsx patterns @@ -621,7 +621,7 @@ end (?=</) name - meta.jsx.children.tsx + meta.jsx.children.jsx patterns @@ -672,24 +672,24 @@ 1 name - punctuation.definition.entity.tsx + punctuation.definition.entity.jsx 3 name - punctuation.definition.entity.tsx + punctuation.definition.entity.jsx match (&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;) name - constant.character.entity.tsx + constant.character.entity.jsx match & name - invalid.illegal.bad-ampersand.tsx + invalid.illegal.bad-ampersand.jsx @@ -702,7 +702,7 @@ 0 name - punctuation.definition.brace.curly.start.tsx + punctuation.definition.brace.curly.start.jsx end @@ -712,11 +712,11 @@ 0 name - punctuation.definition.brace.curly.end.tsx + punctuation.definition.brace.curly.end.jsx name - meta.brace.curly.tsx + meta.brace.curly.jsx patterns @@ -734,7 +734,7 @@ 0 name - punctuation.definition.string.begin.tsx + punctuation.definition.string.begin.jsx end @@ -744,11 +744,11 @@ 0 name - punctuation.definition.string.end.tsx + punctuation.definition.string.end.jsx name - string.quoted.double.tsx + string.quoted.double.jsx patterns @@ -766,7 +766,7 @@ 0 name - punctuation.definition.string.begin.tsx + punctuation.definition.string.begin.jsx end @@ -776,11 +776,11 @@ 0 name - punctuation.definition.string.end.tsx + punctuation.definition.string.end.jsx name - string.quoted.single.tsx + string.quoted.single.jsx patterns @@ -794,7 +794,7 @@ match =(?=\s*(?:'|"|{|/\*|//|\n)) name - keyword.operator.assignment.tsx + keyword.operator.assignment.jsx jsx-tag-attribute-name @@ -803,7 +803,7 @@ 1 name - entity.other.attribute-name.tsx + entity.other.attribute-name.jsx match @@ -812,7 +812,7 @@ ([_$a-zA-Z][-$\w]*) (?=\s|=|/?>|/\*|//) name - meta.tag.attribute-name.tsx + meta.tag.attribute-name.jsx jsx-tag-attributes @@ -845,7 +845,7 @@ match \S+ name - invalid.illegal.attribute.tsx + invalid.illegal.attribute.jsx jsx-tag-close @@ -856,12 +856,12 @@ 1 name - punctuation.definition.tag.begin.tsx + punctuation.definition.tag.begin.jsx 2 name - entity.name.tag.tsx + entity.name.tag.jsx end @@ -871,11 +871,11 @@ 1 name - punctuation.definition.tag.end.tsx + punctuation.definition.tag.end.jsx name - tag.close.tsx + tag.close.jsx patterns @@ -889,7 +889,7 @@ match <\s*> name - invalid.illegal.tag.incomplete.tsx + invalid.illegal.tag.incomplete.jsx jsx-tag-open @@ -903,12 +903,12 @@ 1 name - punctuation.definition.tag.begin.tsx + punctuation.definition.tag.begin.jsx 2 name - entity.name.tag.tsx + entity.name.tag.jsx end @@ -918,11 +918,11 @@ 1 name - punctuation.definition.tag.end.tsx + punctuation.definition.tag.end.jsx name - tag.open.tsx + tag.open.jsx patterns @@ -948,17 +948,17 @@ 1 name - punctuation.definition.tag.begin.tsx + punctuation.definition.tag.begin.jsx 2 name - entity.name.tag.tsx + entity.name.tag.jsx 3 name - punctuation.definition.tag.end.tsx + punctuation.definition.tag.end.jsx end @@ -968,21 +968,21 @@ 1 name - punctuation.definition.tag.begin.tsx + punctuation.definition.tag.begin.jsx 2 name - entity.name.tag.tsx + entity.name.tag.jsx 3 name - punctuation.definition.tag.end.tsx + punctuation.definition.tag.end.jsx name - tag.without-attributes.tsx + tag.without-attributes.jsx patterns @@ -994,7 +994,7 @@ literal name - literal.tsx + literal.jsx patterns @@ -1028,7 +1028,7 @@ match \!|&|~|\||&&|\|\| name - keyword.operator.arithmetic.tsx + keyword.operator.arithmetic.jsx method-declaration @@ -1039,38 +1039,38 @@ 1 name - storage.modifier.tsx + storage.modifier.jsx 2 name - storage.modifier.tsx + storage.modifier.jsx 3 name - storage.type.property.tsx + storage.type.property.jsx 4 name - keyword.operator.tsx + keyword.operator.jsx 5 name - entity.name.function.tsx + entity.name.function.jsx 6 name - keyword.operator.tsx + keyword.operator.jsx end (?=\}|;|,)|(?<=\}) name - meta.method.declaration.tsx + meta.method.declaration.jsx patterns @@ -1106,28 +1106,28 @@ 1 name - storage.modifier.tsx + storage.modifier.jsx 2 name - keyword.operator.tsx + keyword.operator.jsx 3 name - entity.name.function.tsx + entity.name.function.jsx 4 name - keyword.operator.tsx + keyword.operator.jsx match \b(?:(public|private|protected)\s+)?(?:(new)|(?:([a-zA-Z_$][\.\w$]*)\s*(\??)))?\s*(?=\(|\<) name - meta.method.overload.declaration.tsx + meta.method.overload.declaration.jsx new-expr @@ -1138,13 +1138,13 @@ 1 name - keyword.operator.tsx + keyword.operator.jsx end (?=[(;]|$) name - new.expr.tsx + new.expr.jsx patterns @@ -1158,14 +1158,14 @@ match \b(null)\b name - constant.language.null.tsx + constant.language.null.jsx numeric-literal match \b(?<=[^$])((0(x|X)[0-9a-fA-F]+)|([0-9]+(\.[0-9]+)?))\b name - constant.numeric.tsx + constant.numeric.jsx object-body @@ -1176,7 +1176,7 @@ 0 name - meta.brace.curly.tsx + meta.brace.curly.jsx end @@ -1186,11 +1186,11 @@ 0 name - meta.brace.curly.tsx + meta.brace.curly.jsx name - meta.object.body.tsx + meta.object.body.jsx patterns @@ -1244,17 +1244,17 @@ 1 name - storage.modifier.tsx + storage.modifier.jsx 2 name - storage.modifier.tsx + storage.modifier.jsx 3 name - storage.type.tsx + storage.type.jsx end @@ -1264,11 +1264,11 @@ 1 name - brace.curly.tsx + brace.curly.jsx name - meta.declaration.object.tsx + meta.declaration.object.jsx patterns @@ -1302,7 +1302,7 @@ 1 name - keyword.other.tsx + keyword.other.jsx end @@ -1312,11 +1312,11 @@ 1 name - brace.curly.tsx + brace.curly.jsx name - meta.object.heritage.tsx + meta.object.heritage.jsx patterns @@ -1340,13 +1340,13 @@ 1 name - storage.type.tsx + storage.type.jsx match (?:\s*([a-zA-Z_$][\w$]*)) name - meta.object.heritage.parent.tsx + meta.object.heritage.parent.jsx object-member @@ -1355,7 +1355,7 @@ end (?=,|\}) name - meta.object.member.tsx + meta.object.member.jsx patterns @@ -1371,13 +1371,13 @@ 0 name - entity.name.class.tsx + entity.name.class.jsx match [a-zA-Z_$][\w$]* name - meta.object.name.tsx + meta.object.name.jsx parameter-name @@ -1386,28 +1386,28 @@ 1 name - storage.modifier.tsx + storage.modifier.jsx 2 name - keyword.operator.tsx + keyword.operator.jsx 3 name - variable.parameter.tsx + variable.parameter.jsx 4 name - keyword.operator.tsx + keyword.operator.jsx match (?:\s*\b(public|private|protected)\b\s+)?(\.\.\.)?\s*([a-zA-Z_$][\w$]*)\s*(\??) name - parameter.name.tsx + parameter.name.jsx paren-expression @@ -1418,7 +1418,7 @@ 0 name - meta.brace.paren.tsx + meta.brace.paren.jsx end @@ -1428,7 +1428,7 @@ 0 name - meta.brace.paren.tsx + meta.brace.paren.jsx patterns @@ -1444,7 +1444,7 @@ match \b(get|set)\b name - storage.type.property.tsx + storage.type.property.jsx qstring-double @@ -1453,7 +1453,7 @@ end "|(?=$) name - string.double.tsx + string.double.jsx patterns @@ -1469,7 +1469,7 @@ end '|(?=$) name - string.single.tsx + string.single.jsx patterns @@ -1485,20 +1485,20 @@ end $|(/)[igm]* name - string.regex.tsx + string.regex.jsx patterns match \\. name - constant.character.escape.tsx + constant.character.escape.jsx match \[(\\\]|[^\]])*\] name - constant.character.class.tsx + constant.character.class.jsx @@ -1507,7 +1507,7 @@ match ===|==|=|!=|!==|<=|>=|<>|<|> name - keyword.operator.comparison.tsx + keyword.operator.comparison.jsx return-type @@ -1516,7 +1516,7 @@ end (?=$)|(?=\{|;|//) name - meta.return.type.tsx + meta.return.type.jsx patterns @@ -1530,19 +1530,19 @@ match \b(static)\b name - keyword.other.tsx + keyword.other.jsx storage-keyword match \b(number|boolean|string|any|var|let|function|const)\b name - storage.type.tsx + storage.type.jsx string name - string.tsx + string.jsx patterns @@ -1571,13 +1571,13 @@ 1 name - keyword.control.tsx + keyword.control.jsx end : name - case.expr.tsx + case.expr.jsx patterns @@ -1595,7 +1595,7 @@ 0 name - string.template.tsx + string.template.jsx end @@ -1605,11 +1605,11 @@ 0 name - string.template.tsx + string.template.jsx name - meta.template.tsx + meta.template.jsx patterns @@ -1629,7 +1629,7 @@ end (?=(\$\{|`)) name - string.template.tsx + string.template.jsx patterns @@ -1647,7 +1647,7 @@ 0 name - keyword.operator.tsx + keyword.operator.jsx end @@ -1657,11 +1657,11 @@ 0 name - keyword.operator.tsx + keyword.operator.jsx name - template.element.tsx + template.element.jsx patterns @@ -1675,12 +1675,12 @@ match \b(this)\b name - constant.language.this.tsx + constant.language.this.jsx type name - meta.type.tsx + meta.type.jsx patterns @@ -1724,7 +1724,7 @@ end (?=$|[,);\}\]]|//)|(?==[^>])|(?<=[\}>\]\)]|[a-zA-Z_$])\s*(?=\{) name - meta.type.annotation.tsx + meta.type.annotation.jsx patterns @@ -1750,18 +1750,18 @@ 1 name - keyword.other.tsx + keyword.other.jsx 2 name - storage.type.tsx + storage.type.jsx end (?=[,);>]|var|type|function|class|interface) name - meta.type.declaration.tsx + meta.type.declaration.jsx patterns @@ -1779,13 +1779,13 @@ 0 name - keyword.operator.tsx + keyword.operator.jsx end (?=\s*[,\)\{=;>]|//|$) name - meta.type.function.return.tsx + meta.type.function.return.jsx patterns @@ -1801,13 +1801,13 @@ 1 name - entity.name.type.tsx + entity.name.type.jsx match [a-zA-Z_$][.\w$]* name - meta.type.name.tsx + meta.type.name.jsx type-object @@ -1818,7 +1818,7 @@ 0 name - meta.brace.curly.tsx + meta.brace.curly.jsx end @@ -1828,11 +1828,11 @@ 0 name - meta.brace.curly.tsx + meta.brace.curly.jsx name - meta.object.type.tsx + meta.object.type.jsx patterns @@ -1862,7 +1862,7 @@ match [.|] name - keyword.operator.type.tsx + keyword.operator.type.jsx type-parameters @@ -1873,12 +1873,12 @@ 1 name - entity.name.type.tsx + entity.name.type.jsx 2 name - meta.brace.angle.tsx + meta.brace.angle.jsx end @@ -1888,18 +1888,18 @@ 2 name - meta.brace.angle.tsx + meta.brace.angle.jsx name - meta.type.parameters.tsx + meta.type.parameters.jsx patterns match \b(extends)\b name - keyword.other.tsx + keyword.other.jsx include @@ -1920,13 +1920,13 @@ 1 name - keyword.control.tsx + keyword.control.jsx end \) name - meta.type.paren.cover.tsx + meta.type.paren.cover.jsx patterns @@ -1950,13 +1950,13 @@ 1 name - storage.type.tsx + storage.type.jsx match \b(string|number|boolean|symbol|any|void)\b name - meta.type.primitive.tsx + meta.type.primitive.jsx type-tuple @@ -1967,7 +1967,7 @@ 0 name - meta.brace.square.tsx + meta.brace.square.jsx end @@ -1977,11 +1977,11 @@ 0 name - meta.brace.square.tsx + meta.brace.square.jsx name - meta.type.tuple.tsx + meta.type.tuple.jsx patterns @@ -1999,7 +1999,7 @@ match \b(undefined)\b name - constant.language.tsx + constant.language.jsx var-expr @@ -2010,18 +2010,18 @@ 1 name - storage.type.tsx + storage.type.jsx 2 name - variable.tsx + variable.jsx end (?=$|[;=\}\{])|(?<=\}) name - meta.var.expr.tsx + meta.var.expr.jsx patterns @@ -2047,7 +2047,7 @@ 1 name - keyword.operator.tsx + keyword.operator.jsx end @@ -2067,3 +2067,4 @@ 805375ec-d614-41f5-8993-5843fe63ea82 +