From 7166bf7013e11d24a3b023c184f600e01100d092 Mon Sep 17 00:00:00 2001 From: Jordi Ramos Date: Tue, 16 Apr 2024 10:50:59 -0700 Subject: [PATCH] Textmate: fix Razor expression classification inside of HTML tags (#7051) * fix html-razor textmate - added textmate grammar to both razor and html (test) files so that we can correctly label razor components that are within html tags. We will need to update the html grammar used in razor as well - updated tests to reflect the desire behavior, note that we changed some of the classification from existing tests as they were not correctly labeling razor grammar in html tags either --- .../syntaxes/aspnetcorerazor.tmLanguage.json | 10 + .../syntaxes/aspnetcorerazor.tmLanguage.yml | 6 + .../embeddedGrammars/html.tmLanguage.json | 12 + .../__snapshots__/grammarTests.test.ts.snap | 878 +++++++++++++++--- .../tests/grammarTests.test.ts | 2 + .../tests/htmlDynamicAttribute.ts | 33 + 6 files changed, 829 insertions(+), 112 deletions(-) create mode 100644 test/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/tests/htmlDynamicAttribute.ts diff --git a/src/razor/syntaxes/aspnetcorerazor.tmLanguage.json b/src/razor/syntaxes/aspnetcorerazor.tmLanguage.json index b82283682..72a5e0677 100644 --- a/src/razor/syntaxes/aspnetcorerazor.tmLanguage.json +++ b/src/razor/syntaxes/aspnetcorerazor.tmLanguage.json @@ -64,6 +64,16 @@ } ] }, + "implicit-or-explicit-expression": { + "patterns": [ + { + "include": "#explicit-razor-expression" + }, + { + "include": "#implicit-expression" + } + ] + }, "escaped-transition": { "name": "constant.character.escape.razor.transition", "match": "@@" diff --git a/src/razor/syntaxes/aspnetcorerazor.tmLanguage.yml b/src/razor/syntaxes/aspnetcorerazor.tmLanguage.yml index 66867921f..84f18fe7d 100644 --- a/src/razor/syntaxes/aspnetcorerazor.tmLanguage.yml +++ b/src/razor/syntaxes/aspnetcorerazor.tmLanguage.yml @@ -31,6 +31,12 @@ repository: - include: '#optionally-transitioned-csharp-control-structures' - include: '#implicit-expression' + # a clause to combine the explicit and implicit razor expressions, used by the html grammar + implicit-or-explicit-expression: + patterns: + - include: '#explicit-razor-expression' + - include: '#implicit-expression' + escaped-transition: name: constant.character.escape.razor.transition match: '@@' diff --git a/test/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/embeddedGrammars/html.tmLanguage.json b/test/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/embeddedGrammars/html.tmLanguage.json index ef850d941..cfd51a79d 100644 --- a/test/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/embeddedGrammars/html.tmLanguage.json +++ b/test/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/embeddedGrammars/html.tmLanguage.json @@ -113,6 +113,9 @@ }, "name": "string.quoted.double.html", "patterns": [ + { + "include": "text.aspnetcorerazor#implicit-or-explicit-expression" + }, { "include": "#entities" } @@ -137,6 +140,9 @@ }, "name": "string.quoted.single.html", "patterns": [ + { + "include": "text.aspnetcorerazor#implicit-or-explicit-expression" + }, { "include": "#entities" } @@ -403,6 +409,9 @@ }, "name": "string.quoted.double.html", "patterns": [ + { + "include": "text.aspnetcorerazor#implicit-or-explicit-expression" + }, { "include": "#entities" } @@ -423,6 +432,9 @@ }, "name": "string.quoted.single.html", "patterns": [ + { + "include": "text.aspnetcorerazor#implicit-or-explicit-expression" + }, { "include": "#entities" } diff --git a/test/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/tests/__snapshots__/grammarTests.test.ts.snap b/test/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/tests/__snapshots__/grammarTests.test.ts.snap index 901635556..18a5b8aa0 100644 --- a/test/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/tests/__snapshots__/grammarTests.test.ts.snap +++ b/test/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/tests/__snapshots__/grammarTests.test.ts.snap @@ -4480,7 +4480,10 @@ exports[`Grammar tests Explicit Expressions In Attributes Double Quotes Class ex - token from 5 to 10 (class) with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.class.html, entity.other.attribute-name.html - token from 10 to 11 (=) with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.class.html, punctuation.separator.key-value.html - token from 11 to 12 (") with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.class.html, string.quoted.double.html, punctuation.definition.string.begin.html - - token from 12 to 30 (@(NavMenuCssClass)) with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.class.html, string.quoted.double.html + - token from 12 to 13 (@) with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.class.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.control.cshtml.transition + - token from 13 to 14 (() with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.class.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.control.cshtml + - token from 14 to 29 (NavMenuCssClass) with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.class.html, string.quoted.double.html, meta.expression.explicit.cshtml, variable.other.readwrite.cs + - token from 29 to 30 ()) with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.class.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.control.cshtml - token from 30 to 31 (") with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.class.html, string.quoted.double.html, punctuation.definition.string.end.html - token from 31 to 32 (>) with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, punctuation.definition.tag.end.html - token from 32 to 34 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 23 to 25 (( - - token from 0 to 12 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html - - token from 12 to 20 (notValid) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.notValid.html, entity.other.attribute-name.html - - token from 20 to 21 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.notValid.html - - token from 21 to 22 (=) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.notValid.html, punctuation.separator.key-value.html - - token from 22 to 23 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.notValid.html - - token from 23 to 38 (Html.DisplayFor) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.notValid.html, string.unquoted.html - - token from 38 to 45 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - - token from 46 to 48 (() with scopes text.aspnetcorerazor + - token from 0 to 12 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 12 to 20 (notValid) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, variable.other.readwrite.cs + - token from 20 to 21 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 21 to 22 (=) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.operator.assignment.cs + - token from 22 to 23 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 23 to 27 (Html) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, variable.other.object.cs + - token from 27 to 28 (.) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.accessor.cs + - token from 28 to 38 (DisplayFor) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, entity.name.function.cs + - token from 38 to 39 (<) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.definition.typeparameters.begin.cs + - token from 39 to 45 (object) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.type.cs + - token from 45 to 46 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.definition.typeparameters.end.cs + - token from 46 to 47 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.parenthesis.open.cs Line: (_) => Model, - - token from 0 to 30 ( (_) => Model,) with scopes text.aspnetcorerazor + - token from 0 to 16 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 16 to 17 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.parenthesis.open.cs + - token from 17 to 18 (_) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, entity.name.variable.parameter.cs + - token from 18 to 19 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.parenthesis.close.cs + - token from 19 to 20 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 20 to 22 (=>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.operator.arrow.cs + - token from 22 to 23 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 23 to 28 (Model) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, variable.other.readwrite.cs + - token from 28 to 29 (,) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.separator.comma.cs Line: "name", - - token from 0 to 24 ( "name",) with scopes text.aspnetcorerazor + - token from 0 to 16 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 16 to 17 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, string.quoted.double.cs, punctuation.definition.string.begin.cs + - token from 17 to 21 (name) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, string.quoted.double.cs + - token from 21 to 22 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, string.quoted.double.cs, punctuation.definition.string.end.cs + - token from 22 to 23 (,) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.separator.comma.cs Line: "someName", - - token from 0 to 28 ( "someName",) with scopes text.aspnetcorerazor + - token from 0 to 16 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 16 to 17 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, string.quoted.double.cs, punctuation.definition.string.begin.cs + - token from 17 to 25 (someName) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, string.quoted.double.cs + - token from 25 to 26 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, string.quoted.double.cs, punctuation.definition.string.end.cs + - token from 26 to 27 (,) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.separator.comma.cs Line: new { }) - - token from 0 to 25 ( new { })) with scopes text.aspnetcorerazor + - token from 0 to 16 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 16 to 19 (new) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.other.new.cs + - token from 19 to 20 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 20 to 21 ({) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.curlybrace.open.cs + - token from 21 to 22 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 22 to 23 (}) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.curlybrace.close.cs + - token from 23 to 24 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.parenthesis.close.cs Line: }) - - token from 0 to 11 ( })) with scopes text.aspnetcorerazor + - token from 0 to 8 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 8 to 9 (}) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.curlybrace.close.cs + - token from 9 to 10 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.parenthesis.close.cs Line: )"> - - token from 0 to 3 ()">) with scopes text.aspnetcorerazor + - token from 0 to 1 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.control.cshtml + - token from 1 to 2 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, punctuation.definition.string.end.html + - token from 2 to 3 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 3 to 5 () with scopes text.aspnetcorerazor, meta.tag.structure.button.end.html, punctuation.definition.tag.end.html @@ -4590,7 +4633,12 @@ exports[`Grammar tests Explicit Expressions In Attributes Double Quotes Onclick - token from 8 to 16 (@onclick) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, entity.other.attribute-name.html - token from 16 to 17 (=) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, punctuation.separator.key-value.html - token from 17 to 18 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, punctuation.definition.string.begin.html - - token from 18 to 36 (@(ToggleNavMenu())) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html + - token from 18 to 19 (@) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.control.cshtml.transition + - token from 19 to 20 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.control.cshtml + - token from 20 to 33 (ToggleNavMenu) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, entity.name.function.cs + - token from 33 to 34 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.parenthesis.open.cs + - token from 34 to 35 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.parenthesis.close.cs + - token from 35 to 36 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.control.cshtml - token from 36 to 37 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, punctuation.definition.string.end.html - token from 37 to 38 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 38 to 40 ((){1,2,3}[0] + await GetValueAsync() ?? someArray[await DoMoreAsync(() => {})])) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html + - token from 18 to 19 (@) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.control.cshtml.transition + - token from 19 to 20 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.control.cshtml + - token from 20 to 23 (456) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, constant.numeric.decimal.cs + - token from 23 to 24 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 24 to 25 (+) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.operator.arithmetic.cs + - token from 25 to 26 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 26 to 29 (new) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.other.new.cs + - token from 29 to 30 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 30 to 35 (Array) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, entity.name.type.cs + - token from 35 to 36 (<) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.definition.typeparameters.begin.cs + - token from 36 to 39 (int) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.type.cs + - token from 39 to 40 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.definition.typeparameters.end.cs + - token from 40 to 41 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.parenthesis.open.cs + - token from 41 to 42 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.parenthesis.close.cs + - token from 42 to 43 ({) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.curlybrace.open.cs + - token from 43 to 44 (1) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, constant.numeric.decimal.cs + - token from 44 to 45 (,) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.separator.comma.cs + - token from 45 to 46 (2) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, constant.numeric.decimal.cs + - token from 46 to 47 (,) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.separator.comma.cs + - token from 47 to 48 (3) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, constant.numeric.decimal.cs + - token from 48 to 49 (}) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.curlybrace.close.cs + - token from 49 to 50 ([) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.squarebracket.open.cs + - token from 50 to 51 (0) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, constant.numeric.decimal.cs + - token from 51 to 52 (]) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.squarebracket.close.cs + - token from 52 to 53 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 53 to 54 (+) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.operator.arithmetic.cs + - token from 54 to 55 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 55 to 60 (await) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.other.await.cs + - token from 60 to 61 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 61 to 74 (GetValueAsync) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, entity.name.function.cs + - token from 74 to 75 (<) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.definition.typeparameters.begin.cs + - token from 75 to 81 (string) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.type.cs + - token from 81 to 82 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.definition.typeparameters.end.cs + - token from 82 to 83 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.parenthesis.open.cs + - token from 83 to 84 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.parenthesis.close.cs + - token from 84 to 85 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 85 to 87 (??) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.operator.null-coalescing.cs + - token from 87 to 88 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 88 to 97 (someArray) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, variable.other.object.property.cs + - token from 97 to 98 ([) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.squarebracket.open.cs + - token from 98 to 103 (await) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.other.await.cs + - token from 103 to 104 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 104 to 115 (DoMoreAsync) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, entity.name.function.cs + - token from 115 to 116 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.parenthesis.open.cs + - token from 116 to 117 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.parenthesis.open.cs + - token from 117 to 118 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.parenthesis.close.cs + - token from 118 to 119 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 119 to 121 (=>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.operator.arrow.cs + - token from 121 to 122 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml + - token from 122 to 123 ({) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.curlybrace.open.cs + - token from 123 to 124 (}) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.curlybrace.close.cs + - token from 124 to 125 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.parenthesis.close.cs + - token from 125 to 126 (]) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, punctuation.squarebracket.close.cs + - token from 126 to 127 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.control.cshtml - token from 127 to 128 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, punctuation.definition.string.end.html - token from 128 to 129 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 129 to 131 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 35 to 37 () with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, punctuation.definition.tag.end.html - token from 32 to 34 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 23 to 25 (( - - token from 0 to 48 ( notValid = Html.DisplayFor() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 0 to 12 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 12 to 20 (notValid) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, variable.other.readwrite.cs + - token from 20 to 21 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 21 to 22 (=) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.operator.assignment.cs + - token from 22 to 23 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 23 to 27 (Html) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, variable.other.object.cs + - token from 27 to 28 (.) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.accessor.cs + - token from 28 to 38 (DisplayFor) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, entity.name.function.cs + - token from 38 to 39 (<) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.definition.typeparameters.begin.cs + - token from 39 to 45 (object) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.type.cs + - token from 45 to 46 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.definition.typeparameters.end.cs + - token from 46 to 47 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.parenthesis.open.cs Line: (_) => Model, - - token from 0 to 30 ( (_) => Model,) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 0 to 16 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 16 to 17 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.parenthesis.open.cs + - token from 17 to 18 (_) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, entity.name.variable.parameter.cs + - token from 18 to 19 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.parenthesis.close.cs + - token from 19 to 20 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 20 to 22 (=>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.operator.arrow.cs + - token from 22 to 23 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 23 to 28 (Model) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, variable.other.readwrite.cs + - token from 28 to 29 (,) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.separator.comma.cs Line: "name", - - token from 0 to 24 ( "name",) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 0 to 16 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 16 to 17 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, string.quoted.double.cs, punctuation.definition.string.begin.cs + - token from 17 to 21 (name) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, string.quoted.double.cs + - token from 21 to 22 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, string.quoted.double.cs, punctuation.definition.string.end.cs + - token from 22 to 23 (,) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.separator.comma.cs Line: "someName", - - token from 0 to 28 ( "someName",) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 0 to 16 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 16 to 17 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, string.quoted.double.cs, punctuation.definition.string.begin.cs + - token from 17 to 25 (someName) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, string.quoted.double.cs + - token from 25 to 26 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, string.quoted.double.cs, punctuation.definition.string.end.cs + - token from 26 to 27 (,) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.separator.comma.cs Line: new { }) - - token from 0 to 25 ( new { })) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 0 to 16 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 16 to 19 (new) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.other.new.cs + - token from 19 to 20 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 20 to 21 ({) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.curlybrace.open.cs + - token from 21 to 22 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 22 to 23 (}) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.curlybrace.close.cs + - token from 23 to 24 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.parenthesis.close.cs Line: }) - - token from 0 to 11 ( })) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 0 to 8 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 8 to 9 (}) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.curlybrace.close.cs + - token from 9 to 10 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.parenthesis.close.cs Line: )'> - - token from 0 to 1 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 0 to 1 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.control.cshtml - token from 1 to 2 (') with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, punctuation.definition.string.end.html - token from 2 to 3 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 3 to 5 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 38 to 40 ((){1,2,3}[0] + await GetValueAsync() ?? someArray[await DoMoreAsync(() => {})])) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 18 to 19 (@) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.control.cshtml.transition + - token from 19 to 20 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.control.cshtml + - token from 20 to 23 (456) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, constant.numeric.decimal.cs + - token from 23 to 24 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 24 to 25 (+) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.operator.arithmetic.cs + - token from 25 to 26 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 26 to 29 (new) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.other.new.cs + - token from 29 to 30 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 30 to 35 (Array) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, entity.name.type.cs + - token from 35 to 36 (<) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.definition.typeparameters.begin.cs + - token from 36 to 39 (int) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.type.cs + - token from 39 to 40 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.definition.typeparameters.end.cs + - token from 40 to 41 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.parenthesis.open.cs + - token from 41 to 42 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.parenthesis.close.cs + - token from 42 to 43 ({) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.curlybrace.open.cs + - token from 43 to 44 (1) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, constant.numeric.decimal.cs + - token from 44 to 45 (,) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.separator.comma.cs + - token from 45 to 46 (2) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, constant.numeric.decimal.cs + - token from 46 to 47 (,) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.separator.comma.cs + - token from 47 to 48 (3) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, constant.numeric.decimal.cs + - token from 48 to 49 (}) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.curlybrace.close.cs + - token from 49 to 50 ([) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.squarebracket.open.cs + - token from 50 to 51 (0) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, constant.numeric.decimal.cs + - token from 51 to 52 (]) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.squarebracket.close.cs + - token from 52 to 53 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 53 to 54 (+) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.operator.arithmetic.cs + - token from 54 to 55 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 55 to 60 (await) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.other.await.cs + - token from 60 to 61 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 61 to 74 (GetValueAsync) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, entity.name.function.cs + - token from 74 to 75 (<) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.definition.typeparameters.begin.cs + - token from 75 to 81 (string) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.type.cs + - token from 81 to 82 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.definition.typeparameters.end.cs + - token from 82 to 83 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.parenthesis.open.cs + - token from 83 to 84 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.parenthesis.close.cs + - token from 84 to 85 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 85 to 87 (??) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.operator.null-coalescing.cs + - token from 87 to 88 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 88 to 97 (someArray) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, variable.other.object.property.cs + - token from 97 to 98 ([) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.squarebracket.open.cs + - token from 98 to 103 (await) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.other.await.cs + - token from 103 to 104 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 104 to 115 (DoMoreAsync) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, entity.name.function.cs + - token from 115 to 116 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.parenthesis.open.cs + - token from 116 to 117 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.parenthesis.open.cs + - token from 117 to 118 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.parenthesis.close.cs + - token from 118 to 119 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 119 to 121 (=>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.operator.arrow.cs + - token from 121 to 122 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml + - token from 122 to 123 ({) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.curlybrace.open.cs + - token from 123 to 124 (}) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.curlybrace.close.cs + - token from 124 to 125 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.parenthesis.close.cs + - token from 125 to 126 (]) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, punctuation.squarebracket.close.cs + - token from 126 to 127 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.explicit.cshtml, keyword.control.cshtml - token from 127 to 128 (') with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, punctuation.definition.string.end.html - token from 128 to 129 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 129 to 131 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 35 to 37 (Test + - token from 0 to 1 (<) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.begin.html + - token from 1 to 7 (button) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, entity.name.tag.html + - token from 7 to 8 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html + - token from 8 to 16 (@onclick) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, entity.other.attribute-name.html + - token from 16 to 17 (=) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, punctuation.separator.key-value.html + - token from 17 to 18 (') with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, punctuation.definition.string.begin.html + - token from 18 to 36 (myFunction("test")) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 36 to 37 (') with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, punctuation.definition.string.end.html + - token from 37 to 38 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html + - token from 38 to 42 (Test) with scopes text.aspnetcorerazor + - token from 42 to 44 () with scopes text.aspnetcorerazor, meta.tag.structure.button.end.html, punctuation.definition.tag.end.html +" +`; + +exports[`Grammar tests HTML dynamic (razor) attribute razor inside attribute 1`] = ` +"Line:
+ - token from 0 to 1 (<) with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, punctuation.definition.tag.begin.html + - token from 1 to 4 (div) with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, entity.name.tag.html + - token from 4 to 5 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html + - token from 5 to 7 (id) with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.id.html, entity.other.attribute-name.html + - token from 7 to 8 (=) with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.id.html, punctuation.separator.key-value.html + - token from 8 to 9 (") with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.id.html, string.quoted.double.html, punctuation.definition.string.begin.html + - token from 9 to 10 (@) with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.id.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.control.cshtml.transition + - token from 10 to 11 (() with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.id.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.control.cshtml + - token from 11 to 12 (") with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.id.html, string.quoted.double.html, meta.expression.explicit.cshtml, string.quoted.double.cs, punctuation.definition.string.begin.cs + - token from 12 to 13 (") with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.id.html, string.quoted.double.html, meta.expression.explicit.cshtml, string.quoted.double.cs, punctuation.definition.string.end.cs + - token from 13 to 14 ()) with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.id.html, string.quoted.double.html, meta.expression.explicit.cshtml, keyword.control.cshtml + - token from 14 to 15 (") with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, meta.attribute.id.html, string.quoted.double.html, punctuation.definition.string.end.html + - token from 15 to 16 (>) with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, punctuation.definition.tag.end.html + - token from 16 to 17 ( ) with scopes text.aspnetcorerazor + - token from 17 to 19 () with scopes text.aspnetcorerazor, meta.tag.structure.div.end.html, punctuation.definition.tag.end.html +" +`; + +exports[`Grammar tests HTML dynamic (razor) attribute single quotes in side double quotes 1`] = ` +"Line: + - token from 0 to 1 (<) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.begin.html + - token from 1 to 7 (button) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, entity.name.tag.html + - token from 7 to 8 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html + - token from 8 to 16 (@onclick) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, entity.other.attribute-name.html + - token from 16 to 17 (=) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, punctuation.separator.key-value.html + - token from 17 to 18 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, punctuation.definition.string.begin.html + - token from 18 to 36 (myFunction('test')) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html + - token from 36 to 37 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, punctuation.definition.string.end.html + - token from 37 to 38 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html + - token from 38 to 42 (Test) with scopes text.aspnetcorerazor + - token from 42 to 44 () with scopes text.aspnetcorerazor, meta.tag.structure.button.end.html, punctuation.definition.tag.end.html +" +`; + +exports[`Grammar tests HTML dynamic (razor) attribute using @viewData 1`] = ` +"Line: Test + - token from 0 to 1 (<) with scopes text.aspnetcorerazor, meta.tag.inline.a.start.html, punctuation.definition.tag.begin.html + - token from 1 to 2 (a) with scopes text.aspnetcorerazor, meta.tag.inline.a.start.html, entity.name.tag.html + - token from 2 to 3 ( ) with scopes text.aspnetcorerazor, meta.tag.inline.a.start.html + - token from 3 to 11 (asp-page) with scopes text.aspnetcorerazor, meta.tag.inline.a.start.html, meta.attribute.unrecognized.asp-page.html, entity.other.attribute-name.html + - token from 11 to 12 (=) with scopes text.aspnetcorerazor, meta.tag.inline.a.start.html, meta.attribute.unrecognized.asp-page.html, punctuation.separator.key-value.html + - token from 12 to 13 (") with scopes text.aspnetcorerazor, meta.tag.inline.a.start.html, meta.attribute.unrecognized.asp-page.html, string.quoted.double.html, punctuation.definition.string.begin.html + - token from 13 to 14 (@) with scopes text.aspnetcorerazor, meta.tag.inline.a.start.html, meta.attribute.unrecognized.asp-page.html, string.quoted.double.html, meta.expression.implicit.cshtml, keyword.control.cshtml.transition + - token from 14 to 22 (ViewData) with scopes text.aspnetcorerazor, meta.tag.inline.a.start.html, meta.attribute.unrecognized.asp-page.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, variable.other.object.cs + - token from 22 to 23 ([) with scopes text.aspnetcorerazor, meta.tag.inline.a.start.html, meta.attribute.unrecognized.asp-page.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, punctuation.squarebracket.open.cs + - token from 23 to 24 (") with scopes text.aspnetcorerazor, meta.tag.inline.a.start.html, meta.attribute.unrecognized.asp-page.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, string.quoted.double.cs, punctuation.definition.string.begin.cs + - token from 24 to 28 (Page) with scopes text.aspnetcorerazor, meta.tag.inline.a.start.html, meta.attribute.unrecognized.asp-page.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, string.quoted.double.cs + - token from 28 to 29 (") with scopes text.aspnetcorerazor, meta.tag.inline.a.start.html, meta.attribute.unrecognized.asp-page.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, string.quoted.double.cs, punctuation.definition.string.end.cs + - token from 29 to 30 (]) with scopes text.aspnetcorerazor, meta.tag.inline.a.start.html, meta.attribute.unrecognized.asp-page.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, punctuation.squarebracket.close.cs + - token from 30 to 31 (") with scopes text.aspnetcorerazor, meta.tag.inline.a.start.html, meta.attribute.unrecognized.asp-page.html, string.quoted.double.html, punctuation.definition.string.end.html + - token from 31 to 32 (>) with scopes text.aspnetcorerazor, meta.tag.inline.a.start.html, punctuation.definition.tag.end.html + - token from 32 to 36 (Test) with scopes text.aspnetcorerazor + - token from 36 to 38 () with scopes text.aspnetcorerazor, meta.tag.inline.a.end.html, punctuation.definition.tag.end.html +" +`; + +exports[`Grammar tests HTML dynamic (razor) attribute using data string array 1`] = ` +"Line:

Test

+ - token from 0 to 1 (<) with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html, punctuation.definition.tag.begin.html + - token from 1 to 2 (p) with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html, entity.name.tag.html + - token from 2 to 3 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html + - token from 3 to 20 (data-string-array) with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html, meta.attribute.data-x.data-string-array.html, entity.other.attribute-name.html + - token from 20 to 21 (=) with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html, meta.attribute.data-x.data-string-array.html, punctuation.separator.key-value.html + - token from 21 to 22 (") with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html, meta.attribute.data-x.data-string-array.html, string.quoted.double.html, punctuation.definition.string.begin.html + - token from 22 to 32 (['test', ') with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html, meta.attribute.data-x.data-string-array.html, string.quoted.double.html + - token from 32 to 33 (@) with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html, meta.attribute.data-x.data-string-array.html, string.quoted.double.html, meta.expression.implicit.cshtml, keyword.control.cshtml.transition + - token from 33 to 42 (Localizer) with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html, meta.attribute.data-x.data-string-array.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, variable.other.object.cs + - token from 42 to 43 ([) with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html, meta.attribute.data-x.data-string-array.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, punctuation.squarebracket.open.cs + - token from 43 to 44 (") with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html, meta.attribute.data-x.data-string-array.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, string.quoted.double.cs, punctuation.definition.string.begin.cs + - token from 44 to 48 (test) with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html, meta.attribute.data-x.data-string-array.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, string.quoted.double.cs + - token from 48 to 49 (") with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html, meta.attribute.data-x.data-string-array.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, string.quoted.double.cs, punctuation.definition.string.end.cs + - token from 49 to 50 (]) with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html, meta.attribute.data-x.data-string-array.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, punctuation.squarebracket.close.cs + - token from 50 to 52 (']) with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html, meta.attribute.data-x.data-string-array.html, string.quoted.double.html + - token from 52 to 53 (") with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html, meta.attribute.data-x.data-string-array.html, string.quoted.double.html, punctuation.definition.string.end.html + - token from 53 to 54 (>) with scopes text.aspnetcorerazor, meta.tag.structure.p.start.html, punctuation.definition.tag.end.html + - token from 54 to 58 (Test) with scopes text.aspnetcorerazor + - token from 58 to 60 () with scopes text.aspnetcorerazor, meta.tag.structure.p.end.html, punctuation.definition.tag.end.html +" +`; + exports[`Grammar tests Implicit Expressions Awaited method invocation 1`] = ` "Line: @await AsyncMethod() - token from 0 to 1 (@) with scopes text.aspnetcorerazor, meta.expression.implicit.cshtml, keyword.control.cshtml.transition @@ -5048,7 +5388,11 @@ exports[`Grammar tests Implicit Expressions In Attributes Double Quotes Awaited - token from 8 to 16 (@onclick) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, entity.other.attribute-name.html - token from 16 to 17 (=) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, punctuation.separator.key-value.html - token from 17 to 18 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, punctuation.definition.string.begin.html - - token from 18 to 38 (@await AsyncMethod()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html + - token from 18 to 19 (@) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, keyword.control.cshtml.transition + - token from 19 to 25 (await ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, keyword.other.await.cs + - token from 25 to 36 (AsyncMethod) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, entity.name.function.cs + - token from 36 to 37 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.open.cs + - token from 37 to 38 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs - token from 38 to 39 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, punctuation.definition.string.end.html - token from 39 to 40 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 40 to 42 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 40 to 42 () with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, punctuation.definition.tag.end.html - token from 30 to 32 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 34 to 36 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 34 to 36 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 34 to 36 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 34 to 36 (@DateTime.Now

) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html + - token from 18 to 21 (

) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html + - token from 21 to 22 (@) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, keyword.control.cshtml.transition + - token from 22 to 30 (DateTime) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, variable.other.object.cs + - token from 30 to 31 (.) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs + - token from 31 to 34 (Now) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, variable.other.object.property.cs + - token from 34 to 38 (

) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html - token from 38 to 39 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, punctuation.definition.string.end.html - token from 39 to 40 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 40 to 42 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 21 to 23 ( - - token from 0 to 6 (() =>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html + - token from 0 to 1 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.open.cs + - token from 1 to 2 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs + - token from 2 to 3 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 3 to 5 (=>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.arrow.cs Line: { - - token from 0 to 2 ({) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html + - token from 0 to 1 ({) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.curlybrace.open.cs Line: var x = 123; - - token from 0 to 17 ( var x = 123;) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html + - token from 0 to 4 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 4 to 7 (var) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.other.var.cs + - token from 7 to 8 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 8 to 9 (x) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, entity.name.variable.local.cs + - token from 9 to 10 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 10 to 11 (=) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.assignment.cs + - token from 11 to 12 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 12 to 15 (123) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, constant.numeric.decimal.cs + - token from 15 to 16 (;) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.terminator.statement.cs Line: var y = true; - - token from 0 to 18 ( var y = true;) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html + - token from 0 to 4 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 4 to 7 (var) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.other.var.cs + - token from 7 to 8 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 8 to 9 (y) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, entity.name.variable.local.cs + - token from 9 to 10 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 10 to 11 (=) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.assignment.cs + - token from 11 to 12 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 12 to 16 (true) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, constant.language.boolean.true.cs + - token from 16 to 17 (;) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.terminator.statement.cs Line: - - token from 0 to 1 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html + - token from 0 to 1 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis Line: return y ? x : 457; - - token from 0 to 24 ( return y ? x : 457;) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html + - token from 0 to 4 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 4 to 10 (return) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.control.flow.return.cs + - token from 10 to 11 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 11 to 12 (y) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, variable.other.readwrite.cs + - token from 12 to 13 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 13 to 14 (?) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.conditional.question-mark.cs + - token from 14 to 15 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 15 to 16 (x) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, variable.other.readwrite.cs + - token from 16 to 17 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 17 to 18 (:) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.conditional.colon.cs + - token from 18 to 19 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 19 to 22 (457) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, constant.numeric.decimal.cs + - token from 22 to 23 (;) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.terminator.statement.cs Line: })"> - - token from 0 to 2 (})) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html + - token from 0 to 1 (}) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.curlybrace.close.cs + - token from 1 to 2 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs - token from 2 to 3 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, punctuation.definition.string.end.html - token from 3 to 4 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 4 to 6 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 36 to 38 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 34 to 36 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 34 to 36 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 34 to 36 ( 456)) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html + - token from 18 to 19 (@) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, keyword.control.cshtml.transition + - token from 19 to 27 (DateTime) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, variable.other.object.cs + - token from 27 to 29 (!.) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs + - token from 29 to 32 (Now) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, entity.name.function.cs + - token from 32 to 33 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.open.cs + - token from 33 to 34 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs + - token from 34 to 35 ([) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, punctuation.squarebracket.open.cs + - token from 35 to 39 (1234) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, constant.numeric.decimal.cs + - token from 39 to 40 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets + - token from 40 to 41 (+) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, keyword.operator.arithmetic.cs + - token from 41 to 42 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets + - token from 42 to 46 (5678) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, constant.numeric.decimal.cs + - token from 46 to 47 (]) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, punctuation.squarebracket.close.cs + - token from 47 to 48 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.open.cs + - token from 48 to 51 (abc) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, entity.name.function.cs + - token from 51 to 52 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.open.cs + - token from 52 to 53 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs + - token from 53 to 54 (!) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.logical.cs + - token from 54 to 55 (.) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.accessor.cs + - token from 55 to 62 (Current) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, variable.other.object.property.cs + - token from 62 to 64 (, ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 64 to 65 (1) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, constant.numeric.decimal.cs + - token from 65 to 66 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 66 to 67 (+) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.arithmetic.cs + - token from 67 to 68 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 68 to 69 (2) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, constant.numeric.decimal.cs + - token from 69 to 70 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 70 to 71 (+) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.arithmetic.cs + - token from 71 to 72 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 72 to 80 (getValue) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, entity.name.function.cs + - token from 80 to 81 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.open.cs + - token from 81 to 82 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs + - token from 82 to 83 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs + - token from 83 to 85 (?.) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs + - token from 85 to 93 (ToString) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, variable.other.object.property.cs + - token from 93 to 94 ([) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, punctuation.squarebracket.open.cs + - token from 94 to 97 (123) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, constant.numeric.decimal.cs + - token from 97 to 98 (]) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, punctuation.squarebracket.close.cs + - token from 98 to 99 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.open.cs + - token from 99 to 100 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.open.cs + - token from 100 to 101 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs + - token from 101 to 102 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 102 to 104 (=>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.arrow.cs + - token from 104 to 105 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 105 to 108 (456) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, constant.numeric.decimal.cs + - token from 108 to 109 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs - token from 109 to 110 (") with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.double.html, punctuation.definition.string.end.html - token from 110 to 111 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 111 to 113 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 33 to 35 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 40 to 42 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 40 to 42 () with scopes text.aspnetcorerazor, meta.tag.structure.div.start.html, punctuation.definition.tag.end.html - token from 30 to 32 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 34 to 36 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 34 to 36 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 34 to 36 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 34 to 36 (@DateTime.Now

) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 18 to 21 (

) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 21 to 22 (@) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, keyword.control.cshtml.transition + - token from 22 to 30 (DateTime) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, variable.other.object.cs + - token from 30 to 31 (.) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs + - token from 31 to 34 (Now) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, variable.other.object.property.cs + - token from 34 to 38 (

) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html - token from 38 to 39 (') with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, punctuation.definition.string.end.html - token from 39 to 40 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 40 to 42 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 21 to 23 ( - - token from 0 to 6 (() =>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 0 to 1 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.open.cs + - token from 1 to 2 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs + - token from 2 to 3 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 3 to 5 (=>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.arrow.cs Line: { - - token from 0 to 2 ({) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 0 to 1 ({) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.curlybrace.open.cs Line: var x = 123; - - token from 0 to 17 ( var x = 123;) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 0 to 4 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 4 to 7 (var) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.other.var.cs + - token from 7 to 8 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 8 to 9 (x) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, entity.name.variable.local.cs + - token from 9 to 10 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 10 to 11 (=) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.assignment.cs + - token from 11 to 12 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 12 to 15 (123) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, constant.numeric.decimal.cs + - token from 15 to 16 (;) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.terminator.statement.cs Line: var y = true; - - token from 0 to 18 ( var y = true;) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 0 to 4 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 4 to 7 (var) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.other.var.cs + - token from 7 to 8 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 8 to 9 (y) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, entity.name.variable.local.cs + - token from 9 to 10 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 10 to 11 (=) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.assignment.cs + - token from 11 to 12 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 12 to 16 (true) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, constant.language.boolean.true.cs + - token from 16 to 17 (;) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.terminator.statement.cs Line: - - token from 0 to 1 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 0 to 1 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis Line: return y ? x : 457; - - token from 0 to 24 ( return y ? x : 457;) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 0 to 4 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 4 to 10 (return) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.control.flow.return.cs + - token from 10 to 11 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 11 to 12 (y) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, variable.other.readwrite.cs + - token from 12 to 13 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 13 to 14 (?) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.conditional.question-mark.cs + - token from 14 to 15 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 15 to 16 (x) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, variable.other.readwrite.cs + - token from 16 to 17 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 17 to 18 (:) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.conditional.colon.cs + - token from 18 to 19 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 19 to 22 (457) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, constant.numeric.decimal.cs + - token from 22 to 23 (;) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.terminator.statement.cs Line: })'> - - token from 0 to 2 (})) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 0 to 1 (}) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.curlybrace.close.cs + - token from 1 to 2 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs - token from 2 to 3 (') with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, punctuation.definition.string.end.html - token from 3 to 4 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 4 to 6 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 36 to 38 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 34 to 36 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 34 to 36 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 34 to 36 ( 456)) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html + - token from 18 to 19 (@) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, keyword.control.cshtml.transition + - token from 19 to 27 (DateTime) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, variable.other.object.cs + - token from 27 to 29 (!.) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs + - token from 29 to 32 (Now) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, entity.name.function.cs + - token from 32 to 33 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.open.cs + - token from 33 to 34 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs + - token from 34 to 35 ([) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, punctuation.squarebracket.open.cs + - token from 35 to 39 (1234) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, constant.numeric.decimal.cs + - token from 39 to 40 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets + - token from 40 to 41 (+) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, keyword.operator.arithmetic.cs + - token from 41 to 42 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets + - token from 42 to 46 (5678) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, constant.numeric.decimal.cs + - token from 46 to 47 (]) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, punctuation.squarebracket.close.cs + - token from 47 to 48 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.open.cs + - token from 48 to 51 (abc) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, entity.name.function.cs + - token from 51 to 52 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.open.cs + - token from 52 to 53 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs + - token from 53 to 54 (!) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.logical.cs + - token from 54 to 55 (.) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.accessor.cs + - token from 55 to 62 (Current) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, variable.other.object.property.cs + - token from 62 to 64 (, ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 64 to 65 (1) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, constant.numeric.decimal.cs + - token from 65 to 66 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 66 to 67 (+) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.arithmetic.cs + - token from 67 to 68 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 68 to 69 (2) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, constant.numeric.decimal.cs + - token from 69 to 70 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 70 to 71 (+) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.arithmetic.cs + - token from 71 to 72 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 72 to 80 (getValue) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, entity.name.function.cs + - token from 80 to 81 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.open.cs + - token from 81 to 82 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs + - token from 82 to 83 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs + - token from 83 to 85 (?.) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs + - token from 85 to 93 (ToString) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, variable.other.object.property.cs + - token from 93 to 94 ([) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, punctuation.squarebracket.open.cs + - token from 94 to 97 (123) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, constant.numeric.decimal.cs + - token from 97 to 98 (]) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.brackets, punctuation.squarebracket.close.cs + - token from 98 to 99 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.open.cs + - token from 99 to 100 (() with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.open.cs + - token from 100 to 101 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs + - token from 101 to 102 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 102 to 104 (=>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, keyword.operator.arrow.cs + - token from 104 to 105 ( ) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis + - token from 105 to 108 (456) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, constant.numeric.decimal.cs + - token from 108 to 109 ()) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, meta.expression.implicit.cshtml, source.cs, razor.test.balanced.parenthesis, punctuation.parenthesis.close.cs - token from 109 to 110 (') with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, meta.attribute.unrecognized.@onclick.html, string.quoted.single.html, punctuation.definition.string.end.html - token from 110 to 111 (>) with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 111 to 113 () with scopes text.aspnetcorerazor, meta.tag.structure.button.start.html, punctuation.definition.tag.end.html - token from 33 to 35 ( { // Html stuff RunScriptBlockSuite(); RunStyleBlockSuite(); + RunHTMLDynamicAttributeSuite(); }); diff --git a/test/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/tests/htmlDynamicAttribute.ts b/test/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/tests/htmlDynamicAttribute.ts new file mode 100644 index 000000000..c8b48e1b8 --- /dev/null +++ b/test/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/tests/htmlDynamicAttribute.ts @@ -0,0 +1,33 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { describe, it } from '@jest/globals'; +import { assertMatchesSnapshot } from './infrastructure/testUtilities'; + +// See GrammarTests.test.ts for details on exporting this test suite instead of running in place. + +export function RunHTMLDynamicAttributeSuite() { + describe('HTML dynamic (razor) attribute', () => { + it('razor inside attribute', async () => { + await assertMatchesSnapshot('
'); + }); + + it('single quotes in side double quotes', async () => { + await assertMatchesSnapshot(''); + }); + + it('double quotes inside single quotes', async () => { + await assertMatchesSnapshot(''); + }); + + it('using data string array', async () => { + await assertMatchesSnapshot('

Test

'); + }); + + it('using @viewData', async () => { + await assertMatchesSnapshot('Test'); + }); + }); +}