Convert HtmlDocumentTest
This commit is contained in:
parent
67b5588185
commit
8eef4a4bb3
|
|
@ -12,92 +12,45 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
private static readonly TestFile Nested1000 = TestFile.Create("TestFiles/nested-1000.html", typeof(HtmlDocumentTest));
|
||||
|
||||
public HtmlDocumentTest()
|
||||
{
|
||||
UseBaselineTests = true;
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocument_NestedCodeBlockWithMarkupSetsDotAsMarkup()
|
||||
{
|
||||
ParseDocumentTest("@if (true) { @if(false) { <div>@something.</div> } }",
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("if (true) { ").AsStatement(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("if(false) {").AsStatement(),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
BlockFactory.MarkupTagBlock("<div>", AcceptedCharactersInternal.None),
|
||||
Factory.EmptyHtml(),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("something")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: false)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Markup("."),
|
||||
BlockFactory.MarkupTagBlock("</div>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Code("}").AsStatement()),
|
||||
Factory.Code(" }").AsStatement())));
|
||||
ParseDocumentTest("@if (true) { @if(false) { <div>@something.</div> } }");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentOutputsEmptyBlockWithEmptyMarkupSpanIfContentIsEmptyString()
|
||||
{
|
||||
ParseDocumentTest(string.Empty, new MarkupBlock(Factory.EmptyHtml()));
|
||||
ParseDocumentTest(string.Empty);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentOutputsWhitespaceOnlyContentAsSingleWhitespaceMarkupSpan()
|
||||
{
|
||||
SingleSpanDocumentTest(" ", BlockKindInternal.Markup, SpanKindInternal.Markup);
|
||||
ParseDocumentTest(" ");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentAcceptsSwapTokenAtEndOfFileAndOutputsZeroLengthCodeSpan()
|
||||
{
|
||||
ParseDocumentTest("@",
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml(),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.EmptyCSharp()
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.EmptyHtml()),
|
||||
RazorDiagnosticFactory.CreateParsing_UnexpectedEndOfFileAtStartOfCodeBlock(
|
||||
new SourceSpan(new SourceLocation(1, 0, 1), contentLength: 1)));
|
||||
ParseDocumentTest("@");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentCorrectlyHandlesOddlySpacedHTMLElements()
|
||||
{
|
||||
ParseDocumentTest("<div ><p class = 'bar'> Foo </p></div >",
|
||||
new MarkupBlock(
|
||||
BlockFactory.MarkupTagBlock("<div >"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p"),
|
||||
new MarkupBlock(new AttributeBlockChunkGenerator(name: "class", prefix: new LocationTagged<string>(" class = '", 8, 0, 8), suffix: new LocationTagged<string>("'", 21, 0, 21)),
|
||||
Factory.Markup(" class = '").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("bar").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged<string>(string.Empty, 18, 0, 18), value: new LocationTagged<string>("bar", 18, 0, 18))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(">")),
|
||||
Factory.Markup(" Foo "),
|
||||
BlockFactory.MarkupTagBlock("</p>"),
|
||||
BlockFactory.MarkupTagBlock("</div >")));
|
||||
ParseDocumentTest("<div ><p class = 'bar'> Foo </p></div >");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentCorrectlyHandlesSingleLineOfMarkupWithEmbeddedStatement()
|
||||
{
|
||||
ParseDocumentTest("<div>Foo @if(true) {} Bar</div>",
|
||||
new MarkupBlock(
|
||||
BlockFactory.MarkupTagBlock("<div>"),
|
||||
Factory.Markup("Foo "),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("if(true) {}").AsStatement()),
|
||||
Factory.Markup(" Bar"),
|
||||
BlockFactory.MarkupTagBlock("</div>")));
|
||||
ParseDocumentTest("<div>Foo @if(true) {} Bar</div>");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -106,367 +59,139 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseDocumentTest("@section Foo {" + Environment.NewLine
|
||||
+ " <html></html>" + Environment.NewLine
|
||||
+ "}",
|
||||
new[] { SectionDirective.Directive, },
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml(),
|
||||
new DirectiveBlock(new DirectiveChunkGenerator(SectionDirective.Directive),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "Foo", CSharpSymbolType.Identifier).AsDirectiveToken(SectionDirective.Directive.Tokens[0]),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace),
|
||||
Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(Environment.NewLine + " "),
|
||||
BlockFactory.MarkupTagBlock("<html>"),
|
||||
BlockFactory.MarkupTagBlock("</html>"),
|
||||
Factory.Markup(Environment.NewLine)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyHtml()));
|
||||
new[] { SectionDirective.Directive, });
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentParsesWholeContentAsOneSpanIfNoSwapCharacterEncountered()
|
||||
{
|
||||
SingleSpanDocumentTest("foo baz", BlockKindInternal.Markup, SpanKindInternal.Markup);
|
||||
ParseDocumentTest("foo baz");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentHandsParsingOverToCodeParserWhenAtSignEncounteredAndEmitsOutput()
|
||||
{
|
||||
ParseDocumentTest("foo @bar baz",
|
||||
new MarkupBlock(
|
||||
Factory.Markup("foo "),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("bar")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Markup(" baz")));
|
||||
ParseDocumentTest("foo @bar baz");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentEmitsAtSignAsMarkupIfAtEndOfFile()
|
||||
{
|
||||
ParseDocumentTest("foo @",
|
||||
new MarkupBlock(
|
||||
Factory.Markup("foo "),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.EmptyCSharp()
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.EmptyHtml()),
|
||||
RazorDiagnosticFactory.CreateParsing_UnexpectedEndOfFileAtStartOfCodeBlock(
|
||||
new SourceSpan(new SourceLocation(5, 0, 5), contentLength: 1)));
|
||||
ParseDocumentTest("foo @");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentEmitsCodeBlockIfFirstCharacterIsSwapCharacter()
|
||||
{
|
||||
ParseDocumentTest("@bar",
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml(),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("bar")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.EmptyHtml()));
|
||||
ParseDocumentTest("@bar");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentDoesNotSwitchToCodeOnEmailAddressInText()
|
||||
{
|
||||
SingleSpanDocumentTest("anurse@microsoft.com", BlockKindInternal.Markup, SpanKindInternal.Markup);
|
||||
ParseDocument("example@microsoft.com");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentDoesNotSwitchToCodeOnEmailAddressInAttribute()
|
||||
{
|
||||
ParseDocumentTest("<a href=\"mailto:anurse@microsoft.com\">Email me</a>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a"),
|
||||
new MarkupBlock(new AttributeBlockChunkGenerator("href", new LocationTagged<string>(" href=\"", 2, 0, 2), new LocationTagged<string>("\"", 36, 0, 36)),
|
||||
Factory.Markup(" href=\"").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("mailto:anurse@microsoft.com")
|
||||
.With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 9, 0, 9), new LocationTagged<string>("mailto:anurse@microsoft.com", 9, 0, 9))),
|
||||
Factory.Markup("\"").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(">")),
|
||||
Factory.Markup("Email me"),
|
||||
BlockFactory.MarkupTagBlock("</a>")));
|
||||
ParseDocumentTest("<a href=\"mailto:example@microsoft.com\">Email me</a>");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentDoesNotReturnErrorOnMismatchedTags()
|
||||
{
|
||||
ParseDocumentTest("Foo <div><p></p></p> Baz",
|
||||
new MarkupBlock(
|
||||
Factory.Markup("Foo "),
|
||||
BlockFactory.MarkupTagBlock("<div>"),
|
||||
BlockFactory.MarkupTagBlock("<p>"),
|
||||
BlockFactory.MarkupTagBlock("</p>"),
|
||||
BlockFactory.MarkupTagBlock("</p>"),
|
||||
Factory.Markup(" Baz")));
|
||||
ParseDocumentTest("Foo <div><p></p></p> Baz");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentReturnsOneMarkupSegmentIfNoCodeBlocksEncountered()
|
||||
{
|
||||
ParseDocumentTest("Foo Baz<!--Foo-->Bar<!--F> Qux",
|
||||
new MarkupBlock(
|
||||
Factory.Markup("Foo Baz"),
|
||||
BlockFactory.HtmlCommentBlock("Foo"),
|
||||
Factory.Markup("Bar"),
|
||||
Factory.Markup("<!--F> Qux")));
|
||||
ParseDocumentTest("Foo Baz<!--Foo-->Bar<!--F> Qux");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentRendersTextPseudoTagAsMarkup()
|
||||
{
|
||||
ParseDocumentTest("Foo <text>Foo</text>",
|
||||
new MarkupBlock(
|
||||
Factory.Markup("Foo "),
|
||||
BlockFactory.MarkupTagBlock("<text>"),
|
||||
Factory.Markup("Foo"),
|
||||
BlockFactory.MarkupTagBlock("</text>")));
|
||||
ParseDocumentTest("Foo <text>Foo</text>");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentAcceptsEndTagWithNoMatchingStartTag()
|
||||
{
|
||||
ParseDocumentTest("Foo </div> Bar",
|
||||
new MarkupBlock(
|
||||
Factory.Markup("Foo "),
|
||||
BlockFactory.MarkupTagBlock("</div>"),
|
||||
Factory.Markup(" Bar")));
|
||||
ParseDocumentTest("Foo </div> Bar");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentNoLongerSupportsDollarOpenBraceCombination()
|
||||
{
|
||||
ParseDocumentTest("<foo>${bar}</foo>",
|
||||
new MarkupBlock(
|
||||
BlockFactory.MarkupTagBlock("<foo>"),
|
||||
Factory.Markup("${bar}"),
|
||||
BlockFactory.MarkupTagBlock("</foo>")));
|
||||
ParseDocumentTest("<foo>${bar}</foo>");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentIgnoresTagsInContentsOfScriptTag()
|
||||
{
|
||||
ParseDocumentTest(@"<script>foo<bar baz='@boz'></script>",
|
||||
new MarkupBlock(
|
||||
BlockFactory.MarkupTagBlock("<script>"),
|
||||
Factory.Markup("foo<bar baz='"),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("boz")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: false)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Markup("'>"),
|
||||
BlockFactory.MarkupTagBlock("</script>")));
|
||||
ParseDocumentTest(@"<script>foo<bar baz='@boz'></script>");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentDoesNotRenderExtraNewLineAtTheEndOfVerbatimBlock()
|
||||
{
|
||||
ParseDocumentTest("@{\r\n}\r\n<html>",
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\r\n").AsStatement().AutoCompleteWith(null, false),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("\r\n").With(SpanChunkGenerator.Null),
|
||||
BlockFactory.MarkupTagBlock("<html>")));
|
||||
ParseDocumentTest("@{\r\n}\r\n<html>");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentDoesNotRenderExtraWhitespaceAndNewLineAtTheEndOfVerbatimBlock()
|
||||
{
|
||||
ParseDocumentTest("@{\r\n} \t\r\n<html>",
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\r\n").AsStatement().AutoCompleteWith(null, false),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" \t\r\n").With(SpanChunkGenerator.Null),
|
||||
BlockFactory.MarkupTagBlock("<html>")));
|
||||
ParseDocumentTest("@{\r\n} \t\r\n<html>");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentDoesNotRenderExtraNewlineAtTheEndTextTagInVerbatimBlockIfFollowedByCSharp()
|
||||
{
|
||||
ParseDocumentTest("@{<text>Blah</text>\r\n\r\n}<html>",
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("<text>")),
|
||||
Factory.Markup("Blah").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("</text>"))),
|
||||
Factory.Code("\r\n\r\n").AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
BlockFactory.MarkupTagBlock("<html>")));
|
||||
ParseDocumentTest("@{<text>Blah</text>\r\n\r\n}<html>");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentRendersExtraNewlineAtTheEndTextTagInVerbatimBlockIfFollowedByHtml()
|
||||
{
|
||||
ParseDocumentTest("@{<text>Blah</text>\r\n<input/>\r\n}<html>",
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("<text>")),
|
||||
Factory.Markup("Blah").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("</text>")),
|
||||
Factory.Markup("\r\n").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<input/>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("\r\n").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyCSharp().AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
BlockFactory.MarkupTagBlock("<html>")));
|
||||
ParseDocumentTest("@{<text>Blah</text>\r\n<input/>\r\n}<html>");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentRendersExtraNewlineAtTheEndTextTagInVerbatimBlockIfFollowedByMarkupTransition()
|
||||
{
|
||||
ParseDocumentTest("@{<text>Blah</text>\r\n@: Bleh\r\n}<html>",
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("<text>")),
|
||||
Factory.Markup("Blah").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("</text>")),
|
||||
Factory.Markup("\r\n").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupBlock(
|
||||
Factory.MarkupTransition(),
|
||||
Factory.MetaMarkup(":", HtmlSymbolType.Colon),
|
||||
Factory.Markup(" Bleh\r\n")
|
||||
.With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString))
|
||||
.Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyCSharp().AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
BlockFactory.MarkupTagBlock("<html>")));
|
||||
ParseDocumentTest("@{<text>Blah</text>\r\n@: Bleh\r\n}<html>");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentDoesNotIgnoreNewLineAtTheEndOfMarkupBlock()
|
||||
{
|
||||
ParseDocumentTest("@{\r\n}\r\n<html>\r\n",
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\r\n").AsStatement().AutoCompleteWith(null, false),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("\r\n").With(SpanChunkGenerator.Null),
|
||||
BlockFactory.MarkupTagBlock("<html>"),
|
||||
Factory.Markup("\r\n")));
|
||||
ParseDocumentTest("@{\r\n}\r\n<html>\r\n");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentDoesNotIgnoreWhitespaceAtTheEndOfVerbatimBlockIfNoNewlinePresent()
|
||||
{
|
||||
ParseDocumentTest("@{\r\n} \t<html>\r\n",
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\r\n").AsStatement().AutoCompleteWith(null, false),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" \t"),
|
||||
BlockFactory.MarkupTagBlock("<html>"),
|
||||
Factory.Markup("\r\n")));
|
||||
ParseDocumentTest("@{\r\n} \t<html>\r\n");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentHandlesNewLineInNestedBlock()
|
||||
{
|
||||
ParseDocumentTest("@{\r\n@if(true){\r\n} \r\n}\r\n<html>",
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\r\n").AsStatement().AutoCompleteWith(null, false),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("if(true){\r\n}").AsStatement()),
|
||||
Factory.Code(" \r\n").AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("\r\n").With(SpanChunkGenerator.Null),
|
||||
BlockFactory.MarkupTagBlock("<html>")));
|
||||
ParseDocumentTest("@{\r\n@if(true){\r\n} \r\n}\r\n<html>");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentHandlesNewLineAndMarkupInNestedBlock()
|
||||
{
|
||||
ParseDocumentTest("@{\r\n@if(true){\r\n} <input> }",
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\r\n").AsStatement().AutoCompleteWith(null, false),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("if(true){\r\n}").AsStatement()),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<input>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyCSharp().AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyHtml()));
|
||||
ParseDocumentTest("@{\r\n@if(true){\r\n} <input> }");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocumentHandlesExtraNewLineBeforeMarkupInNestedBlock()
|
||||
{
|
||||
ParseDocumentTest("@{\r\n@if(true){\r\n} \r\n<input> \r\n}<html>",
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\r\n").AsStatement().AutoCompleteWith(null, false),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("if(true){\r\n}").AsStatement()),
|
||||
Factory.Code(" \r\n").AsStatement(),
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<input>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" \r\n").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyCSharp().AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<html>"))));
|
||||
ParseDocumentTest("@{\r\n@if(true){\r\n} \r\n<input> \r\n}<html>");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -474,330 +199,71 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ParseDocumentTest(
|
||||
@"@section Foo { <script>foo<bar baz='@boz'></script> }",
|
||||
new[] { SectionDirective.Directive, },
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml(),
|
||||
new DirectiveBlock(new DirectiveChunkGenerator(SectionDirective.Directive),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "Foo", CSharpSymbolType.Identifier).AsDirectiveToken(SectionDirective.Directive.Tokens[0]),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace),
|
||||
Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
BlockFactory.MarkupTagBlock("<script>"),
|
||||
Factory.Markup("foo<bar baz='"),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("boz")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: false)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Markup("'>"),
|
||||
BlockFactory.MarkupTagBlock("</script>"),
|
||||
Factory.Markup(" ")),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyHtml()));
|
||||
new[] { SectionDirective.Directive, });
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseBlockCanParse1000NestedElements()
|
||||
{
|
||||
var content = Nested1000.ReadAllText();
|
||||
|
||||
// Assert - does not throw
|
||||
ParseDocument(content);
|
||||
}
|
||||
|
||||
public static TheoryData BlockWithEscapedTransitionData
|
||||
[Fact]
|
||||
public void ParseDocument_WithDoubleTransitionInAttributeValue_DoesNotThrow()
|
||||
{
|
||||
get
|
||||
{
|
||||
var factory = new SpanFactory();
|
||||
var datetimeBlock = new ExpressionBlock(
|
||||
factory.CodeTransition(),
|
||||
factory.Code("DateTime.Now")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace));
|
||||
|
||||
return new TheoryData<string, Block>
|
||||
{
|
||||
{
|
||||
// Double transition in attribute value
|
||||
"<span foo='@@' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 13, 0, 13)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 11, 0, 11))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
{
|
||||
// Double transition at the end of attribute value
|
||||
"<span foo='abc@@' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 16, 0, 16)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
factory.Markup("abc").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("abc", 11, 0, 11))),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 14, 0, 14), new LocationTagged<string>("@", 14, 0, 14))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
{
|
||||
// Double transition at the beginning of attribute value
|
||||
"<span foo='@@def' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 16, 0, 16)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 11, 0, 11))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("def").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 13, 0, 13), new LocationTagged<string>("def", 13, 0, 13))),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
{
|
||||
// Double transition in between attribute value
|
||||
"<span foo='abc @@ def' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 21, 0, 21)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
factory.Markup("abc").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("abc", 11, 0, 11))),
|
||||
new MarkupBlock(
|
||||
factory.Markup(" @").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 14, 0, 14), new LocationTagged<string>("@", 15, 0, 15))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup(" def").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 17, 0, 17), new LocationTagged<string>("def", 18, 0, 18))),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
{
|
||||
// Double transition with expression block
|
||||
"<span foo='@@@DateTime.Now' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 26, 0, 26)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 11, 0, 11))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupBlock(
|
||||
new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 13, 0, 13), 13, 0, 13),
|
||||
factory.EmptyHtml().With(SpanChunkGenerator.Null),
|
||||
datetimeBlock),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
{
|
||||
"<span foo='@DateTime.Now @@' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 27, 0, 27)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), 11, 0, 11),
|
||||
datetimeBlock),
|
||||
new MarkupBlock(
|
||||
factory.Markup(" @").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 24, 0, 24), new LocationTagged<string>("@", 25, 0, 25))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
{
|
||||
"<span foo='@(2+3)@@@DateTime.Now' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 32, 0, 32)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), 11, 0, 11),
|
||||
new ExpressionBlock(
|
||||
factory.CodeTransition(),
|
||||
factory.MetaCode("(").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Code("2+3").AsExpression(),
|
||||
factory.MetaCode(")").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None))),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 17, 0, 17), new LocationTagged<string>("@", 17, 0, 17))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupBlock(
|
||||
new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 19, 0, 19), 19, 0, 19),
|
||||
factory.EmptyHtml().With(SpanChunkGenerator.Null),
|
||||
datetimeBlock),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
{
|
||||
"<span foo='@@@(2+3)' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 19, 0, 19)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 11, 0, 11))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupBlock(
|
||||
new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 13, 0, 13), 13, 0, 13),
|
||||
factory.EmptyHtml().With(SpanChunkGenerator.Null),
|
||||
new ExpressionBlock(
|
||||
factory.CodeTransition(),
|
||||
factory.MetaCode("(").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Code("2+3").AsExpression(),
|
||||
factory.MetaCode(")").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None))),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
{
|
||||
"<span foo='@DateTime.Now@@' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 26, 0, 26)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), 11, 0, 11),
|
||||
datetimeBlock),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 24, 0, 24), new LocationTagged<string>("@", 24, 0, 24))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
{
|
||||
// Double transition with email in attribute value
|
||||
"<span foo='abc@def.com @@' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 25, 0, 25)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
factory.Markup("abc@def.com").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("abc@def.com", 11, 0, 11))),
|
||||
new MarkupBlock(
|
||||
factory.Markup(" @").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 22, 0, 22), new LocationTagged<string>("@", 23, 0, 23))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
{
|
||||
"<span foo='abc@@def.com @@' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 26, 0, 26)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
factory.Markup("abc").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("abc", 11, 0, 11))),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 14, 0, 14), new LocationTagged<string>("@", 14, 0, 14))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("def.com").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 16, 0, 16), new LocationTagged<string>("def.com", 16, 0, 16))),
|
||||
new MarkupBlock(
|
||||
factory.Markup(" @").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 23, 0, 23), new LocationTagged<string>("@", 24, 0, 24))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
{
|
||||
// Double transition before end of file
|
||||
"<span foo='@@",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>(string.Empty, 13, 0, 13)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 11, 0, 11))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)))),
|
||||
factory.EmptyHtml())
|
||||
},
|
||||
{
|
||||
// Double transition in complex regex in attribute value
|
||||
@"<span foo=""/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@@[a-z0-9]([a-z0-9-]*[a-z0-9])?\.([a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i"" />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo=\"", 5, 0, 5), new LocationTagged<string>("\"", 111, 0, 111)),
|
||||
factory.Markup(" foo=\"").With(SpanChunkGenerator.Null),
|
||||
factory.Markup(@"/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>(@"/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+", 11, 0, 11))),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 43, 0, 43), new LocationTagged<string>("@", 43, 0, 43))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup(@"[a-z0-9]([a-z0-9-]*[a-z0-9])?\.([a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 45, 0, 45), new LocationTagged<string>(@"[a-z0-9]([a-z0-9-]*[a-z0-9])?\.([a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i", 45, 0, 45))),
|
||||
factory.Markup("\"").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
};
|
||||
}
|
||||
var input = "{<span foo='@@' />}";
|
||||
ParseDocumentTest(input);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(BlockWithEscapedTransitionData))]
|
||||
public void ParseBlock_WithDoubleTransition_DoesNotThrow(string input, object expected)
|
||||
[Fact]
|
||||
public void ParseDocument_WithDoubleTransitionAtEndOfAttributeValue_DoesNotThrow()
|
||||
{
|
||||
FixupSpans = true;
|
||||
var input = "{<span foo='abc@@' />}";
|
||||
ParseDocumentTest(input);
|
||||
}
|
||||
|
||||
// Act & Assert
|
||||
ParseDocumentTest(input, (Block)expected);
|
||||
[Fact]
|
||||
public void ParseDocument_WithDoubleTransitionAtBeginningOfAttributeValue_DoesNotThrow()
|
||||
{
|
||||
var input = "{<span foo='@@def' />}";
|
||||
ParseDocumentTest(input);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocument_WithDoubleTransitionBetweenAttributeValue_DoesNotThrow()
|
||||
{
|
||||
var input = "{<span foo='abc @@ def' />}";
|
||||
ParseDocumentTest(input);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocument_WithDoubleTransitionWithExpressionBlock_DoesNotThrow()
|
||||
{
|
||||
var input = "{<span foo='@@@(2+3)' bar='@(2+3)@@@DateTime.Now' baz='@DateTime.Now@@' bat='@DateTime.Now @@' zoo='@@@DateTime.Now' />}";
|
||||
ParseDocumentTest(input);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocument_WithDoubleTransitionInEmail_DoesNotThrow()
|
||||
{
|
||||
var input = "{<span foo='abc@def.com abc@@def.com @@' />}";
|
||||
ParseDocumentTest(input);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocument_WithDoubleTransitionInRegex_DoesNotThrow()
|
||||
{
|
||||
var input = @"{<span foo=""/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@@[a-z0-9]([a-z0-9-]*[a-z0-9])?\.([a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i"" />}";
|
||||
ParseDocumentTest(input);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseDocument_WithUnexpectedTransitionsInAttributeValue_Throws()
|
||||
{
|
||||
// Arrange
|
||||
var expected = new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 14, 0, 14)),
|
||||
Factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), 11, 0, 11),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.EmptyCSharp().AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharactersInternal.NonWhiteSpace))),
|
||||
new MarkupBlock(
|
||||
new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(" ", 12, 0, 12), 12, 0, 12),
|
||||
Factory.Markup(" ").With(SpanChunkGenerator.Null),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition().Accepts(AcceptedCharactersInternal.None).With(SpanChunkGenerator.Null),
|
||||
Factory.EmptyCSharp().AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharactersInternal.NonWhiteSpace))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />")));
|
||||
var expectedErrors = new RazorDiagnostic[]
|
||||
{
|
||||
RazorDiagnosticFactory.CreateParsing_UnexpectedWhiteSpaceAtStartOfCodeBlock(
|
||||
new SourceSpan(new SourceLocation(12, 0, 12), contentLength: 1)),
|
||||
RazorDiagnosticFactory.CreateParsing_UnexpectedCharacterAtStartOfCodeBlock(
|
||||
new SourceSpan(new SourceLocation(14, 0, 14), contentLength: 4),
|
||||
"' />"),
|
||||
};
|
||||
|
||||
// Act & Assert
|
||||
ParseDocumentTest("<span foo='@ @' />", expected, expectedErrors);
|
||||
ParseDocumentTest("<span foo='@ @' />");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
Markup block - Gen<None> - 14 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [Foo ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:2
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
Tag block - Gen<None> - 6 - (4:0,4)
|
||||
Markup span - Gen<Markup> - [</div>] - SpanEditHandler;Accepts:Any - (4:0,4) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[div];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [ Bar] - SpanEditHandler;Accepts:Any - (10:0,10) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,2): Error RZ1004: End-of-file was found after the "@" character. "@" must be followed by a valid code block. If you want to output an "@", escape it using the sequence: "@@"
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
Markup block - Gen<None> - 1 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Expression block - Gen<Expr> - 1 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
Markup block - Gen<None> - 39 - (0:0,0)
|
||||
Tag block - Gen<None> - 6 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [<div >] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[div];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Tag block - Gen<None> - 17 - (6:0,6)
|
||||
Markup span - Gen<Markup> - [<p] - SpanEditHandler;Accepts:Any - (6:0,6) - Symbols:2
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[p];
|
||||
Markup block - Gen<Attr:class, class = '@(8:0,8),'@(21:0,21)> - 14 - (8:0,8)
|
||||
Markup span - Gen<None> - [ class = '] - SpanEditHandler;Accepts:Any - (8:0,8) - Symbols:6
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[class];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(18:0,18)> - [bar] - SpanEditHandler;Accepts:Any - (18:0,18) - Symbols:1
|
||||
HtmlSymbolType.Text;[bar];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (21:0,21) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [>] - SpanEditHandler;Accepts:Any - (22:0,22) - Symbols:1
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [ Foo ] - SpanEditHandler;Accepts:Any - (23:0,23) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
Tag block - Gen<None> - 4 - (28:0,28)
|
||||
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:Any - (28:0,28) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[p];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Tag block - Gen<None> - 7 - (32:0,32)
|
||||
Markup span - Gen<Markup> - [</div >] - SpanEditHandler;Accepts:Any - (32:0,32) - Symbols:5
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[div];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
Markup block - Gen<None> - 31 - (0:0,0)
|
||||
Tag block - Gen<None> - 5 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [<div>] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[div];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [Foo ] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:2
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
Statement block - Gen<None> - 12 - (9:0,9)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (9:0,9) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Stmt> - [if(true) {}] - SpanEditHandler;Accepts:Any - (10:0,10) - Symbols:7
|
||||
CSharpSymbolType.Keyword;[if];
|
||||
CSharpSymbolType.LeftParenthesis;[(];
|
||||
CSharpSymbolType.Keyword;[true];
|
||||
CSharpSymbolType.RightParenthesis;[)];
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Markup span - Gen<Markup> - [ Bar] - SpanEditHandler;Accepts:Any - (21:0,21) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Tag block - Gen<None> - 6 - (25:0,25)
|
||||
Markup span - Gen<Markup> - [</div>] - SpanEditHandler;Accepts:Any - (25:0,25) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[div];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
Markup block - Gen<None> - 15 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Statement block - Gen<None> - 5 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (2:0,2) - Symbols:1
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (4:1,0) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Markup span - Gen<None> - [LF] - SpanEditHandler;Accepts:Any - (5:1,1) - Symbols:1
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
Tag block - Gen<None> - 6 - (7:2,0)
|
||||
Markup span - Gen<Markup> - [<html>] - SpanEditHandler;Accepts:Any - (7:2,0) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[html];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [LF] - SpanEditHandler;Accepts:Any - (13:2,6) - Symbols:1
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
Markup block - Gen<None> - 17 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Statement block - Gen<None> - 5 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (2:0,2) - Symbols:1
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (4:1,0) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Markup span - Gen<Markup> - [ ] - SpanEditHandler;Accepts:Any - (5:1,1) - Symbols:1
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
Tag block - Gen<None> - 6 - (9:1,5)
|
||||
Markup span - Gen<Markup> - [<html>] - SpanEditHandler;Accepts:Any - (9:1,5) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[html];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [LF] - SpanEditHandler;Accepts:Any - (15:1,11) - Symbols:1
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
Markup block - Gen<None> - 13 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Statement block - Gen<None> - 5 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (2:0,2) - Symbols:1
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (4:1,0) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Markup span - Gen<None> - [LF] - SpanEditHandler;Accepts:Any - (5:1,1) - Symbols:1
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
Tag block - Gen<None> - 6 - (7:2,0)
|
||||
Markup span - Gen<Markup> - [<html>] - SpanEditHandler;Accepts:Any - (7:2,0) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[html];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
Markup block - Gen<None> - 30 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Statement block - Gen<None> - 24 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Markup block - Gen<None> - 17 - (2:0,2)
|
||||
Tag block - Gen<None> - 6 - (2:0,2)
|
||||
Transition span - Gen<None> - [<text>] - SpanEditHandler;Accepts:None - (2:0,2) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[text];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [Blah] - SpanEditHandler;Accepts:None - (8:0,8) - Symbols:1
|
||||
HtmlSymbolType.Text;[Blah];
|
||||
Tag block - Gen<None> - 7 - (12:0,12)
|
||||
Transition span - Gen<None> - [</text>] - SpanEditHandler;Accepts:None - (12:0,12) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[text];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Code span - Gen<Stmt> - [LFLF] - SpanEditHandler;Accepts:Any - (19:0,19) - Symbols:2
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (23:2,0) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Tag block - Gen<None> - 6 - (24:2,1)
|
||||
Markup span - Gen<Markup> - [<html>] - SpanEditHandler;Accepts:Any - (24:2,1) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[html];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
Markup block - Gen<None> - 15 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Statement block - Gen<None> - 5 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (2:0,2) - Symbols:1
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (4:1,0) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Markup span - Gen<None> - [ LF] - SpanEditHandler;Accepts:Any - (5:1,1) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
Tag block - Gen<None> - 6 - (9:2,0)
|
||||
Markup span - Gen<Markup> - [<html>] - SpanEditHandler;Accepts:Any - (9:2,0) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[html];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
Markup block - Gen<None> - 24 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [Foo ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:2
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
Tag block - Gen<None> - 5 - (4:0,4)
|
||||
Markup span - Gen<Markup> - [<div>] - SpanEditHandler;Accepts:Any - (4:0,4) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[div];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Tag block - Gen<None> - 3 - (9:0,9)
|
||||
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:Any - (9:0,9) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[p];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Tag block - Gen<None> - 4 - (12:0,12)
|
||||
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[p];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Tag block - Gen<None> - 4 - (16:0,16)
|
||||
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:Any - (16:0,16) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[p];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [ Baz] - SpanEditHandler;Accepts:Any - (20:0,20) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[Baz];
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
Markup block - Gen<None> - 51 - (0:0,0)
|
||||
Tag block - Gen<None> - 39 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [<a] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:2
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[a];
|
||||
Markup block - Gen<Attr:href, href="@(2:0,2),"@(37:0,37)> - 36 - (2:0,2)
|
||||
Markup span - Gen<None> - [ href="] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[href];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.DoubleQuote;["];
|
||||
Markup span - Gen<LitAttr:@(9:0,9)> - [mailto:example@microsoft.com] - SpanEditHandler;Accepts:Any - (9:0,9) - Symbols:1
|
||||
HtmlSymbolType.Text;[mailto:example@microsoft.com];
|
||||
Markup span - Gen<None> - ["] - SpanEditHandler;Accepts:Any - (37:0,37) - Symbols:1
|
||||
HtmlSymbolType.DoubleQuote;["];
|
||||
Markup span - Gen<Markup> - [>] - SpanEditHandler;Accepts:Any - (38:0,38) - Symbols:1
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [Email me] - SpanEditHandler;Accepts:Any - (39:0,39) - Symbols:3
|
||||
HtmlSymbolType.Text;[Email];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[me];
|
||||
Tag block - Gen<None> - 4 - (47:0,47)
|
||||
Markup span - Gen<Markup> - [</a>] - SpanEditHandler;Accepts:Any - (47:0,47) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[a];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
Markup block - Gen<None> - 20 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [anurse@microsoft.com] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Text;[anurse@microsoft.com];
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,6): Error RZ1004: End-of-file was found after the "@" character. "@" must be followed by a valid code block. If you want to output an "@", escape it using the sequence: "@@"
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
Markup block - Gen<None> - 5 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [foo ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:2
|
||||
HtmlSymbolType.Text;[foo];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
Expression block - Gen<Expr> - 1 - (4:0,4)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (4:0,4) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (5:0,5) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
Markup block - Gen<None> - 4 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Expression block - Gen<Expr> - 4 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [bar] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[bar];
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (4:0,4) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
Markup block - Gen<None> - 37 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Statement block - Gen<None> - 31 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (2:0,2) - Symbols:1
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
Statement block - Gen<None> - 13 - (4:1,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (4:1,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Stmt> - [if(true){LF}] - SpanEditHandler;Accepts:Any - (5:1,1) - Symbols:7
|
||||
CSharpSymbolType.Keyword;[if];
|
||||
CSharpSymbolType.LeftParenthesis;[(];
|
||||
CSharpSymbolType.Keyword;[true];
|
||||
CSharpSymbolType.RightParenthesis;[)];
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Code span - Gen<Stmt> - [ LF] - SpanEditHandler;Accepts:Any - (17:2,1) - Symbols:2
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
Markup block - Gen<None> - 10 - (20:3,0)
|
||||
Tag block - Gen<None> - 7 - (20:3,0)
|
||||
Markup span - Gen<Markup> - [<input>] - SpanEditHandler;Accepts:None - (20:3,0) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[input];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [ LF] - SpanEditHandler;Accepts:None - (27:3,7) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
Code span - Gen<Stmt> - [] - SpanEditHandler;Accepts:Any - (30:4,0) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (30:4,0) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Tag block - Gen<None> - 6 - (31:4,1)
|
||||
Markup span - Gen<Markup> - [<html>] - SpanEditHandler;Accepts:Any - (31:4,1) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[html];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
Markup block - Gen<None> - 27 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Statement block - Gen<None> - 27 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (2:0,2) - Symbols:1
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
Statement block - Gen<None> - 13 - (4:1,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (4:1,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Stmt> - [if(true){LF}] - SpanEditHandler;Accepts:Any - (5:1,1) - Symbols:7
|
||||
CSharpSymbolType.Keyword;[if];
|
||||
CSharpSymbolType.LeftParenthesis;[(];
|
||||
CSharpSymbolType.Keyword;[true];
|
||||
CSharpSymbolType.RightParenthesis;[)];
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Markup block - Gen<None> - 9 - (17:2,1)
|
||||
Markup span - Gen<Markup> - [ ] - SpanEditHandler;Accepts:Any - (17:2,1) - Symbols:1
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
Tag block - Gen<None> - 7 - (18:2,2)
|
||||
Markup span - Gen<Markup> - [<input>] - SpanEditHandler;Accepts:None - (18:2,2) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[input];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [ ] - SpanEditHandler;Accepts:None - (25:2,9) - Symbols:1
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
Code span - Gen<Stmt> - [] - SpanEditHandler;Accepts:Any - (26:2,10) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (26:2,10) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (27:2,11) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
Markup block - Gen<None> - 29 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Statement block - Gen<None> - 21 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (2:0,2) - Symbols:1
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
Statement block - Gen<None> - 13 - (4:1,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (4:1,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Stmt> - [if(true){LF}] - SpanEditHandler;Accepts:Any - (5:1,1) - Symbols:7
|
||||
CSharpSymbolType.Keyword;[if];
|
||||
CSharpSymbolType.LeftParenthesis;[(];
|
||||
CSharpSymbolType.Keyword;[true];
|
||||
CSharpSymbolType.RightParenthesis;[)];
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Code span - Gen<Stmt> - [ LF] - SpanEditHandler;Accepts:Any - (17:2,1) - Symbols:2
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (20:3,0) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Markup span - Gen<None> - [LF] - SpanEditHandler;Accepts:Any - (21:3,1) - Symbols:1
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
Tag block - Gen<None> - 6 - (23:4,0)
|
||||
Markup span - Gen<Markup> - [<html>] - SpanEditHandler;Accepts:Any - (23:4,0) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[html];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
Markup block - Gen<None> - 12 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [foo ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:2
|
||||
HtmlSymbolType.Text;[foo];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
Expression block - Gen<Expr> - 4 - (4:0,4)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (4:0,4) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [bar] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (5:0,5) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[bar];
|
||||
Markup span - Gen<Markup> - [ baz] - SpanEditHandler;Accepts:Any - (8:0,8) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[baz];
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
Markup block - Gen<None> - 36 - (0:0,0)
|
||||
Tag block - Gen<None> - 8 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [<script>] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[script];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [foo<bar baz='] - SpanEditHandler;Accepts:Any - (8:0,8) - Symbols:7
|
||||
HtmlSymbolType.Text;[foo];
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[bar];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[baz];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Expression block - Gen<Expr> - 4 - (21:0,21)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [boz] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (22:0,22) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[boz];
|
||||
Markup span - Gen<Markup> - ['>] - SpanEditHandler;Accepts:Any - (25:0,25) - Symbols:2
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Tag block - Gen<None> - 9 - (27:0,27)
|
||||
Markup span - Gen<Markup> - [</script>] - SpanEditHandler;Accepts:Any - (27:0,27) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[script];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
Markup block - Gen<None> - 17 - (0:0,0)
|
||||
Tag block - Gen<None> - 5 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [<foo>] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[foo];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [${bar}] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:1
|
||||
HtmlSymbolType.Text;[${bar}];
|
||||
Tag block - Gen<None> - 6 - (11:0,11)
|
||||
Markup span - Gen<Markup> - [</foo>] - SpanEditHandler;Accepts:Any - (11:0,11) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[foo];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
Markup block - Gen<None> - 0 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
Markup block - Gen<None> - 10 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [ ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
Markup block - Gen<None> - 7 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [foo baz] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:3
|
||||
HtmlSymbolType.Text;[foo];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[baz];
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
Markup block - Gen<None> - 38 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Statement block - Gen<None> - 32 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Markup block - Gen<None> - 19 - (2:0,2)
|
||||
Tag block - Gen<None> - 6 - (2:0,2)
|
||||
Transition span - Gen<None> - [<text>] - SpanEditHandler;Accepts:None - (2:0,2) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[text];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [Blah] - SpanEditHandler;Accepts:None - (8:0,8) - Symbols:1
|
||||
HtmlSymbolType.Text;[Blah];
|
||||
Tag block - Gen<None> - 7 - (12:0,12)
|
||||
Transition span - Gen<None> - [</text>] - SpanEditHandler;Accepts:None - (12:0,12) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[text];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [LF] - SpanEditHandler;Accepts:None - (19:0,19) - Symbols:1
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
Markup block - Gen<None> - 10 - (21:1,0)
|
||||
Tag block - Gen<None> - 8 - (21:1,0)
|
||||
Markup span - Gen<Markup> - [<input/>] - SpanEditHandler;Accepts:None - (21:1,0) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[input];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [LF] - SpanEditHandler;Accepts:None - (29:1,8) - Symbols:1
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
Code span - Gen<Stmt> - [] - SpanEditHandler;Accepts:Any - (31:2,0) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (31:2,0) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Tag block - Gen<None> - 6 - (32:2,1)
|
||||
Markup span - Gen<Markup> - [<html>] - SpanEditHandler;Accepts:Any - (32:2,1) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[html];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
Markup block - Gen<None> - 37 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Statement block - Gen<None> - 31 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Markup block - Gen<None> - 19 - (2:0,2)
|
||||
Tag block - Gen<None> - 6 - (2:0,2)
|
||||
Transition span - Gen<None> - [<text>] - SpanEditHandler;Accepts:None - (2:0,2) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[text];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [Blah] - SpanEditHandler;Accepts:None - (8:0,8) - Symbols:1
|
||||
HtmlSymbolType.Text;[Blah];
|
||||
Tag block - Gen<None> - 7 - (12:0,12)
|
||||
Transition span - Gen<None> - [</text>] - SpanEditHandler;Accepts:None - (12:0,12) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[text];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [LF] - SpanEditHandler;Accepts:None - (19:0,19) - Symbols:1
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
Markup block - Gen<None> - 9 - (21:1,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (21:1,0) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [:] - SpanEditHandler;Accepts:Any - (22:1,1) - Symbols:1
|
||||
HtmlSymbolType.Colon;[:];
|
||||
Markup span - Gen<Markup> - [ BlehLF] - SpanEditHandler;Accepts:None - (23:1,2) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[Bleh];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
Code span - Gen<Stmt> - [] - SpanEditHandler;Accepts:Any - (30:2,0) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (30:2,0) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Tag block - Gen<None> - 6 - (31:2,1)
|
||||
Markup span - Gen<Markup> - [<html>] - SpanEditHandler;Accepts:Any - (31:2,1) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[html];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
Markup block - Gen<None> - 20 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [Foo ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:2
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
Tag block - Gen<None> - 6 - (4:0,4)
|
||||
Markup span - Gen<Markup> - [<text>] - SpanEditHandler;Accepts:Any - (4:0,4) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[text];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [Foo] - SpanEditHandler;Accepts:Any - (10:0,10) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Tag block - Gen<None> - 7 - (13:0,13)
|
||||
Markup span - Gen<Markup> - [</text>] - SpanEditHandler;Accepts:Any - (13:0,13) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[text];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
Markup block - Gen<None> - 30 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [Foo Baz] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:3
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[Baz];
|
||||
HtmlComment block - Gen<None> - 10 - (7:0,7)
|
||||
Markup span - Gen<Markup> - [<!--] - SpanEditHandler;Accepts:None - (7:0,7) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Bang;[!];
|
||||
HtmlSymbolType.DoubleHyphen;[--];
|
||||
Markup span - Gen<Markup> - [Foo] - SpanEditHandler;Accepts:WhiteSpace - (11:0,11) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<Markup> - [-->] - SpanEditHandler;Accepts:None - (14:0,14) - Symbols:2
|
||||
HtmlSymbolType.DoubleHyphen;[--];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [Bar] - SpanEditHandler;Accepts:Any - (17:0,17) - Symbols:1
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<Markup> - [<!--F> Qux] - SpanEditHandler;Accepts:Any - (20:0,20) - Symbols:7
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Bang;[!];
|
||||
HtmlSymbolType.DoubleHyphen;[--];
|
||||
HtmlSymbolType.Text;[F];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[Qux];
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
Markup block - Gen<None> - 36 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Directive block - Gen<Directive:{section;RazorBlock;Unrestricted}> - 36 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [section] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[section];
|
||||
Code span - Gen<None> - [ ] - SpanEditHandler;Accepts:WhiteSpace - (8:0,8) - Symbols:1
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
Code span - Gen<DirectiveToken {SectionName;Member;Opt:False}> - [Foo] - DirectiveTokenEditHandler;Accepts:NonWhiteSpace - (9:0,9) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[Foo];
|
||||
Markup span - Gen<None> - [ ] - SpanEditHandler;Accepts:AllWhiteSpace - (12:0,12) - Symbols:1
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
MetaCode span - Gen<None> - [{] - AutoCompleteEditHandler;Accepts:None,AutoComplete:[<null>];AtEnd - (13:0,13) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Markup block - Gen<None> - 21 - (14:0,14)
|
||||
Markup span - Gen<Markup> - [LF ] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:2
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
Tag block - Gen<None> - 6 - (20:1,4)
|
||||
Markup span - Gen<Markup> - [<html>] - SpanEditHandler;Accepts:Any - (20:1,4) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[html];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Tag block - Gen<None> - 7 - (26:1,10)
|
||||
Markup span - Gen<Markup> - [</html>] - SpanEditHandler;Accepts:Any - (26:1,10) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[html];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [LF] - SpanEditHandler;Accepts:Any - (33:1,17) - Symbols:1
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (35:2,0) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (36:2,1) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
Markup block - Gen<None> - 52 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Statement block - Gen<None> - 52 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Stmt> - [if (true) { ] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:8
|
||||
CSharpSymbolType.Keyword;[if];
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
CSharpSymbolType.LeftParenthesis;[(];
|
||||
CSharpSymbolType.Keyword;[true];
|
||||
CSharpSymbolType.RightParenthesis;[)];
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
Statement block - Gen<None> - 37 - (13:0,13)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Stmt> - [if(false) {] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:6
|
||||
CSharpSymbolType.Keyword;[if];
|
||||
CSharpSymbolType.LeftParenthesis;[(];
|
||||
CSharpSymbolType.Keyword;[false];
|
||||
CSharpSymbolType.RightParenthesis;[)];
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Markup block - Gen<None> - 24 - (25:0,25)
|
||||
Markup span - Gen<Markup> - [ ] - SpanEditHandler;Accepts:Any - (25:0,25) - Symbols:1
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
Tag block - Gen<None> - 5 - (26:0,26)
|
||||
Markup span - Gen<Markup> - [<div>] - SpanEditHandler;Accepts:None - (26:0,26) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[div];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (31:0,31) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Expression block - Gen<Expr> - 10 - (31:0,31)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (31:0,31) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [something] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (32:0,32) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[something];
|
||||
Markup span - Gen<Markup> - [.] - SpanEditHandler;Accepts:Any - (41:0,41) - Symbols:1
|
||||
HtmlSymbolType.Text;[.];
|
||||
Tag block - Gen<None> - 6 - (42:0,42)
|
||||
Markup span - Gen<Markup> - [</div>] - SpanEditHandler;Accepts:None - (42:0,42) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[div];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [ ] - SpanEditHandler;Accepts:None - (48:0,48) - Symbols:1
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
Code span - Gen<Stmt> - [}] - SpanEditHandler;Accepts:Any - (49:0,49) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Code span - Gen<Stmt> - [ }] - SpanEditHandler;Accepts:Any - (50:0,50) - Symbols:2
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
Markup block - Gen<None> - 22 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [{] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Text;[{];
|
||||
Tag block - Gen<None> - 20 - (1:0,1)
|
||||
Markup span - Gen<Markup> - [<span] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:2
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[span];
|
||||
Markup block - Gen<Attr:foo, foo='@(6:0,6),'@(17:0,17)> - 12 - (6:0,6)
|
||||
Markup span - Gen<None> - [ foo='] - SpanEditHandler;Accepts:Any - (6:0,6) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[foo];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<None> - 2 - (12:0,12)
|
||||
Markup span - Gen<LitAttr:@(12:0,12)> - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<LitAttr:@(14:0,14)> - [def] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:1
|
||||
HtmlSymbolType.Text;[def];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (17:0,17) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:Any - (18:0,18) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [}] - SpanEditHandler;Accepts:Any - (21:0,21) - Symbols:1
|
||||
HtmlSymbolType.Text;[}];
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
Markup block - Gen<None> - 22 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [{] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Text;[{];
|
||||
Tag block - Gen<None> - 20 - (1:0,1)
|
||||
Markup span - Gen<Markup> - [<span] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:2
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[span];
|
||||
Markup block - Gen<Attr:foo, foo='@(6:0,6),'@(17:0,17)> - 12 - (6:0,6)
|
||||
Markup span - Gen<None> - [ foo='] - SpanEditHandler;Accepts:Any - (6:0,6) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[foo];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(12:0,12)> - [abc] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:1
|
||||
HtmlSymbolType.Text;[abc];
|
||||
Markup block - Gen<None> - 2 - (15:0,15)
|
||||
Markup span - Gen<LitAttr:@(15:0,15)> - [@] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (17:0,17) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:Any - (18:0,18) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [}] - SpanEditHandler;Accepts:Any - (21:0,21) - Symbols:1
|
||||
HtmlSymbolType.Text;[}];
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
Markup block - Gen<None> - 27 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [{] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Text;[{];
|
||||
Tag block - Gen<None> - 25 - (1:0,1)
|
||||
Markup span - Gen<Markup> - [<span] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:2
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[span];
|
||||
Markup block - Gen<Attr:foo, foo='@(6:0,6),'@(22:0,22)> - 17 - (6:0,6)
|
||||
Markup span - Gen<None> - [ foo='] - SpanEditHandler;Accepts:Any - (6:0,6) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[foo];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(12:0,12)> - [abc] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:1
|
||||
HtmlSymbolType.Text;[abc];
|
||||
Markup block - Gen<None> - 3 - (15:0,15)
|
||||
Markup span - Gen<LitAttr: @(15:0,15)> - [ @] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (17:0,17) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<LitAttr: @(18:0,18)> - [ def] - SpanEditHandler;Accepts:Any - (18:0,18) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[def];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (22:0,22) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:Any - (23:0,23) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [}] - SpanEditHandler;Accepts:Any - (26:0,26) - Symbols:1
|
||||
HtmlSymbolType.Text;[}];
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
Markup block - Gen<None> - 19 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [{] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Text;[{];
|
||||
Tag block - Gen<None> - 17 - (1:0,1)
|
||||
Markup span - Gen<Markup> - [<span] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:2
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[span];
|
||||
Markup block - Gen<Attr:foo, foo='@(6:0,6),'@(14:0,14)> - 9 - (6:0,6)
|
||||
Markup span - Gen<None> - [ foo='] - SpanEditHandler;Accepts:Any - (6:0,6) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[foo];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<None> - 2 - (12:0,12)
|
||||
Markup span - Gen<LitAttr:@(12:0,12)> - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:Any - (15:0,15) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [}] - SpanEditHandler;Accepts:Any - (18:0,18) - Symbols:1
|
||||
HtmlSymbolType.Text;[}];
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
Markup block - Gen<None> - 44 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [{] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Text;[{];
|
||||
Tag block - Gen<None> - 42 - (1:0,1)
|
||||
Markup span - Gen<Markup> - [<span] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:2
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[span];
|
||||
Markup block - Gen<Attr:foo, foo='@(6:0,6),'@(39:0,39)> - 34 - (6:0,6)
|
||||
Markup span - Gen<None> - [ foo='] - SpanEditHandler;Accepts:Any - (6:0,6) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[foo];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(12:0,12)> - [abc@def.com] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:1
|
||||
HtmlSymbolType.Text;[abc@def.com];
|
||||
Markup span - Gen<LitAttr: @(23:0,23)> - [ abc] - SpanEditHandler;Accepts:Any - (23:0,23) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[abc];
|
||||
Markup block - Gen<None> - 2 - (27:0,27)
|
||||
Markup span - Gen<LitAttr:@(27:0,27)> - [@] - SpanEditHandler;Accepts:None - (27:0,27) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (28:0,28) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<LitAttr:@(29:0,29)> - [def.com] - SpanEditHandler;Accepts:Any - (29:0,29) - Symbols:1
|
||||
HtmlSymbolType.Text;[def.com];
|
||||
Markup block - Gen<None> - 3 - (36:0,36)
|
||||
Markup span - Gen<LitAttr: @(36:0,36)> - [ @] - SpanEditHandler;Accepts:None - (36:0,36) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (38:0,38) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (39:0,39) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:Any - (40:0,40) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [}] - SpanEditHandler;Accepts:Any - (43:0,43) - Symbols:1
|
||||
HtmlSymbolType.Text;[}];
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
Markup block - Gen<None> - 117 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [{] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Text;[{];
|
||||
Tag block - Gen<None> - 115 - (1:0,1)
|
||||
Markup span - Gen<Markup> - [<span] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:2
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[span];
|
||||
Markup block - Gen<Attr:foo, foo="@(6:0,6),"@(112:0,112)> - 107 - (6:0,6)
|
||||
Markup span - Gen<None> - [ foo="] - SpanEditHandler;Accepts:Any - (6:0,6) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[foo];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.DoubleQuote;["];
|
||||
Markup span - Gen<LitAttr:@(12:0,12)> - [/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:14
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[^];
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[a-z0-9];
|
||||
HtmlSymbolType.Bang;[!];
|
||||
HtmlSymbolType.Text;[#$%&];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
HtmlSymbolType.Text;[*+\];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.QuestionMark;[?];
|
||||
HtmlSymbolType.Text;[^_`{|}~.-];
|
||||
HtmlSymbolType.RightBracket;[]];
|
||||
HtmlSymbolType.Text;[+];
|
||||
Markup block - Gen<None> - 2 - (44:0,44)
|
||||
Markup span - Gen<LitAttr:@(44:0,44)> - [@] - SpanEditHandler;Accepts:None - (44:0,44) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (45:0,45) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<LitAttr:@(46:0,46)> - [[a-z0-9]([a-z0-9-]*[a-z0-9])?\.([a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i] - SpanEditHandler;Accepts:Any - (46:0,46) - Symbols:30
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[a-z0-9];
|
||||
HtmlSymbolType.RightBracket;[]];
|
||||
HtmlSymbolType.Text;[(];
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[a-z0-9-];
|
||||
HtmlSymbolType.RightBracket;[]];
|
||||
HtmlSymbolType.Text;[*];
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[a-z0-9];
|
||||
HtmlSymbolType.RightBracket;[]];
|
||||
HtmlSymbolType.Text;[)];
|
||||
HtmlSymbolType.QuestionMark;[?];
|
||||
HtmlSymbolType.Text;[\.(];
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[a-z0-9];
|
||||
HtmlSymbolType.RightBracket;[]];
|
||||
HtmlSymbolType.Text;[(];
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[a-z0-9-];
|
||||
HtmlSymbolType.RightBracket;[]];
|
||||
HtmlSymbolType.Text;[*];
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[a-z0-9];
|
||||
HtmlSymbolType.RightBracket;[]];
|
||||
HtmlSymbolType.Text;[)];
|
||||
HtmlSymbolType.QuestionMark;[?];
|
||||
HtmlSymbolType.Text;[)*$];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[i];
|
||||
Markup span - Gen<None> - ["] - SpanEditHandler;Accepts:Any - (112:0,112) - Symbols:1
|
||||
HtmlSymbolType.DoubleQuote;["];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:Any - (113:0,113) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [}] - SpanEditHandler;Accepts:Any - (116:0,116) - Symbols:1
|
||||
HtmlSymbolType.Text;[}];
|
||||
|
|
@ -0,0 +1,141 @@
|
|||
Markup block - Gen<None> - 120 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [{] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Text;[{];
|
||||
Tag block - Gen<None> - 118 - (1:0,1)
|
||||
Markup span - Gen<Markup> - [<span] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:2
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[span];
|
||||
Markup block - Gen<Attr:foo, foo='@(6:0,6),'@(20:0,20)> - 15 - (6:0,6)
|
||||
Markup span - Gen<None> - [ foo='] - SpanEditHandler;Accepts:Any - (6:0,6) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[foo];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<None> - 2 - (12:0,12)
|
||||
Markup span - Gen<LitAttr:@(12:0,12)> - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup block - Gen<DynAttr:@(14:0,14)> - 6 - (14:0,14)
|
||||
Markup span - Gen<None> - [] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Expression block - Gen<Expr> - 6 - (14:0,14)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (14:0,14) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:1
|
||||
CSharpSymbolType.LeftParenthesis;[(];
|
||||
Code span - Gen<Expr> - [2+3] - SpanEditHandler;Accepts:Any - (16:0,16) - Symbols:3
|
||||
CSharpSymbolType.IntegerLiteral;[2];
|
||||
CSharpSymbolType.Plus;[+];
|
||||
CSharpSymbolType.IntegerLiteral;[3];
|
||||
MetaCode span - Gen<None> - [)] - SpanEditHandler;Accepts:None - (19:0,19) - Symbols:1
|
||||
CSharpSymbolType.RightParenthesis;[)];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (20:0,20) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:bar, bar='@(21:0,21),'@(48:0,48)> - 28 - (21:0,21)
|
||||
Markup span - Gen<None> - [ bar='] - SpanEditHandler;Accepts:Any - (21:0,21) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[bar];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<DynAttr:@(27:0,27)> - 6 - (27:0,27)
|
||||
Expression block - Gen<Expr> - 6 - (27:0,27)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (27:0,27) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (28:0,28) - Symbols:1
|
||||
CSharpSymbolType.LeftParenthesis;[(];
|
||||
Code span - Gen<Expr> - [2+3] - SpanEditHandler;Accepts:Any - (29:0,29) - Symbols:3
|
||||
CSharpSymbolType.IntegerLiteral;[2];
|
||||
CSharpSymbolType.Plus;[+];
|
||||
CSharpSymbolType.IntegerLiteral;[3];
|
||||
MetaCode span - Gen<None> - [)] - SpanEditHandler;Accepts:None - (32:0,32) - Symbols:1
|
||||
CSharpSymbolType.RightParenthesis;[)];
|
||||
Markup block - Gen<None> - 2 - (33:0,33)
|
||||
Markup span - Gen<LitAttr:@(33:0,33)> - [@] - SpanEditHandler;Accepts:None - (33:0,33) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (34:0,34) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup block - Gen<DynAttr:@(35:0,35)> - 13 - (35:0,35)
|
||||
Markup span - Gen<None> - [] - SpanEditHandler;Accepts:Any - (35:0,35) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Expression block - Gen<Expr> - 13 - (35:0,35)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (35:0,35) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (36:0,36) - Symbols:3
|
||||
CSharpSymbolType.Identifier;[DateTime];
|
||||
CSharpSymbolType.Dot;[.];
|
||||
CSharpSymbolType.Identifier;[Now];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (48:0,48) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:baz, baz='@(49:0,49),'@(70:0,70)> - 22 - (49:0,49)
|
||||
Markup span - Gen<None> - [ baz='] - SpanEditHandler;Accepts:Any - (49:0,49) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[baz];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<DynAttr:@(55:0,55)> - 13 - (55:0,55)
|
||||
Expression block - Gen<Expr> - 13 - (55:0,55)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (55:0,55) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (56:0,56) - Symbols:3
|
||||
CSharpSymbolType.Identifier;[DateTime];
|
||||
CSharpSymbolType.Dot;[.];
|
||||
CSharpSymbolType.Identifier;[Now];
|
||||
Markup block - Gen<None> - 2 - (68:0,68)
|
||||
Markup span - Gen<LitAttr:@(68:0,68)> - [@] - SpanEditHandler;Accepts:None - (68:0,68) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (69:0,69) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (70:0,70) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:bat, bat='@(71:0,71),'@(93:0,93)> - 23 - (71:0,71)
|
||||
Markup span - Gen<None> - [ bat='] - SpanEditHandler;Accepts:Any - (71:0,71) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[bat];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<DynAttr:@(77:0,77)> - 13 - (77:0,77)
|
||||
Expression block - Gen<Expr> - 13 - (77:0,77)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (77:0,77) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (78:0,78) - Symbols:3
|
||||
CSharpSymbolType.Identifier;[DateTime];
|
||||
CSharpSymbolType.Dot;[.];
|
||||
CSharpSymbolType.Identifier;[Now];
|
||||
Markup block - Gen<None> - 3 - (90:0,90)
|
||||
Markup span - Gen<LitAttr: @(90:0,90)> - [ @] - SpanEditHandler;Accepts:None - (90:0,90) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (92:0,92) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (93:0,93) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:zoo, zoo='@(94:0,94),'@(115:0,115)> - 22 - (94:0,94)
|
||||
Markup span - Gen<None> - [ zoo='] - SpanEditHandler;Accepts:Any - (94:0,94) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[zoo];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<None> - 2 - (100:0,100)
|
||||
Markup span - Gen<LitAttr:@(100:0,100)> - [@] - SpanEditHandler;Accepts:None - (100:0,100) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (101:0,101) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup block - Gen<DynAttr:@(102:0,102)> - 13 - (102:0,102)
|
||||
Markup span - Gen<None> - [] - SpanEditHandler;Accepts:Any - (102:0,102) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Expression block - Gen<Expr> - 13 - (102:0,102)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (102:0,102) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (103:0,103) - Symbols:3
|
||||
CSharpSymbolType.Identifier;[DateTime];
|
||||
CSharpSymbolType.Dot;[.];
|
||||
CSharpSymbolType.Identifier;[Now];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (115:0,115) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:Any - (116:0,116) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [}] - SpanEditHandler;Accepts:Any - (119:0,119) - Symbols:1
|
||||
HtmlSymbolType.Text;[}];
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
(1,13): Error RZ1003: A space or line break was encountered after the "@" character. Only valid identifiers, keywords, comments, "(" and "{" are valid at the start of a code block and they must occur immediately following "@" with no space in between.
|
||||
(1,15): Error RZ1005: "' />" is not valid at the start of a code block. Only identifiers, keywords, comments, "(" and "{" are valid.
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
Markup block - Gen<None> - 18 - (0:0,0)
|
||||
Tag block - Gen<None> - 18 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [<span] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:2
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[span];
|
||||
Markup block - Gen<Attr:foo, foo='@(5:0,5),'@(14:0,14)> - 10 - (5:0,5)
|
||||
Markup span - Gen<None> - [ foo='] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[foo];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<DynAttr:@(11:0,11)> - 1 - (11:0,11)
|
||||
Expression block - Gen<Expr> - 1 - (11:0,11)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (11:0,11) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (12:0,12) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
Markup block - Gen<DynAttr: @(12:0,12)> - 2 - (12:0,12)
|
||||
Markup span - Gen<None> - [ ] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:1
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
Expression block - Gen<Expr> - 1 - (13:0,13)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (14:0,14) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:Any - (15:0,15) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
Markup block - Gen<None> - 53 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Directive block - Gen<Directive:{section;RazorBlock;Unrestricted}> - 53 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [section] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[section];
|
||||
Code span - Gen<None> - [ ] - SpanEditHandler;Accepts:WhiteSpace - (8:0,8) - Symbols:1
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
Code span - Gen<DirectiveToken {SectionName;Member;Opt:False}> - [Foo] - DirectiveTokenEditHandler;Accepts:NonWhiteSpace - (9:0,9) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[Foo];
|
||||
Markup span - Gen<None> - [ ] - SpanEditHandler;Accepts:AllWhiteSpace - (12:0,12) - Symbols:1
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
MetaCode span - Gen<None> - [{] - AutoCompleteEditHandler;Accepts:None,AutoComplete:[<null>];AtEnd - (13:0,13) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Markup block - Gen<None> - 38 - (14:0,14)
|
||||
Markup span - Gen<Markup> - [ ] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:1
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
Tag block - Gen<None> - 8 - (15:0,15)
|
||||
Markup span - Gen<Markup> - [<script>] - SpanEditHandler;Accepts:Any - (15:0,15) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[script];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [foo<bar baz='] - SpanEditHandler;Accepts:Any - (23:0,23) - Symbols:7
|
||||
HtmlSymbolType.Text;[foo];
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[bar];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[baz];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Expression block - Gen<Expr> - 4 - (36:0,36)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (36:0,36) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [boz] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K15 - (37:0,37) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[boz];
|
||||
Markup span - Gen<Markup> - ['>] - SpanEditHandler;Accepts:Any - (40:0,40) - Symbols:2
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Tag block - Gen<None> - 9 - (42:0,42)
|
||||
Markup span - Gen<Markup> - [</script>] - SpanEditHandler;Accepts:Any - (42:0,42) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[script];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [ ] - SpanEditHandler;Accepts:Any - (51:0,51) - Symbols:1
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (52:0,52) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (53:0,53) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
Loading…
Reference in New Issue