Converted HtmlAttributeTest
This commit is contained in:
parent
5950928baa
commit
048a6ec3ea
|
|
@ -923,8 +923,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
if (UseBaselineTests && !IsTheory)
|
||||
{
|
||||
SyntaxTreeVerifier.Verify(result);
|
||||
AssertSyntaxTreeNodeMatchesBaseline(result);
|
||||
BaselineTest(result);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,465 +3,225 @@
|
|||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Moq;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
||||
{
|
||||
public class HtmlAttributeTest : CsHtmlMarkupParserTestBase
|
||||
{
|
||||
public static TheoryData SymbolBoundAttributeNames
|
||||
public HtmlAttributeTest()
|
||||
{
|
||||
get
|
||||
{
|
||||
return new TheoryData<string>
|
||||
{
|
||||
"[item]",
|
||||
"[(item,",
|
||||
"(click)",
|
||||
"(^click)",
|
||||
"*something",
|
||||
"#local",
|
||||
};
|
||||
}
|
||||
UseBaselineTests = true;
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(SymbolBoundAttributeNames))]
|
||||
public void SymbolBoundAttributes_BeforeEqualWhitespace(string attributeName)
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes_BeforeEqualWhitespace1()
|
||||
{
|
||||
// Arrange
|
||||
var attributeNameLength = attributeName.Length;
|
||||
var newlineLength = Environment.NewLine.Length;
|
||||
var prefixLocation1 = new SourceLocation(
|
||||
absoluteIndex: 2,
|
||||
lineIndex: 0,
|
||||
characterIndex: 2);
|
||||
var suffixLocation1 = new SourceLocation(
|
||||
absoluteIndex: 8 + newlineLength + attributeNameLength,
|
||||
lineIndex: 1,
|
||||
characterIndex: 5);
|
||||
var valueLocation1 = new SourceLocation(
|
||||
absoluteIndex: 5 + attributeNameLength + newlineLength,
|
||||
lineIndex: 1,
|
||||
characterIndex: 2);
|
||||
var prefixLocation2 = SourceLocationTracker.Advance(suffixLocation1, "'");
|
||||
var suffixLocation2 = new SourceLocation(
|
||||
absoluteIndex: 15 + attributeNameLength * 2 + newlineLength * 2,
|
||||
lineIndex: 2,
|
||||
characterIndex: 4);
|
||||
var valueLocation2 = new SourceLocation(
|
||||
absoluteIndex: 12 + attributeNameLength * 2 + newlineLength * 2,
|
||||
lineIndex: 2,
|
||||
characterIndex: 1);
|
||||
|
||||
// Act & Assert
|
||||
ParseBlockTest(
|
||||
$"<a {attributeName}{Environment.NewLine}='Foo'\t{attributeName}={Environment.NewLine}'Bar' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator(
|
||||
attributeName,
|
||||
prefix: new LocationTagged<string>(
|
||||
$" {attributeName}{Environment.NewLine}='", prefixLocation1),
|
||||
suffix: new LocationTagged<string>("'", suffixLocation1)),
|
||||
Factory.Markup($" {attributeName}{Environment.NewLine}='").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("Foo").With(
|
||||
new LiteralAttributeChunkGenerator(
|
||||
prefix: new LocationTagged<string>(string.Empty, valueLocation1),
|
||||
value: new LocationTagged<string>("Foo", valueLocation1))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator(
|
||||
attributeName,
|
||||
prefix: new LocationTagged<string>(
|
||||
$"\t{attributeName}={Environment.NewLine}'", prefixLocation2),
|
||||
suffix: new LocationTagged<string>("'", suffixLocation2)),
|
||||
Factory.Markup($"\t{attributeName}={Environment.NewLine}'").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("Bar").With(
|
||||
new LiteralAttributeChunkGenerator(
|
||||
prefix: new LocationTagged<string>(string.Empty, valueLocation2),
|
||||
value: new LocationTagged<string>("Bar", valueLocation2))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None))));
|
||||
var attributeName = "[item]";
|
||||
ParseBlockTest($"<a {attributeName}{Environment.NewLine}='Foo'\t{attributeName}={Environment.NewLine}'Bar' />");
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(SymbolBoundAttributeNames))]
|
||||
public void SymbolBoundAttributes_Whitespace(string attributeName)
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes_BeforeEqualWhitespace2()
|
||||
{
|
||||
// Arrange
|
||||
var attributeNameLength = attributeName.Length;
|
||||
var newlineLength = Environment.NewLine.Length;
|
||||
var prefixLocation1 = new SourceLocation(
|
||||
absoluteIndex: 2,
|
||||
lineIndex: 0,
|
||||
characterIndex: 2);
|
||||
var suffixLocation1 = new SourceLocation(
|
||||
absoluteIndex: 10 + newlineLength + attributeNameLength,
|
||||
lineIndex: 1,
|
||||
characterIndex: 7 + attributeNameLength);
|
||||
var valueLocation1 = new SourceLocation(
|
||||
absoluteIndex: 7 + attributeNameLength + newlineLength,
|
||||
lineIndex: 1,
|
||||
characterIndex: 4 + attributeNameLength);
|
||||
var prefixLocation2 = SourceLocationTracker.Advance(suffixLocation1, "'");
|
||||
var suffixLocation2 = new SourceLocation(
|
||||
absoluteIndex: 17 + attributeNameLength * 2 + newlineLength * 2,
|
||||
lineIndex: 2,
|
||||
characterIndex: 5 + attributeNameLength);
|
||||
var valueLocation2 = new SourceLocation(
|
||||
absoluteIndex: 14 + attributeNameLength * 2 + newlineLength * 2,
|
||||
lineIndex: 2,
|
||||
characterIndex: 2 + attributeNameLength);
|
||||
|
||||
// Act & Assert
|
||||
ParseBlockTest(
|
||||
$"<a {Environment.NewLine} {attributeName}='Foo'\t{Environment.NewLine}{attributeName}='Bar' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator(
|
||||
attributeName,
|
||||
prefix: new LocationTagged<string>(
|
||||
$" {Environment.NewLine} {attributeName}='", prefixLocation1),
|
||||
suffix: new LocationTagged<string>("'", suffixLocation1)),
|
||||
Factory.Markup($" {Environment.NewLine} {attributeName}='").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("Foo").With(
|
||||
new LiteralAttributeChunkGenerator(
|
||||
prefix: new LocationTagged<string>(string.Empty, valueLocation1),
|
||||
value: new LocationTagged<string>("Foo", valueLocation1))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator(
|
||||
attributeName,
|
||||
prefix: new LocationTagged<string>(
|
||||
$"\t{Environment.NewLine}{attributeName}='", prefixLocation2),
|
||||
suffix: new LocationTagged<string>("'", suffixLocation2)),
|
||||
Factory.Markup($"\t{Environment.NewLine}{attributeName}='").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("Bar").With(
|
||||
new LiteralAttributeChunkGenerator(
|
||||
prefix: new LocationTagged<string>(string.Empty, valueLocation2),
|
||||
value: new LocationTagged<string>("Bar", valueLocation2))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None))));
|
||||
var attributeName = "[(item,";
|
||||
ParseBlockTest($"<a {attributeName}{Environment.NewLine}='Foo'\t{attributeName}={Environment.NewLine}'Bar' />");
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(SymbolBoundAttributeNames))]
|
||||
public void SymbolBoundAttributes(string attributeName)
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes_BeforeEqualWhitespace3()
|
||||
{
|
||||
// Arrange
|
||||
var attributeNameLength = attributeName.Length;
|
||||
var suffixLocation = 8 + attributeNameLength;
|
||||
var valueLocation = 5 + attributeNameLength;
|
||||
var attributeName = "(click)";
|
||||
ParseBlockTest($"<a {attributeName}{Environment.NewLine}='Foo'\t{attributeName}={Environment.NewLine}'Bar' />");
|
||||
}
|
||||
|
||||
// Act & Assert
|
||||
ParseBlockTest($"<a {attributeName}='Foo' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator(
|
||||
attributeName,
|
||||
prefix: new LocationTagged<string>($" {attributeName}='", 2, 0, 2),
|
||||
suffix: new LocationTagged<string>("'", suffixLocation, 0, suffixLocation)),
|
||||
Factory.Markup($" {attributeName}='").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("Foo").With(
|
||||
new LiteralAttributeChunkGenerator(
|
||||
prefix: new LocationTagged<string>(string.Empty, valueLocation, 0, valueLocation),
|
||||
value: new LocationTagged<string>("Foo", valueLocation, 0, valueLocation))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None))));
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes_BeforeEqualWhitespace4()
|
||||
{
|
||||
var attributeName = "(^click)";
|
||||
ParseBlockTest($"<a {attributeName}{Environment.NewLine}='Foo'\t{attributeName}={Environment.NewLine}'Bar' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes_BeforeEqualWhitespace5()
|
||||
{
|
||||
var attributeName = "*something";
|
||||
ParseBlockTest($"<a {attributeName}{Environment.NewLine}='Foo'\t{attributeName}={Environment.NewLine}'Bar' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes_BeforeEqualWhitespace6()
|
||||
{
|
||||
var attributeName = "#local";
|
||||
ParseBlockTest($"<a {attributeName}{Environment.NewLine}='Foo'\t{attributeName}={Environment.NewLine}'Bar' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes_Whitespace1()
|
||||
{
|
||||
var attributeName = "[item]";
|
||||
ParseBlockTest($"<a {Environment.NewLine} {attributeName}='Foo'\t{Environment.NewLine}{attributeName}='Bar' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes_Whitespace2()
|
||||
{
|
||||
var attributeName = "[(item,";
|
||||
ParseBlockTest($"<a {Environment.NewLine} {attributeName}='Foo'\t{Environment.NewLine}{attributeName}='Bar' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes_Whitespace3()
|
||||
{
|
||||
var attributeName = "(click)";
|
||||
ParseBlockTest($"<a {Environment.NewLine} {attributeName}='Foo'\t{Environment.NewLine}{attributeName}='Bar' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes_Whitespace4()
|
||||
{
|
||||
var attributeName = "(^click)";
|
||||
ParseBlockTest($"<a {Environment.NewLine} {attributeName}='Foo'\t{Environment.NewLine}{attributeName}='Bar' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes_Whitespace5()
|
||||
{
|
||||
var attributeName = "*something";
|
||||
ParseBlockTest($"<a {Environment.NewLine} {attributeName}='Foo'\t{Environment.NewLine}{attributeName}='Bar' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes_Whitespace6()
|
||||
{
|
||||
var attributeName = "#local";
|
||||
ParseBlockTest($"<a {Environment.NewLine} {attributeName}='Foo'\t{Environment.NewLine}{attributeName}='Bar' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes1()
|
||||
{
|
||||
var attributeName = "[item]";
|
||||
ParseBlockTest($"<a {attributeName}='Foo' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes2()
|
||||
{
|
||||
var attributeName = "[(item,";
|
||||
ParseBlockTest($"<a {attributeName}='Foo' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes3()
|
||||
{
|
||||
var attributeName = "(click)";
|
||||
ParseBlockTest($"<a {attributeName}='Foo' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes4()
|
||||
{
|
||||
var attributeName = "(^click)";
|
||||
ParseBlockTest($"<a {attributeName}='Foo' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes5()
|
||||
{
|
||||
var attributeName = "*something";
|
||||
ParseBlockTest($"<a {attributeName}='Foo' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SymbolBoundAttributes6()
|
||||
{
|
||||
var attributeName = "#local";
|
||||
ParseBlockTest($"<a {attributeName}='Foo' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SimpleLiteralAttribute()
|
||||
{
|
||||
ParseBlockTest("<a href='Foo' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator(
|
||||
name: "href", prefix: new LocationTagged<string>(" href='", 2, 0, 2), suffix: new LocationTagged<string>("'", 12, 0, 12)),
|
||||
Factory.Markup(" href='").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("Foo").With(
|
||||
new LiteralAttributeChunkGenerator(
|
||||
prefix: new LocationTagged<string>(string.Empty, 9, 0, 9), value: new LocationTagged<string>("Foo", 9, 0, 9))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None))));
|
||||
ParseBlockTest("<a href='Foo' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SimpleLiteralAttributeWithWhitespaceSurroundingEquals()
|
||||
{
|
||||
ParseBlockTest("<a href \f\r\n= \t\n'Foo' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator(
|
||||
name: "href",
|
||||
prefix: new LocationTagged<string>(" href \f\r\n= \t\n'", 2, 0, 2),
|
||||
suffix: new LocationTagged<string>("'", 19, 2, 4)),
|
||||
Factory.Markup(" href \f\r\n= \t\n'").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("Foo").With(
|
||||
new LiteralAttributeChunkGenerator(
|
||||
prefix: new LocationTagged<string>(string.Empty, 16, 2, 1), value: new LocationTagged<string>("Foo", 16, 2, 1))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None))));
|
||||
ParseBlockTest("<a href \f\r\n= \t\n'Foo' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void DynamicAttributeWithWhitespaceSurroundingEquals()
|
||||
{
|
||||
ParseBlockTest("<a href \n= \r\n'@Foo' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator(
|
||||
name: "href",
|
||||
prefix: new LocationTagged<string>(" href \n= \r\n'", 2, 0, 2),
|
||||
suffix: new LocationTagged<string>("'", 18, 2, 5)),
|
||||
Factory.Markup(" href \n= \r\n'").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 14, 2, 1), 14, 2, 1),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("Foo")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None))));
|
||||
ParseBlockTest("<a href \n= \r\n'@Foo' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void MultiPartLiteralAttribute()
|
||||
{
|
||||
ParseBlockTest("<a href='Foo Bar Baz' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a"),
|
||||
new MarkupBlock(new AttributeBlockChunkGenerator(name: "href", prefix: new LocationTagged<string>(" href='", 2, 0, 2), suffix: new LocationTagged<string>("'", 20, 0, 20)),
|
||||
Factory.Markup(" href='").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("Foo").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged<string>(string.Empty, 9, 0, 9), value: new LocationTagged<string>("Foo", 9, 0, 9))),
|
||||
Factory.Markup(" Bar").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged<string>(" ", 12, 0, 12), value: new LocationTagged<string>("Bar", 13, 0, 13))),
|
||||
Factory.Markup(" Baz").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged<string>(" ", 16, 0, 16), value: new LocationTagged<string>("Baz", 17, 0, 17))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None))));
|
||||
ParseBlockTest("<a href='Foo Bar Baz' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void DoubleQuotedLiteralAttribute()
|
||||
{
|
||||
ParseBlockTest("<a href=\"Foo Bar Baz\" />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a"),
|
||||
new MarkupBlock(new AttributeBlockChunkGenerator(name: "href", prefix: new LocationTagged<string>(" href=\"", 2, 0, 2), suffix: new LocationTagged<string>("\"", 20, 0, 20)),
|
||||
Factory.Markup(" href=\"").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("Foo").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged<string>(string.Empty, 9, 0, 9), value: new LocationTagged<string>("Foo", 9, 0, 9))),
|
||||
Factory.Markup(" Bar").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged<string>(" ", 12, 0, 12), value: new LocationTagged<string>("Bar", 13, 0, 13))),
|
||||
Factory.Markup(" Baz").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged<string>(" ", 16, 0, 16), value: new LocationTagged<string>("Baz", 17, 0, 17))),
|
||||
Factory.Markup("\"").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None))));
|
||||
ParseBlockTest("<a href=\"Foo Bar Baz\" />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void NewLinePrecedingAttribute()
|
||||
{
|
||||
ParseBlockTest("<a\r\nhref='Foo' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator(
|
||||
name: "href",
|
||||
prefix: new LocationTagged<string>("\r\nhref='", 2, 0, 2),
|
||||
suffix: new LocationTagged<string>("'", 13, 1, 9)),
|
||||
Factory.Markup("\r\nhref='").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("Foo").With(
|
||||
new LiteralAttributeChunkGenerator(
|
||||
prefix: new LocationTagged<string>(string.Empty, 10, 1, 6),
|
||||
value: new LocationTagged<string>("Foo", 10, 1, 6))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None))));
|
||||
ParseBlockTest("<a\r\nhref='Foo' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void NewLineBetweenAttributes()
|
||||
{
|
||||
ParseBlockTest("<a\nhref='Foo'\r\nabcd='Bar' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a"),
|
||||
new MarkupBlock(new AttributeBlockChunkGenerator(
|
||||
name: "href",
|
||||
prefix: new LocationTagged<string>("\nhref='", 2, 0, 2),
|
||||
suffix: new LocationTagged<string>("'", 12, 1, 9)),
|
||||
Factory.Markup("\nhref='").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("Foo").With(
|
||||
new LiteralAttributeChunkGenerator(
|
||||
prefix: new LocationTagged<string>(string.Empty, 9, 1, 6),
|
||||
value: new LocationTagged<string>("Foo", 9, 1, 6))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator(
|
||||
name: "abcd",
|
||||
prefix: new LocationTagged<string>("\r\nabcd='", 13, 1, 10),
|
||||
suffix: new LocationTagged<string>("'", 24, 2, 9)),
|
||||
Factory.Markup("\r\nabcd='").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("Bar").With(
|
||||
new LiteralAttributeChunkGenerator(
|
||||
prefix: new LocationTagged<string>(string.Empty, 21, 2, 6),
|
||||
value: new LocationTagged<string>("Bar", 21, 2, 6))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None))));
|
||||
ParseBlockTest("<a\nhref='Foo'\r\nabcd='Bar' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void WhitespaceAndNewLinePrecedingAttribute()
|
||||
{
|
||||
ParseBlockTest("<a \t\r\nhref='Foo' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator(
|
||||
name: "href",
|
||||
prefix: new LocationTagged<string>(" \t\r\nhref='", 2, 0, 2),
|
||||
suffix: new LocationTagged<string>("'", 15, 1, 9)),
|
||||
Factory.Markup(" \t\r\nhref='").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("Foo").With(
|
||||
new LiteralAttributeChunkGenerator(
|
||||
prefix: new LocationTagged<string>(string.Empty, 12, 1, 6),
|
||||
value: new LocationTagged<string>("Foo", 12, 1, 6))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None))));
|
||||
ParseBlockTest("<a \t\r\nhref='Foo' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void UnquotedLiteralAttribute()
|
||||
{
|
||||
ParseBlockTest("<a href=Foo Bar Baz />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a"),
|
||||
new MarkupBlock(new AttributeBlockChunkGenerator(name: "href", prefix: new LocationTagged<string>(" href=", 2, 0, 2), suffix: new LocationTagged<string>(string.Empty, 11, 0, 11)),
|
||||
Factory.Markup(" href=").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("Foo").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged<string>(string.Empty, 8, 0, 8), value: new LocationTagged<string>("Foo", 8, 0, 8)))),
|
||||
new MarkupBlock(Factory.Markup(" Bar")),
|
||||
new MarkupBlock(Factory.Markup(" Baz")),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None))));
|
||||
ParseBlockTest("<a href=Foo Bar Baz />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SimpleExpressionAttribute()
|
||||
{
|
||||
ParseBlockTest("<a href='@foo' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a"),
|
||||
new MarkupBlock(new AttributeBlockChunkGenerator(name: "href", prefix: new LocationTagged<string>(" href='", 2, 0, 2), suffix: new LocationTagged<string>("'", 13, 0, 13)),
|
||||
Factory.Markup(" href='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 9, 0, 9), 9, 0, 9),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("foo")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None))));
|
||||
ParseBlockTest("<a href='@foo' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void MultiValueExpressionAttribute()
|
||||
{
|
||||
ParseBlockTest("<a href='@foo bar @baz' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a"),
|
||||
new MarkupBlock(new AttributeBlockChunkGenerator(name: "href", prefix: new LocationTagged<string>(" href='", 2, 0, 2), suffix: new LocationTagged<string>("'", 22, 0, 22)),
|
||||
Factory.Markup(" href='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 9, 0, 9), 9, 0, 9),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("foo")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace))),
|
||||
Factory.Markup(" bar").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 13, 0, 13), new LocationTagged<string>("bar", 14, 0, 14))),
|
||||
new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(" ", 17, 0, 17), 18, 0, 18),
|
||||
Factory.Markup(" ").With(SpanChunkGenerator.Null),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("baz")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None))));
|
||||
ParseBlockTest("<a href='@foo bar @baz' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void VirtualPathAttributesWorkWithConditionalAttributes()
|
||||
{
|
||||
ParseBlockTest("<a href='@foo ~/Foo/Bar' />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a"),
|
||||
new MarkupBlock(new AttributeBlockChunkGenerator(name: "href", prefix: new LocationTagged<string>(" href='", 2, 0, 2), suffix: new LocationTagged<string>("'", 23, 0, 23)),
|
||||
Factory.Markup(" href='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 9, 0, 9), 9, 0, 9),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("foo")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace))),
|
||||
Factory.Markup(" ~/Foo/Bar")
|
||||
.With(new LiteralAttributeChunkGenerator(
|
||||
new LocationTagged<string>(" ", 13, 0, 13),
|
||||
new LocationTagged<string>("~/Foo/Bar", 14, 0, 14))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None))));
|
||||
ParseBlockTest("<a href='@foo ~/Foo/Bar' />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void UnquotedAttributeWithCodeWithSpacesInBlock()
|
||||
{
|
||||
ParseBlockTest("<input value=@foo />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<input"),
|
||||
new MarkupBlock(new AttributeBlockChunkGenerator(name: "value", prefix: new LocationTagged<string>(" value=", 6, 0, 6), suffix: new LocationTagged<string>(string.Empty, 17, 0, 17)),
|
||||
Factory.Markup(" value=").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 13, 0, 13), 13, 0, 13),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("foo")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)))),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None))));
|
||||
ParseBlockTest("<input value=@foo />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void UnquotedAttributeWithCodeWithSpacesInDocument()
|
||||
{
|
||||
ParseDocumentTest("<input value=@foo />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<input"),
|
||||
new MarkupBlock(new AttributeBlockChunkGenerator(name: "value", prefix: new LocationTagged<string>(" value=", 6, 0, 6), suffix: new LocationTagged<string>(string.Empty, 17, 0, 17)),
|
||||
Factory.Markup(" value=").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 13, 0, 13), 13, 0, 13),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("foo")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)))),
|
||||
Factory.Markup(" />"))));
|
||||
ParseDocumentTest("<input value=@foo />");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -473,18 +233,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
var rewritten = attributeCollapser.Rewrite(results.Root);
|
||||
|
||||
// Assert
|
||||
EvaluateParseTree(rewritten,
|
||||
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(" />"))));
|
||||
BaselineTest(rewritten);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -564,144 +313,31 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ParseBlockTest(
|
||||
RazorLanguageVersion.Experimental,
|
||||
"<span data-foo='@foo'></span>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
new AttributeBlockChunkGenerator("data-foo", new LocationTagged<string>(" data-foo='", 5, 0, 5), new LocationTagged<string>("'", 20, 0, 20)),
|
||||
Factory.Markup(" data-foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 16, 0, 16), 16, 0, 16),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("foo")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</span>").Accepts(AcceptedCharactersInternal.None))));
|
||||
"<span data-foo='@foo'></span>");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ConditionalAttributesAreDisabledForDataAttributesInBlock()
|
||||
{
|
||||
ParseBlockTest("<span data-foo='@foo'></span>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" data-foo='"),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("foo")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Markup("'")),
|
||||
Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</span>").Accepts(AcceptedCharactersInternal.None))));
|
||||
ParseBlockTest("<span data-foo='@foo'></span>");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInBlock()
|
||||
{
|
||||
ParseBlockTest("<span data-foo = '@foo'></span>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" data-foo = '"),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("foo")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Markup("'")),
|
||||
Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</span>").Accepts(AcceptedCharactersInternal.None))));
|
||||
ParseBlockTest("<span data-foo = '@foo'></span>");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ConditionalAttributesAreDisabledForDataAttributesInDocument()
|
||||
{
|
||||
ParseDocumentTest("<span data-foo='@foo'></span>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" data-foo='"),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("foo")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Markup("'")),
|
||||
Factory.Markup(">")),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</span>"))));
|
||||
ParseDocumentTest("<span data-foo='@foo'></span>");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInDocument()
|
||||
{
|
||||
ParseDocumentTest("<span data-foo=@foo ></span>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<span"),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" data-foo="),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("foo")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace))),
|
||||
Factory.Markup(" >")),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</span>"))));
|
||||
}
|
||||
|
||||
private class EmptyTestDocument : ITextDocument
|
||||
{
|
||||
public int Length
|
||||
{
|
||||
get
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
public SourceLocation Location
|
||||
{
|
||||
get
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
public int Position
|
||||
{
|
||||
get
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
public int Peek()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public int Read()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
ParseDocumentTest("<span data-foo=@foo ></span>");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
Markup block - Gen<None> - 17 - (0:0,0)
|
||||
Tag block - Gen<None> - 17 - (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),'@(13:0,13)> - 9 - (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<None> - 2 - (11:0,11)
|
||||
Markup span - Gen<LitAttr:@(11:0,11)> - [@] - SpanEditHandler;Accepts:None - (11:0,11) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Symbols:1
|
||||
HtmlSymbolType.Transition;[@];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (13:0,13) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
Markup block - Gen<None> - 29 - (0:0,0)
|
||||
Tag block - Gen<None> - 22 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [<span] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:2
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[span];
|
||||
Markup block - Gen<None> - 16 - (5:0,5)
|
||||
Markup span - Gen<Markup> - [ data-foo='] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[data-foo];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Expression block - Gen<Expr> - 4 - (16:0,16)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (17:0,17) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[foo];
|
||||
Markup span - Gen<Markup> - ['] - SpanEditHandler;Accepts:Any - (20:0,20) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [>] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:1
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Tag block - Gen<None> - 7 - (22:0,22)
|
||||
Markup span - Gen<Markup> - [</span>] - SpanEditHandler;Accepts:None - (22:0,22) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[span];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
Markup block - Gen<None> - 29 - (0:0,0)
|
||||
Tag block - Gen<None> - 22 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [<span] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:2
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[span];
|
||||
Markup block - Gen<None> - 16 - (5:0,5)
|
||||
Markup span - Gen<Markup> - [ data-foo='] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[data-foo];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Expression block - Gen<Expr> - 4 - (16:0,16)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (17:0,17) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[foo];
|
||||
Markup span - Gen<Markup> - ['] - SpanEditHandler;Accepts:Any - (20:0,20) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [>] - SpanEditHandler;Accepts:Any - (21:0,21) - Symbols:1
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Tag block - Gen<None> - 7 - (22:0,22)
|
||||
Markup span - Gen<Markup> - [</span>] - SpanEditHandler;Accepts:Any - (22:0,22) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[span];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
Markup block - Gen<None> - 29 - (0:0,0)
|
||||
Tag block - Gen<None> - 22 - (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:data-foo, data-foo='@(5:0,5),'@(20:0,20)> - 16 - (5:0,5)
|
||||
Markup span - Gen<None> - [ data-foo='] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[data-foo];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<DynAttr:@(16:0,16)> - 4 - (16:0,16)
|
||||
Expression block - Gen<Expr> - 4 - (16:0,16)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (17:0,17) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (20:0,20) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [>] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:1
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Tag block - Gen<None> - 7 - (22:0,22)
|
||||
Markup span - Gen<Markup> - [</span>] - SpanEditHandler;Accepts:None - (22:0,22) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[span];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
Markup block - Gen<None> - 33 - (0:0,0)
|
||||
Tag block - Gen<None> - 26 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [<span] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:2
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[span];
|
||||
Markup block - Gen<None> - 20 - (5:0,5)
|
||||
Markup span - Gen<Markup> - [ data-foo = '] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:6
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[data-foo];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Expression block - Gen<Expr> - 4 - (20:0,20)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (20:0,20) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (21:0,21) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[foo];
|
||||
Markup span - Gen<Markup> - ['] - SpanEditHandler;Accepts:Any - (24:0,24) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [>] - SpanEditHandler;Accepts:None - (25:0,25) - Symbols:1
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Tag block - Gen<None> - 7 - (26:0,26)
|
||||
Markup span - Gen<Markup> - [</span>] - SpanEditHandler;Accepts:None - (26:0,26) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[span];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
Markup block - Gen<None> - 28 - (0:0,0)
|
||||
Tag block - Gen<None> - 21 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [<span] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:2
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[span];
|
||||
Markup block - Gen<None> - 14 - (5:0,5)
|
||||
Markup span - Gen<Markup> - [ data-foo=] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[data-foo];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
Expression block - Gen<Expr> - 4 - (15:0,15)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (16:0,16) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[foo];
|
||||
Markup span - Gen<Markup> - [ >] - SpanEditHandler;Accepts:Any - (19:0,19) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Tag block - Gen<None> - 7 - (21:0,21)
|
||||
Markup span - Gen<Markup> - [</span>] - SpanEditHandler;Accepts:Any - (21:0,21) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[span];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
Markup block - Gen<None> - 24 - (0:0,0)
|
||||
Tag block - Gen<None> - 24 - (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),"@(20:0,20)> - 19 - (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)> - [Foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<LitAttr: @(12:0,12)> - [ Bar] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<LitAttr: @(16:0,16)> - [ Baz] - SpanEditHandler;Accepts:Any - (16:0,16) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[Baz];
|
||||
Markup span - Gen<None> - ["] - SpanEditHandler;Accepts:Any - (20:0,20) - Symbols:1
|
||||
HtmlSymbolType.DoubleQuote;["];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
Markup block - Gen<None> - 23 - (0:0,0)
|
||||
Tag block - Gen<None> - 23 - (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 LF= LF'@(2:0,2),'@(19:2,5)> - 18 - (2:0,2)
|
||||
Markup span - Gen<None> - [ href LF= LF'] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:8
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[href];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<DynAttr:@(15:2,1)> - 4 - (15:2,1)
|
||||
Expression block - Gen<Expr> - 4 - (15:2,1)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (15:2,1) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [Foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (16:2,2) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (19:2,5) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (20:2,6) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
Markup block - Gen<None> - 24 - (0:0,0)
|
||||
Tag block - Gen<None> - 24 - (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),'@(20:0,20)> - 19 - (2:0,2)
|
||||
Markup span - Gen<None> - [ href='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[href];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(9:0,9)> - [Foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<LitAttr: @(12:0,12)> - [ Bar] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<LitAttr: @(16:0,16)> - [ Baz] - SpanEditHandler;Accepts:Any - (16:0,16) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[Baz];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (20:0,20) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
Markup block - Gen<None> - 26 - (0:0,0)
|
||||
Tag block - Gen<None> - 26 - (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),'@(22:0,22)> - 21 - (2:0,2)
|
||||
Markup span - Gen<None> - [ href='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[href];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<DynAttr:@(9:0,9)> - 4 - (9:0,9)
|
||||
Expression block - Gen<Expr> - 4 - (9:0,9)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (9:0,9) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (10:0,10) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[foo];
|
||||
Markup span - Gen<LitAttr: @(13:0,13)> - [ bar] - SpanEditHandler;Accepts:Any - (13:0,13) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[bar];
|
||||
Markup block - Gen<DynAttr: @(17:0,17)> - 5 - (17:0,17)
|
||||
Markup span - Gen<None> - [ ] - SpanEditHandler;Accepts:Any - (17:0,17) - Symbols:1
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
Expression block - Gen<Expr> - 4 - (18:0,18)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (18:0,18) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [baz] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (19:0,19) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[baz];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (22:0,22) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (23:0,23) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
Markup block - Gen<None> - 29 - (0:0,0)
|
||||
Tag block - Gen<None> - 29 - (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,LFhref='@(2:0,2),'@(13:1,9)> - 12 - (2:0,2)
|
||||
Markup span - Gen<None> - [LFhref='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.Text;[href];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(10:1,6)> - [Foo] - SpanEditHandler;Accepts:Any - (10:1,6) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (13:1,9) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:abcd,LFabcd='@(14:1,10),'@(25:2,9)> - 12 - (14:1,10)
|
||||
Markup span - Gen<None> - [LFabcd='] - SpanEditHandler;Accepts:Any - (14:1,10) - Symbols:4
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.Text;[abcd];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(22:2,6)> - [Bar] - SpanEditHandler;Accepts:Any - (22:2,6) - Symbols:1
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (25:2,9) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (26:2,10) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
Markup block - Gen<None> - 17 - (0:0,0)
|
||||
Tag block - Gen<None> - 17 - (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,LFhref='@(2:0,2),'@(13:1,9)> - 12 - (2:0,2)
|
||||
Markup span - Gen<None> - [LFhref='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.Text;[href];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(10:1,6)> - [Foo] - SpanEditHandler;Accepts:Any - (10:1,6) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (13:1,9) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (14:1,10) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
Markup block - Gen<None> - 17 - (0:0,0)
|
||||
Tag block - Gen<None> - 17 - (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),'@(13:0,13)> - 12 - (2:0,2)
|
||||
Markup span - Gen<None> - [ href='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[href];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<DynAttr:@(9:0,9)> - 4 - (9:0,9)
|
||||
Expression block - Gen<Expr> - 4 - (9:0,9)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (9:0,9) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (10:0,10) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (13:0,13) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (14:0,14) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
Markup block - Gen<None> - 16 - (0:0,0)
|
||||
Tag block - Gen<None> - 16 - (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),'@(12:0,12)> - 11 - (2:0,2)
|
||||
Markup span - Gen<None> - [ href='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[href];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(9:0,9)> - [Foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (13:0,13) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
Markup block - Gen<None> - 24 - (0:0,0)
|
||||
Tag block - Gen<None> - 24 - (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 LF= LF'@(2:0,2),'@(20:2,4)> - 19 - (2:0,2)
|
||||
Markup span - Gen<None> - [ href LF= LF'] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:8
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[href];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(17:2,1)> - [Foo] - SpanEditHandler;Accepts:Any - (17:2,1) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (20:2,4) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (21:2,5) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
Markup block - Gen<None> - 18 - (0:0,0)
|
||||
Tag block - Gen<None> - 18 - (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:[item], [item]='@(2:0,2),'@(14:0,14)> - 13 - (2:0,2)
|
||||
Markup span - Gen<None> - [ [item]='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:6
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[item];
|
||||
HtmlSymbolType.RightBracket;[]];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(11:0,11)> - [Foo] - SpanEditHandler;Accepts:Any - (11:0,11) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
Markup block - Gen<None> - 19 - (0:0,0)
|
||||
Tag block - Gen<None> - 19 - (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:[(item,, [(item,='@(2:0,2),'@(15:0,15)> - 14 - (2:0,2)
|
||||
Markup span - Gen<None> - [ [(item,='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:5
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[(item,];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(12:0,12)> - [Foo] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (15:0,15) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
Markup block - Gen<None> - 19 - (0:0,0)
|
||||
Tag block - Gen<None> - 19 - (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:(click), (click)='@(2:0,2),'@(15:0,15)> - 14 - (2:0,2)
|
||||
Markup span - Gen<None> - [ (click)='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[(click)];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(12:0,12)> - [Foo] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (15:0,15) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
Markup block - Gen<None> - 20 - (0:0,0)
|
||||
Tag block - Gen<None> - 20 - (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:(^click), (^click)='@(2:0,2),'@(16:0,16)> - 15 - (2:0,2)
|
||||
Markup span - Gen<None> - [ (^click)='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[(^click)];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(13:0,13)> - [Foo] - SpanEditHandler;Accepts:Any - (13:0,13) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (16:0,16) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (17:0,17) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
Markup block - Gen<None> - 22 - (0:0,0)
|
||||
Tag block - Gen<None> - 22 - (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:*something, *something='@(2:0,2),'@(18:0,18)> - 17 - (2:0,2)
|
||||
Markup span - Gen<None> - [ *something='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[*something];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(15:0,15)> - [Foo] - SpanEditHandler;Accepts:Any - (15:0,15) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (18:0,18) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (19:0,19) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
Markup block - Gen<None> - 18 - (0:0,0)
|
||||
Tag block - Gen<None> - 18 - (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:#local, #local='@(2:0,2),'@(14:0,14)> - 13 - (2:0,2)
|
||||
Markup span - Gen<None> - [ #local='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[#local];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(11:0,11)> - [Foo] - SpanEditHandler;Accepts:Any - (11:0,11) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
Markup block - Gen<None> - 35 - (0:0,0)
|
||||
Tag block - Gen<None> - 35 - (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:[item], [item]LF='@(2:0,2),'@(16:1,5)> - 15 - (2:0,2)
|
||||
Markup span - Gen<None> - [ [item]LF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:7
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[item];
|
||||
HtmlSymbolType.RightBracket;[]];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(13:1,2)> - [Foo] - SpanEditHandler;Accepts:Any - (13:1,2) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (16:1,5) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:[item], [item]=LF'@(17:1,6),'@(31:2,4)> - 15 - (17:1,6)
|
||||
Markup span - Gen<None> - [ [item]=LF'] - SpanEditHandler;Accepts:Any - (17:1,6) - Symbols:7
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[item];
|
||||
HtmlSymbolType.RightBracket;[]];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(28:2,1)> - [Bar] - SpanEditHandler;Accepts:Any - (28:2,1) - Symbols:1
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (31:2,4) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (32:2,5) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
Markup block - Gen<None> - 37 - (0:0,0)
|
||||
Tag block - Gen<None> - 37 - (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:[(item,, [(item,LF='@(2:0,2),'@(17:1,5)> - 16 - (2:0,2)
|
||||
Markup span - Gen<None> - [ [(item,LF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:6
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[(item,];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(14:1,2)> - [Foo] - SpanEditHandler;Accepts:Any - (14:1,2) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (17:1,5) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:[(item,, [(item,=LF'@(18:1,6),'@(33:2,4)> - 16 - (18:1,6)
|
||||
Markup span - Gen<None> - [ [(item,=LF'] - SpanEditHandler;Accepts:Any - (18:1,6) - Symbols:6
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[(item,];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(30:2,1)> - [Bar] - SpanEditHandler;Accepts:Any - (30:2,1) - Symbols:1
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (33:2,4) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (34:2,5) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
Markup block - Gen<None> - 37 - (0:0,0)
|
||||
Tag block - Gen<None> - 37 - (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:(click), (click)LF='@(2:0,2),'@(17:1,5)> - 16 - (2:0,2)
|
||||
Markup span - Gen<None> - [ (click)LF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:5
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[(click)];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(14:1,2)> - [Foo] - SpanEditHandler;Accepts:Any - (14:1,2) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (17:1,5) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:(click), (click)=LF'@(18:1,6),'@(33:2,4)> - 16 - (18:1,6)
|
||||
Markup span - Gen<None> - [ (click)=LF'] - SpanEditHandler;Accepts:Any - (18:1,6) - Symbols:5
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[(click)];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(30:2,1)> - [Bar] - SpanEditHandler;Accepts:Any - (30:2,1) - Symbols:1
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (33:2,4) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (34:2,5) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
Markup block - Gen<None> - 39 - (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:(^click), (^click)LF='@(2:0,2),'@(18:1,5)> - 17 - (2:0,2)
|
||||
Markup span - Gen<None> - [ (^click)LF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:5
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[(^click)];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(15:1,2)> - [Foo] - SpanEditHandler;Accepts:Any - (15:1,2) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (18:1,5) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:(^click), (^click)=LF'@(19:1,6),'@(35:2,4)> - 17 - (19:1,6)
|
||||
Markup span - Gen<None> - [ (^click)=LF'] - SpanEditHandler;Accepts:Any - (19:1,6) - Symbols:5
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[(^click)];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(32:2,1)> - [Bar] - SpanEditHandler;Accepts:Any - (32:2,1) - Symbols:1
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (35:2,4) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (36:2,5) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
Markup block - Gen<None> - 43 - (0:0,0)
|
||||
Tag block - Gen<None> - 43 - (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:*something, *somethingLF='@(2:0,2),'@(20:1,5)> - 19 - (2:0,2)
|
||||
Markup span - Gen<None> - [ *somethingLF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:5
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[*something];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(17:1,2)> - [Foo] - SpanEditHandler;Accepts:Any - (17:1,2) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (20:1,5) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:*something, *something=LF'@(21:1,6),'@(39:2,4)> - 19 - (21:1,6)
|
||||
Markup span - Gen<None> - [ *something=LF'] - SpanEditHandler;Accepts:Any - (21:1,6) - Symbols:5
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[*something];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(36:2,1)> - [Bar] - SpanEditHandler;Accepts:Any - (36:2,1) - Symbols:1
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (39:2,4) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (40:2,5) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
Markup block - Gen<None> - 35 - (0:0,0)
|
||||
Tag block - Gen<None> - 35 - (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:#local, #localLF='@(2:0,2),'@(16:1,5)> - 15 - (2:0,2)
|
||||
Markup span - Gen<None> - [ #localLF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:5
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[#local];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(13:1,2)> - [Foo] - SpanEditHandler;Accepts:Any - (13:1,2) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (16:1,5) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:#local, #local=LF'@(17:1,6),'@(31:2,4)> - 15 - (17:1,6)
|
||||
Markup span - Gen<None> - [ #local=LF'] - SpanEditHandler;Accepts:Any - (17:1,6) - Symbols:5
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[#local];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(28:2,1)> - [Bar] - SpanEditHandler;Accepts:Any - (28:2,1) - Symbols:1
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (31:2,4) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (32:2,5) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
Markup block - Gen<None> - 37 - (0:0,0)
|
||||
Tag block - Gen<None> - 37 - (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:[item], LF [item]='@(2:0,2),'@(18:1,13)> - 17 - (2:0,2)
|
||||
Markup span - Gen<None> - [ LF [item]='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:8
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[item];
|
||||
HtmlSymbolType.RightBracket;[]];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(15:1,10)> - [Foo] - SpanEditHandler;Accepts:Any - (15:1,10) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (18:1,13) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:[item], LF[item]='@(19:1,14),'@(33:2,11)> - 15 - (19:1,14)
|
||||
Markup span - Gen<None> - [ LF[item]='] - SpanEditHandler;Accepts:Any - (19:1,14) - Symbols:7
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[item];
|
||||
HtmlSymbolType.RightBracket;[]];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(30:2,8)> - [Bar] - SpanEditHandler;Accepts:Any - (30:2,8) - Symbols:1
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (33:2,11) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (34:2,12) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
Markup block - Gen<None> - 39 - (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:[(item,, LF [(item,='@(2:0,2),'@(19:1,14)> - 18 - (2:0,2)
|
||||
Markup span - Gen<None> - [ LF [(item,='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:7
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[(item,];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(16:1,11)> - [Foo] - SpanEditHandler;Accepts:Any - (16:1,11) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (19:1,14) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:[(item,, LF[(item,='@(20:1,15),'@(35:2,12)> - 16 - (20:1,15)
|
||||
Markup span - Gen<None> - [ LF[(item,='] - SpanEditHandler;Accepts:Any - (20:1,15) - Symbols:6
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.LeftBracket;[[];
|
||||
HtmlSymbolType.Text;[(item,];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(32:2,9)> - [Bar] - SpanEditHandler;Accepts:Any - (32:2,9) - Symbols:1
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (35:2,12) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (36:2,13) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
Markup block - Gen<None> - 39 - (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:(click), LF (click)='@(2:0,2),'@(19:1,14)> - 18 - (2:0,2)
|
||||
Markup span - Gen<None> - [ LF (click)='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:6
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[(click)];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(16:1,11)> - [Foo] - SpanEditHandler;Accepts:Any - (16:1,11) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (19:1,14) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:(click), LF(click)='@(20:1,15),'@(35:2,12)> - 16 - (20:1,15)
|
||||
Markup span - Gen<None> - [ LF(click)='] - SpanEditHandler;Accepts:Any - (20:1,15) - Symbols:5
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.Text;[(click)];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(32:2,9)> - [Bar] - SpanEditHandler;Accepts:Any - (32:2,9) - Symbols:1
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (35:2,12) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (36:2,13) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
Markup block - Gen<None> - 41 - (0:0,0)
|
||||
Tag block - Gen<None> - 41 - (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:(^click), LF (^click)='@(2:0,2),'@(20:1,15)> - 19 - (2:0,2)
|
||||
Markup span - Gen<None> - [ LF (^click)='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:6
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[(^click)];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(17:1,12)> - [Foo] - SpanEditHandler;Accepts:Any - (17:1,12) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (20:1,15) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:(^click), LF(^click)='@(21:1,16),'@(37:2,13)> - 17 - (21:1,16)
|
||||
Markup span - Gen<None> - [ LF(^click)='] - SpanEditHandler;Accepts:Any - (21:1,16) - Symbols:5
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.Text;[(^click)];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(34:2,10)> - [Bar] - SpanEditHandler;Accepts:Any - (34:2,10) - Symbols:1
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (37:2,13) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (38:2,14) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
Markup block - Gen<None> - 45 - (0:0,0)
|
||||
Tag block - Gen<None> - 45 - (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:*something, LF *something='@(2:0,2),'@(22:1,17)> - 21 - (2:0,2)
|
||||
Markup span - Gen<None> - [ LF *something='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:6
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[*something];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(19:1,14)> - [Foo] - SpanEditHandler;Accepts:Any - (19:1,14) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (22:1,17) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:*something, LF*something='@(23:1,18),'@(41:2,15)> - 19 - (23:1,18)
|
||||
Markup span - Gen<None> - [ LF*something='] - SpanEditHandler;Accepts:Any - (23:1,18) - Symbols:5
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.Text;[*something];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(38:2,12)> - [Bar] - SpanEditHandler;Accepts:Any - (38:2,12) - Symbols:1
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (41:2,15) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (42:2,16) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
Markup block - Gen<None> - 37 - (0:0,0)
|
||||
Tag block - Gen<None> - 37 - (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:#local, LF #local='@(2:0,2),'@(18:1,13)> - 17 - (2:0,2)
|
||||
Markup span - Gen<None> - [ LF #local='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:6
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[#local];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(15:1,10)> - [Foo] - SpanEditHandler;Accepts:Any - (15:1,10) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (18:1,13) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<Attr:#local, LF#local='@(19:1,14),'@(33:2,11)> - 15 - (19:1,14)
|
||||
Markup span - Gen<None> - [ LF#local='] - SpanEditHandler;Accepts:Any - (19:1,14) - Symbols:5
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.Text;[#local];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(30:2,8)> - [Bar] - SpanEditHandler;Accepts:Any - (30:2,8) - Symbols:1
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (33:2,11) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (34:2,12) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
Markup block - Gen<None> - 20 - (0:0,0)
|
||||
Tag block - Gen<None> - 20 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [<input] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:2
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[input];
|
||||
Markup block - Gen<Attr:value, value=@(6:0,6),@(17:0,17)> - 11 - (6:0,6)
|
||||
Markup span - Gen<None> - [ value=] - SpanEditHandler;Accepts:Any - (6:0,6) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[value];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
Markup block - Gen<DynAttr:@(13:0,13)> - 4 - (13:0,13)
|
||||
Expression block - Gen<Expr> - 4 - (13:0,13)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (14:0,14) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[foo];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (17:0,17) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
Markup block - Gen<None> - 20 - (0:0,0)
|
||||
Tag block - Gen<None> - 20 - (0:0,0)
|
||||
Markup span - Gen<Markup> - [<input] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:2
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[input];
|
||||
Markup block - Gen<Attr:value, value=@(6:0,6),@(17:0,17)> - 11 - (6:0,6)
|
||||
Markup span - Gen<None> - [ value=] - SpanEditHandler;Accepts:Any - (6:0,6) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[value];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
Markup block - Gen<DynAttr:@(13:0,13)> - 4 - (13:0,13)
|
||||
Expression block - Gen<Expr> - 4 - (13:0,13)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (14:0,14) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[foo];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:Any - (17:0,17) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
Markup block - Gen<None> - 22 - (0:0,0)
|
||||
Tag block - Gen<None> - 22 - (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),@(11:0,11)> - 9 - (2:0,2)
|
||||
Markup span - Gen<None> - [ href=] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[href];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
Markup span - Gen<LitAttr:@(8:0,8)> - [Foo] - SpanEditHandler;Accepts:Any - (8:0,8) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup block - Gen<None> - 4 - (11:0,11)
|
||||
Markup span - Gen<Markup> - [ Bar] - SpanEditHandler;Accepts:Any - (11:0,11) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup block - Gen<None> - 4 - (15:0,15)
|
||||
Markup span - Gen<Markup> - [ Baz] - SpanEditHandler;Accepts:Any - (15:0,15) - Symbols:2
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[Baz];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (19:0,19) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
Markup block - Gen<None> - 27 - (0:0,0)
|
||||
Tag block - Gen<None> - 27 - (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),'@(23:0,23)> - 22 - (2:0,2)
|
||||
Markup span - Gen<None> - [ href='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[href];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup block - Gen<DynAttr:@(9:0,9)> - 4 - (9:0,9)
|
||||
Expression block - Gen<Expr> - 4 - (9:0,9)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (9:0,9) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (10:0,10) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[foo];
|
||||
Markup span - Gen<LitAttr: @(13:0,13)> - [ ~/Foo/Bar] - SpanEditHandler;Accepts:Any - (13:0,13) - Symbols:6
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.Text;[~];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[Bar];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (23:0,23) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (24:0,24) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
Markup block - Gen<None> - 19 - (0:0,0)
|
||||
Tag block - Gen<None> - 19 - (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, LFhref='@(2:0,2),'@(15:1,9)> - 14 - (2:0,2)
|
||||
Markup span - Gen<None> - [ LFhref='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:5
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
HtmlSymbolType.Text;[href];
|
||||
HtmlSymbolType.Equals;[=];
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<LitAttr:@(12:1,6)> - [Foo] - SpanEditHandler;Accepts:Any - (12:1,6) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Markup span - Gen<None> - ['] - SpanEditHandler;Accepts:Any - (15:1,9) - Symbols:1
|
||||
HtmlSymbolType.SingleQuote;['];
|
||||
Markup span - Gen<Markup> - [ />] - SpanEditHandler;Accepts:None - (16:1,10) - Symbols:3
|
||||
HtmlSymbolType.WhiteSpace;[ ];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -95,6 +95,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
}
|
||||
|
||||
internal void AssertSyntaxTreeNodeMatchesBaseline(RazorSyntaxTree syntaxTree)
|
||||
{
|
||||
AssertSyntaxTreeNodeMatchesBaseline(syntaxTree.Root, syntaxTree.Diagnostics.ToArray());
|
||||
}
|
||||
|
||||
internal void AssertSyntaxTreeNodeMatchesBaseline(Block root, params RazorDiagnostic[] diagnostics)
|
||||
{
|
||||
if (FileName == null)
|
||||
{
|
||||
|
|
@ -105,8 +110,6 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
var baselineFileName = Path.ChangeExtension(FileName, ".syntaxtree.txt");
|
||||
var baselineDiagnosticsFileName = Path.ChangeExtension(FileName, ".diagnostics.txt");
|
||||
|
||||
var root = syntaxTree.Root;
|
||||
var diagnostics = syntaxTree.Diagnostics;
|
||||
if (GenerateBaselines)
|
||||
{
|
||||
var baselineFullPath = Path.Combine(TestProjectRoot, baselineFileName);
|
||||
|
|
@ -159,6 +162,18 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
return Regex.Replace(content, "(?<!\r)\n", "\r\n", RegexOptions.None, TimeSpan.FromSeconds(10));
|
||||
}
|
||||
|
||||
internal virtual void BaselineTest(RazorSyntaxTree syntaxTree)
|
||||
{
|
||||
SyntaxTreeVerifier.Verify(syntaxTree);
|
||||
AssertSyntaxTreeNodeMatchesBaseline(syntaxTree);
|
||||
}
|
||||
|
||||
internal virtual void BaselineTest(Block root)
|
||||
{
|
||||
SyntaxTreeVerifier.Verify(root);
|
||||
AssertSyntaxTreeNodeMatchesBaseline(root);
|
||||
}
|
||||
|
||||
internal RazorSyntaxTree ParseBlock(string document, bool designTime)
|
||||
{
|
||||
return ParseBlock(RazorLanguageVersion.Latest, document, designTime);
|
||||
|
|
@ -307,6 +322,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest(document, null, designTime, expectedErrors);
|
||||
}
|
||||
|
||||
internal virtual void ParseBlockTest(RazorLanguageVersion version, string document)
|
||||
{
|
||||
ParseBlockTest(version, document, expectedRoot: null);
|
||||
}
|
||||
|
||||
internal virtual void ParseBlockTest(RazorLanguageVersion version, string document, Block expectedRoot)
|
||||
{
|
||||
ParseBlockTest(version, document, expectedRoot, false, null);
|
||||
|
|
@ -358,8 +378,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
if (UseBaselineTests && !IsTheory)
|
||||
{
|
||||
SyntaxTreeVerifier.Verify(result);
|
||||
AssertSyntaxTreeNodeMatchesBaseline(result);
|
||||
BaselineTest(result);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -416,7 +435,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
if (UseBaselineTests && !IsTheory)
|
||||
{
|
||||
AssertSyntaxTreeNodeMatchesBaseline(result);
|
||||
BaselineTest(result);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -487,8 +506,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
if (UseBaselineTests && !IsTheory)
|
||||
{
|
||||
SyntaxTreeVerifier.Verify(result);
|
||||
AssertSyntaxTreeNodeMatchesBaseline(result);
|
||||
BaselineTest(result);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue