From 00c13afa7f7637466e455bdc0e4d78af7434c82c Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Tue, 21 Aug 2018 17:33:07 -0700 Subject: [PATCH 01/23] Razor parser rewrite - Rewrite CSharp parser - Basic rewrite of HTML parser - Define and generate syntax nodes and boilerplate - Rewrite ClassifiedSpan generation logic - Update parser test infrastructure --- .../ClassifiedSpanVisitor.cs | 279 ++ .../DefaultDirectiveSyntaxTreePass.cs | 48 +- .../DefaultRazorSyntaxTree.cs | 11 +- .../Legacy/CSharpCodeParser.cs | 77 +- .../Legacy/CSharpLanguageCharacteristics.cs | 2 +- .../Legacy/CSharpParser.cs | 2123 +++++++++++++ .../Legacy/HtmlLanguageCharacteristics.cs | 2 +- .../Legacy/HtmlMarkupParser.cs | 49 +- .../Legacy/HtmlParser.cs | 1741 +++++++++++ .../Legacy/KnownTokenType.cs | 2 +- .../Legacy/LanguageCharacteristics.cs | 4 +- .../Legacy/ParserBase.cs | 4 +- .../Legacy/ParserContext.cs | 4 + .../Legacy/RazorParser.cs | 2 +- .../Legacy/RazorSyntaxTreeExtensions.cs | 14 + .../Legacy/SpanContext.cs | 46 + .../Legacy/SyntaxConstants.cs | 1 + .../Legacy/TokenizerBackedParser.cs | 411 ++- .../LegacyRazorSyntaxTree.cs | 31 + .../RazorSyntaxTree.cs | 32 + .../Syntax.xml.Internal.Generated.cs | 2651 ++++++++++++++--- .../Generated/Syntax.xml.Main.Generated.cs | 676 ++++- .../Generated/Syntax.xml.Syntax.Generated.cs | 1560 +++++++++- .../Syntax/GreenNode.cs | 20 +- .../Syntax/GreenNodeExtensions.cs | 4 +- .../Syntax/InternalSyntax/SyntaxFactory.cs | 5 + .../Syntax/InternalSyntax/SyntaxListOfT.cs | 102 +- .../Syntax/InternalSyntax/SyntaxListPool.cs | 100 + .../Syntax/InternalSyntax/SyntaxRewriter.cs | 56 + .../Syntax/InternalSyntax/SyntaxToken.cs | 57 +- .../Syntax/Syntax.xml | 104 +- .../Syntax/SyntaxAnnotation.cs | 4 +- .../Syntax/SyntaxKind.cs | 21 +- .../Syntax/SyntaxNode.cs | 4 + .../Syntax/SyntaxNodeExtensions.cs | 75 +- .../Syntax/SyntaxRewriter.cs | 148 + .../Syntax/SyntaxToken.cs | 17 +- .../Legacy/CodeParserTestBase.cs | 2 +- .../Legacy/HtmlMarkupParserTests.cs | 2 +- .../Legacy/TokenizerLookaheadTest.cs | 2 +- .../ClassifiedSpanSerializer.cs | 31 +- .../ClassifiedSpan/ClassifiedSpanVerifier.cs | 32 +- .../ClassifiedSpan/ClassifiedSpanWriter.cs | 66 +- .../Language/Legacy/ParserTestBase.cs | 18 +- .../Legacy/SyntaxNodeParserTestBase.cs | 164 + .../Language/Legacy/SyntaxNodeSerializer.cs | 61 + .../Language/Legacy/SyntaxNodeVerifier.cs | 296 ++ .../Language/Legacy/SyntaxNodeWalker.cs | 37 + .../Language/Legacy/SyntaxNodeWriter.cs | 126 + .../TagHelperSpan/TagHelperSpanSerializer.cs | 5 + .../Language/SyntaxTreeVerifier.cs | 59 +- 51 files changed, 10588 insertions(+), 800 deletions(-) create mode 100644 src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlParser.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Legacy/SpanContext.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/LegacyRazorSyntaxTree.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Syntax/InternalSyntax/SyntaxListPool.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Syntax/InternalSyntax/SyntaxRewriter.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxRewriter.cs create mode 100644 test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeParserTestBase.cs create mode 100644 test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeSerializer.cs create mode 100644 test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeVerifier.cs create mode 100644 test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeWalker.cs create mode 100644 test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeWriter.cs diff --git a/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs b/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs new file mode 100644 index 000000000..463eae1ab --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs @@ -0,0 +1,279 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using Microsoft.AspNetCore.Razor.Language.Legacy; +using Microsoft.AspNetCore.Razor.Language.Syntax; + +namespace Microsoft.AspNetCore.Razor.Language +{ + internal class ClassifiedSpanVisitor : SyntaxRewriter + { + private RazorSourceDocument _source; + private List _spans; + private BlockKindInternal _currentBlockKind; + private SyntaxNode _currentBlock; + + public ClassifiedSpanVisitor(RazorSourceDocument source) + { + _source = source; + _spans = new List(); + _currentBlockKind = BlockKindInternal.Markup; + } + + public IReadOnlyList ClassifiedSpans => _spans; + + public override SyntaxNode VisitRazorCommentBlock(RazorCommentBlockSyntax node) + { + return WriteBlock(node, BlockKindInternal.Comment, base.VisitRazorCommentBlock); + } + + public override SyntaxNode VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) + { + if (node.Parent is CSharpStatementBodySyntax || + node.Parent is CSharpExpressionBodySyntax || + node.Parent is CSharpImplicitExpressionBodySyntax || + node.Parent is CSharpDirectiveBodySyntax) + { + return base.VisitCSharpCodeBlock(node); + } + + return WriteBlock(node, BlockKindInternal.Statement, base.VisitCSharpCodeBlock); + } + + public override SyntaxNode VisitCSharpStatement(CSharpStatement node) + { + return WriteBlock(node, BlockKindInternal.Statement, base.VisitCSharpStatement); + } + + public override SyntaxNode VisitCSharpExpression(CSharpExpression node) + { + return WriteBlock(node, BlockKindInternal.Expression, base.VisitCSharpExpression); + } + + public override SyntaxNode VisitCSharpImplicitExpression(CSharpImplicitExpression node) + { + return WriteBlock(node, BlockKindInternal.Expression, base.VisitCSharpImplicitExpression); + } + + public override SyntaxNode VisitCSharpDirective(CSharpDirectiveSyntax node) + { + return WriteBlock(node, BlockKindInternal.Directive, base.VisitCSharpDirective); + } + + public override SyntaxNode VisitCSharpTemplateBlock(CSharpTemplateBlockSyntax node) + { + return WriteBlock(node, BlockKindInternal.Template, base.VisitCSharpTemplateBlock); + } + + public override SyntaxNode VisitHtmlMarkupBlock(HtmlMarkupBlockSyntax node) + { + return WriteBlock(node, BlockKindInternal.Markup, base.VisitHtmlMarkupBlock); + } + + public override SyntaxNode VisitHtmlTagBlock(HtmlTagBlockSyntax node) + { + return WriteBlock(node, BlockKindInternal.Tag, base.VisitHtmlTagBlock); + } + + public override SyntaxNode VisitHtmlAttributeBlock(HtmlAttributeBlockSyntax node) + { + return WriteBlock(node, BlockKindInternal.Markup, n => + { + var equalsSyntax = SyntaxFactory.HtmlTextLiteral(new SyntaxList(node.EqualsToken)); + var mergedAttributePrefix = MergeTextLiteralSpans(node.NamePrefix, node.Name, node.NameSuffix, equalsSyntax, node.ValuePrefix); + Visit(mergedAttributePrefix); + Visit(node.Value); + Visit(node.ValueSuffix); + + return n; + }); + } + + public override SyntaxNode VisitHtmlMinimizedAttributeBlock(HtmlMinimizedAttributeBlockSyntax node) + { + return WriteBlock(node, BlockKindInternal.Markup, n => + { + var mergedAttributePrefix = MergeTextLiteralSpans(node.NamePrefix, node.Name); + Visit(mergedAttributePrefix); + + return n; + }); + } + + public override SyntaxNode VisitHtmlCommentBlock(HtmlCommentBlockSyntax node) + { + return WriteBlock(node, BlockKindInternal.HtmlComment, base.VisitHtmlCommentBlock); + } + + public override SyntaxNode VisitHtmlDynamicAttributeValue(HtmlDynamicAttributeValueSyntax node) + { + return WriteBlock(node, BlockKindInternal.Markup, base.VisitHtmlDynamicAttributeValue); + } + + public override SyntaxNode VisitRazorMetaCode(RazorMetaCodeSyntax node) + { + WriteSpan(node, SpanKindInternal.MetaCode); + return base.VisitRazorMetaCode(node); + } + + public override SyntaxNode VisitCSharpTransition(CSharpTransitionSyntax node) + { + WriteSpan(node, SpanKindInternal.Transition); + return base.VisitCSharpTransition(node); + } + + public override SyntaxNode VisitHtmlTransition(HtmlTransitionSyntax node) + { + WriteSpan(node, SpanKindInternal.Transition); + return base.VisitHtmlTransition(node); + } + + public override SyntaxNode VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) + { + WriteSpan(node, SpanKindInternal.Code); + return base.VisitCSharpStatementLiteral(node); + } + + public override SyntaxNode VisitCSharpExpressionLiteral(CSharpExpressionLiteralSyntax node) + { + WriteSpan(node, SpanKindInternal.Code); + return base.VisitCSharpExpressionLiteral(node); + } + + public override SyntaxNode VisitCSharpHiddenLiteral(CSharpHiddenLiteralSyntax node) + { + WriteSpan(node, SpanKindInternal.Code); + return base.VisitCSharpHiddenLiteral(node); + } + + public override SyntaxNode VisitCSharpNoneLiteral(CSharpNoneLiteralSyntax node) + { + WriteSpan(node, SpanKindInternal.None); + return base.VisitCSharpNoneLiteral(node); + } + + public override SyntaxNode VisitHtmlLiteralAttributeValue(HtmlLiteralAttributeValueSyntax node) + { + WriteSpan(node, SpanKindInternal.Markup); + return base.VisitHtmlLiteralAttributeValue(node); + } + + public override SyntaxNode VisitHtmlTextLiteral(HtmlTextLiteralSyntax node) + { + if (node.Parent is HtmlLiteralAttributeValueSyntax) + { + return base.VisitHtmlTextLiteral(node); + } + + WriteSpan(node, SpanKindInternal.Markup); + return base.VisitHtmlTextLiteral(node); + } + + private SyntaxNode WriteBlock(TNode node, BlockKindInternal kind, Func handler) where TNode : SyntaxNode + { + var previousBlock = _currentBlock; + var previousKind = _currentBlockKind; + + _currentBlock = node; + _currentBlockKind = kind; + + var result = handler(node); + + _currentBlock = previousBlock; + _currentBlockKind = previousKind; + + return result; + } + + private void WriteSpan(SyntaxNode node, SpanKindInternal kind) + { + if (node.IsMissing) + { + return; + } + + var spanSource = GetSourceSpanForNode(node); + var blockSource = GetSourceSpanForNode(_currentBlock); + var acceptedCharacters = AcceptedCharactersInternal.Any; + var annotation = node.GetAnnotationValue(SyntaxConstants.SpanContextKind); + if (annotation is SpanContext context) + { + acceptedCharacters = context.EditHandler.AcceptedCharacters; + } + + var span = new ClassifiedSpanInternal(spanSource, blockSource, kind, _currentBlockKind, acceptedCharacters); + _spans.Add(span); + } + + private HtmlTextLiteralSyntax MergeTextLiteralSpans(params HtmlTextLiteralSyntax[] literalSyntaxes) + { + if (literalSyntaxes == null || literalSyntaxes.Length == 0) + { + return null; + } + + SyntaxNode parent = null; + var position = 0; + var seenFirstLiteral = false; + var builder = Syntax.InternalSyntax.SyntaxListBuilder.Create(); + + foreach (var syntax in literalSyntaxes) + { + if (syntax == null) + { + continue; + } + else if (!seenFirstLiteral) + { + // Set the parent and position of the merged literal to the value of the first non-null literal. + parent = syntax.Parent; + position = syntax.Position; + seenFirstLiteral = true; + } + + foreach (var token in syntax.TextTokens) + { + builder.Add(token.Green); + } + } + + var mergedLiteralSyntax = Syntax.InternalSyntax.SyntaxFactory.HtmlTextLiteral( + builder.ToList()); + + return (HtmlTextLiteralSyntax)mergedLiteralSyntax.CreateRed(parent, position); + } + + private SourceSpan GetSourceSpanForNode(SyntaxNode node) + { + try + { + if (_source.Length == 0) + { + // Just a marker symbol + return new SourceSpan(_source.FilePath, 0, 0, 0, node.FullWidth); + } + if (node.Position >= _source.Length) + { + // E.g. Marker symbol at the end of the document + var lastLocation = _source.Lines.GetLocation(_source.Length - 1); + return new SourceSpan( + lastLocation.FilePath, + lastLocation.AbsoluteIndex + 1, + lastLocation.LineIndex, + lastLocation.CharacterIndex + 1, + node.FullWidth); + } + + return node.GetSourceSpan(_source); + } + catch (IndexOutOfRangeException) + { + Debug.Assert(false, "Node position should stay within document length."); + return new SourceSpan(_source.FilePath, node.Position, 0, 0, node.FullWidth); + } + } + } +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/DefaultDirectiveSyntaxTreePass.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultDirectiveSyntaxTreePass.cs index 54c733e0f..17b6b9b9c 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DefaultDirectiveSyntaxTreePass.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultDirectiveSyntaxTreePass.cs @@ -5,6 +5,7 @@ using System.Linq; using Microsoft.AspNetCore.Razor.Language.Extensions; using Microsoft.AspNetCore.Razor.Language.Legacy; +using Microsoft.AspNetCore.Razor.Language.Syntax; namespace Microsoft.AspNetCore.Razor.Language { @@ -24,13 +25,52 @@ public RazorSyntaxTree Execute(RazorCodeDocument codeDocument, RazorSyntaxTree s throw new ArgumentNullException(nameof(syntaxTree)); } - var sectionVerifier = new NestedSectionVerifier(); - sectionVerifier.Verify(syntaxTree); + if (syntaxTree is LegacyRazorSyntaxTree) + { + var legacySectionVerifier = new LegacyNestedSectionVerifier(); + legacySectionVerifier.Verify(syntaxTree); + return syntaxTree; + } + + var sectionVerifier = new NestedSectionVerifier(syntaxTree); + return sectionVerifier.Verify(); + } + + private class NestedSectionVerifier : SyntaxRewriter + { + private int _nestedLevel; + private RazorSyntaxTree _syntaxTree; + + public NestedSectionVerifier(RazorSyntaxTree syntaxTree) + { + _syntaxTree = syntaxTree; + } + + public RazorSyntaxTree Verify() + { + var root = Visit(_syntaxTree.NewRoot); + var rewrittenTree = new DefaultRazorSyntaxTree(root, _syntaxTree.Source, _syntaxTree.Diagnostics, _syntaxTree.Options); + return rewrittenTree; + } - return syntaxTree; + public override SyntaxNode VisitCSharpDirective(CSharpDirectiveSyntax node) + { + if (_nestedLevel > 0) + { + var directiveStart = node.Transition.GetSourceLocation(_syntaxTree.Source); + var errorLength = /* @ */ 1 + SectionDirective.Directive.Directive.Length; + var error = RazorDiagnosticFactory.CreateParsing_SectionsCannotBeNested(new SourceSpan(directiveStart, errorLength)); + node = node.AppendDiagnostic(error); + } + _nestedLevel++; + var result = base.VisitCSharpDirective(node); + _nestedLevel--; + + return result; + } } - private class NestedSectionVerifier : ParserVisitor + private class LegacyNestedSectionVerifier : ParserVisitor { private int _nestedLevel; diff --git a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorSyntaxTree.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorSyntaxTree.cs index 4b6d43fe0..4683579ca 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorSyntaxTree.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorSyntaxTree.cs @@ -1,20 +1,22 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.Collections.Generic; using Microsoft.AspNetCore.Razor.Language.Legacy; +using Microsoft.AspNetCore.Razor.Language.Syntax; namespace Microsoft.AspNetCore.Razor.Language { internal class DefaultRazorSyntaxTree : RazorSyntaxTree { public DefaultRazorSyntaxTree( - Block root, + SyntaxNode root, RazorSourceDocument source, IReadOnlyList diagnostics, RazorParserOptions options) { - Root = root; + NewRoot = root; Source = source; Diagnostics = diagnostics; Options = options; @@ -24,8 +26,11 @@ public DefaultRazorSyntaxTree( public override RazorParserOptions Options { get; } - internal override Block Root { get; } + internal override SyntaxNode NewRoot { get; } public override RazorSourceDocument Source { get; } + + // Temporary + internal override Block Root => throw new NotImplementedException(); } } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpCodeParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpCodeParser.cs index 126970945..23fe7b0fe 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpCodeParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpCodeParser.cs @@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { - internal class CSharpCodeParser : TokenizerBackedParser + internal partial class CSharpCodeParser : TokenizerBackedParser { private static HashSet InvalidNonWhitespaceNameCharacters = new HashSet(new[] { @@ -95,6 +95,10 @@ public CSharpCodeParser(IEnumerable directives, ParserConte SetUpKeywords(); SetupDirectives(directives); SetUpExpressions(); + + SetupKeywordParsers(); + SetupExpressionParsers(); + SetupDirectiveParsers(directives); } public HtmlMarkupParser HtmlParser { get; set; } @@ -193,7 +197,7 @@ protected static Func IsSpacingToken(bool includeNewLines, bo (includeComments && token.Kind == SyntaxKind.CSharpComment); } - public override void ParseBlock() + public override void ParseBlock1() { using (PushSpanConfig(DefaultSpanConfig)) { @@ -268,8 +272,8 @@ private void AtTransition(SyntaxToken current) private void AfterTransition() { - using (PushSpanConfig(DefaultSpanConfig)) - { + //using (PushSpanConfig(DefaultSpanConfig)) + //{ EnsureCurrent(); try { @@ -367,7 +371,7 @@ private void AfterTransition() // Always put current character back in the buffer for the next parser. PutCurrentBack(); } - } + //} } private void VerbatimBlock() @@ -553,17 +557,17 @@ private bool MethodCallOrArrayIndex(AcceptedCharactersInternal acceptedCharacter return false; } - protected void CompleteBlock() + protected void CompleteBlock1() { - CompleteBlock(insertMarkerIfNecessary: true); + CompleteBlock1(insertMarkerIfNecessary: true); } - protected void CompleteBlock(bool insertMarkerIfNecessary) + protected void CompleteBlock1(bool insertMarkerIfNecessary) { - CompleteBlock(insertMarkerIfNecessary, captureWhitespaceToEndOfLine: insertMarkerIfNecessary); + CompleteBlock1(insertMarkerIfNecessary, captureWhitespaceToEndOfLine: insertMarkerIfNecessary); } - protected void CompleteBlock(bool insertMarkerIfNecessary, bool captureWhitespaceToEndOfLine) + protected void CompleteBlock1(bool insertMarkerIfNecessary, bool captureWhitespaceToEndOfLine) { if (insertMarkerIfNecessary && Context.Builder.LastAcceptedCharacters != AcceptedCharactersInternal.Any) { @@ -580,7 +584,7 @@ protected void CompleteBlock(bool insertMarkerIfNecessary, bool captureWhitespac !Context.DesignTimeMode && !IsNested) { - CaptureWhitespaceAtEndOfCodeOnlyLine(); + CaptureWhitespaceAtEndOfCodeOnlyLine1(); } else { @@ -588,7 +592,7 @@ protected void CompleteBlock(bool insertMarkerIfNecessary, bool captureWhitespac } } - private void CaptureWhitespaceAtEndOfCodeOnlyLine() + private void CaptureWhitespaceAtEndOfCodeOnlyLine1() { var whitespace = ReadWhile(token => token.Kind == SyntaxKind.Whitespace); if (At(SyntaxKind.NewLine)) @@ -652,7 +656,7 @@ private void ExplicitExpression() } Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; Span.ChunkGenerator = SpanChunkGenerator.Null; - CompleteBlock(insertMarkerIfNecessary: false); + CompleteBlock1(insertMarkerIfNecessary: false); // This is unnecessary Output(SpanKindInternal.MetaCode); } @@ -675,12 +679,12 @@ private void Template() private void OtherParserBlock() { - ParseWithOtherParser(p => p.ParseBlock()); + ParseWithOtherParser(p => p.ParseBlock1()); } private void SectionBlock(string left, string right, bool caseSensitive) { - ParseWithOtherParser(p => p.ParseRazorBlock(Tuple.Create(left, right), caseSensitive)); + ParseWithOtherParser(p => p.ParseRazorBlock1(Tuple.Create(left, right), caseSensitive)); } private void NestedBlock() @@ -691,7 +695,7 @@ private void NestedBlock() IsNested = true; using (PushSpanConfig()) { - ParseBlock(); + ParseBlock1(); } Span.Start = CurrentLocation; @@ -700,15 +704,6 @@ private void NestedBlock() NextToken(); } - protected override bool IsAtEmbeddedTransition(bool allowTemplatesAndComments, bool allowTransitions) - { - // No embedded transitions in C#, so ignore that param - return allowTemplatesAndComments - && ((Language.IsTransition(CurrentToken) - && NextIs(SyntaxKind.LessThan, SyntaxKind.Colon, SyntaxKind.DoubleColon)) - || Language.IsCommentStart(CurrentToken)); - } - protected override void HandleEmbeddedTransition() { if (Language.IsTransition(CurrentToken)) @@ -770,7 +765,7 @@ protected virtual void ReservedDirective(bool topLevel) Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; Span.ChunkGenerator = SpanChunkGenerator.Null; Context.Builder.CurrentBlock.Type = BlockKindInternal.Directive; - CompleteBlock(); + CompleteBlock1(); Output(SpanKindInternal.MetaCode); } @@ -802,7 +797,7 @@ private void DoStatement(bool topLevel) WhileClause(); if (topLevel) { - CompleteBlock(); + CompleteBlock1(); } } @@ -859,7 +854,7 @@ private void UsingKeyword(bool topLevel) if (topLevel) { - CompleteBlock(); + CompleteBlock1(); } } @@ -1070,7 +1065,7 @@ private void TryStatement(bool topLevel) AfterTryClause(); if (topLevel) { - CompleteBlock(); + CompleteBlock1(); } } @@ -1081,7 +1076,7 @@ private void IfStatement(bool topLevel) AfterIfClause(); if (topLevel) { - CompleteBlock(); + CompleteBlock1(); } } @@ -1228,7 +1223,7 @@ private void ConditionalBlock(bool topLevel) ConditionalBlock(block); if (topLevel) { - CompleteBlock(); + CompleteBlock1(); } } @@ -1353,7 +1348,7 @@ private void HandleStatement(Block block, SyntaxKind type) switch (type) { case SyntaxKind.RazorCommentTransition: - Output(SpanKindInternal.Code); + Output(SpanKindInternal.Code); // Not needed RazorComment(); Statement(block); break; @@ -1645,7 +1640,7 @@ private void HandleDirective(DirectiveDescriptor descriptor) Output(SpanKindInternal.MetaCode, AcceptedCharactersInternal.None); // Even if an error was logged do not bail out early. If a directive was used incorrectly it doesn't mean it can't be parsed. - ValidateDirectiveUsage(descriptor); + ValidateDirectiveUsage1(descriptor); for (var i = 0; i < descriptor.Tokens.Count; i++) { @@ -1803,7 +1798,7 @@ private void HandleDirective(DirectiveDescriptor descriptor) using (PushSpanConfig()) { - HtmlParser.ParseRazorBlock(Tuple.Create("{", "}"), caseSensitive: true); + HtmlParser.ParseRazorBlock1(Tuple.Create("{", "}"), caseSensitive: true); } Span.Start = CurrentLocation; @@ -1847,7 +1842,7 @@ private void HandleDirective(DirectiveDescriptor descriptor) } - private void ValidateDirectiveUsage(DirectiveDescriptor descriptor) + private void ValidateDirectiveUsage1(DirectiveDescriptor descriptor) { if (descriptor.Usage == DirectiveUsage.FileScopedSinglyOccurring) { @@ -1902,7 +1897,7 @@ private void ParseDirectiveBlock(DirectiveDescriptor descriptor, Action { - var parsedDirective = ParseDirective(lookupText, Span.Start, TagHelperDirectiveType.AddTagHelper, errors); + var parsedDirective = ParseDirective1(lookupText, Span.Start, TagHelperDirectiveType.AddTagHelper, errors); return new AddTagHelperChunkGenerator( lookupText, @@ -2072,7 +2067,7 @@ protected virtual void RemoveTagHelperDirective() SyntaxConstants.CSharp.RemoveTagHelperKeyword, (lookupText, errors) => { - var parsedDirective = ParseDirective(lookupText, Span.Start, TagHelperDirectiveType.RemoveTagHelper, errors); + var parsedDirective = ParseDirective1(lookupText, Span.Start, TagHelperDirectiveType.RemoveTagHelper, errors); return new RemoveTagHelperChunkGenerator( lookupText, @@ -2163,7 +2158,7 @@ private void TagHelperDirective(string keyword, Func, CSharpTransitionSyntax>> _keywordParserMap = new Dictionary, CSharpTransitionSyntax>>(); + private Dictionary, CSharpTransitionSyntax>> _directiveParserMap = new Dictionary, CSharpTransitionSyntax>>(StringComparer.Ordinal); + + public CSharpCodeBlockSyntax ParseBlock() + { + if (Context == null) + { + throw new InvalidOperationException(Resources.Parser_Context_Not_Set); + } + + if (EndOfFile) + { + // Nothing to parse. + return null; + } + + using (var pooledResult = Pool.Allocate()) + using (PushSpanContextConfig(DefaultSpanContextConfig)) + { + var builder = pooledResult.Builder; + try + { + NextToken(); + + // Unless changed, the block is a statement block + AcceptTokenWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); + builder.Add(OutputTokensAsStatementLiteral()); + + // We are usually called when the other parser sees a transition '@'. Look for it. + SyntaxToken transitionToken = null; + if (At(SyntaxKind.StringLiteral) && + CurrentToken.Content.Length > 0 && + CurrentToken.Content[0] == SyntaxConstants.TransitionCharacter) + { + var split = Language.SplitToken(CurrentToken, 1, SyntaxKind.Transition); + transitionToken = split.Item1; + + // Back up to the end of the transition + Context.Source.Position -= split.Item2.Content.Length; + NextToken(); + } + else if (At(SyntaxKind.Transition)) + { + transitionToken = EatCurrentToken(); + } + + if (transitionToken == null) + { + transitionToken = SyntaxFactory.MissingToken(SyntaxKind.Transition); + } + + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; + var transition = GetNodeWithSpanContext(SyntaxFactory.CSharpTransition(transitionToken)); + + if (At(SyntaxKind.LeftBrace)) + { + var statementBody = ParseStatementBody(); + var statement = SyntaxFactory.CSharpStatement(transition, statementBody); + builder.Add(statement); + } + else if (At(SyntaxKind.LeftParenthesis)) + { + var expressionBody = ParseExplicitExpressionBody(); + var expression = SyntaxFactory.CSharpExpression(transition, expressionBody); + builder.Add(expression); + } + else if (At(SyntaxKind.Identifier)) + { + if (!TryParseDirective(builder, transition, CurrentToken.Content)) + { + if (string.Equals( + CurrentToken.Content, + SyntaxConstants.CSharp.HelperKeyword, + StringComparison.Ordinal)) + { + var diagnostic = RazorDiagnosticFactory.CreateParsing_HelperDirectiveNotAvailable( + new SourceSpan(CurrentStart, CurrentToken.Content.Length)); + CurrentToken.SetDiagnostics(new[] { diagnostic }); + Context.ErrorSink.OnError(diagnostic); + } + + var implicitExpressionBody = ParseImplicitExpressionBody(); + var implicitExpression = SyntaxFactory.CSharpImplicitExpression(transition, implicitExpressionBody); + builder.Add(implicitExpression); + } + } + else if (At(SyntaxKind.Keyword)) + { + if (!TryParseDirective(builder, transition, CurrentToken.Content) && + !TryParseKeyword(builder, transition)) + { + // Not a directive or a special keyword. Just parse as an implicit expression. + var implicitExpressionBody = ParseImplicitExpressionBody(); + var implicitExpression = SyntaxFactory.CSharpImplicitExpression(transition, implicitExpressionBody); + builder.Add(implicitExpression); + } + + builder.Add(OutputTokensAsStatementLiteral()); + } + else + { + // Invalid character + SpanContext.ChunkGenerator = new ExpressionChunkGenerator(); + SpanContext.EditHandler = new ImplicitExpressionEditHandler( + Language.TokenizeString, + CurrentKeywords, + acceptTrailingDot: IsNested) + { + AcceptedCharacters = AcceptedCharactersInternal.NonWhitespace + }; + + AcceptMarkerTokenIfNecessary(); + var expressionLiteral = SyntaxFactory.CSharpCodeBlock(OutputTokensAsExpressionLiteral()); + var expressionBody = SyntaxFactory.CSharpImplicitExpressionBody(expressionLiteral); + var expressionBlock = SyntaxFactory.CSharpImplicitExpression(transition, expressionBody); + builder.Add(expressionBlock); + + if (At(SyntaxKind.Whitespace) || At(SyntaxKind.NewLine)) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_UnexpectedWhiteSpaceAtStartOfCodeBlock( + new SourceSpan(CurrentStart, CurrentToken.Content.Length))); + } + else if (EndOfFile) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_UnexpectedEndOfFileAtStartOfCodeBlock( + new SourceSpan(CurrentStart, contentLength: 1 /* end of file */))); + } + else + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_UnexpectedCharacterAtStartOfCodeBlock( + new SourceSpan(CurrentStart, CurrentToken.Content.Length), + CurrentToken.Content)); + } + } + + Debug.Assert(TokenBuilder.Count == 0, "We should not have any tokens left."); + + var codeBlock = SyntaxFactory.CSharpCodeBlock(builder.ToList()); + return codeBlock; + } + finally + { + // Always put current character back in the buffer for the next parser. + PutCurrentBack(); + } + } + } + + private CSharpExpressionBodySyntax ParseExplicitExpressionBody() + { + var block = new Block(Resources.BlockName_ExplicitExpression, CurrentStart); + Assert(SyntaxKind.LeftParenthesis); + var leftParenToken = EatCurrentToken(); + var leftParen = OutputAsMetaCode(leftParenToken); + + using (var pooledResult = Pool.Allocate()) + { + var expressionBuilder = pooledResult.Builder; + using (PushSpanContextConfig(ExplicitExpressionSpanContextConfig)) + { + var success = BalanceToken( + expressionBuilder, + BalancingModes.BacktrackOnFailure | + BalancingModes.NoErrorOnFailure | + BalancingModes.AllowCommentsAndTemplates, + SyntaxKind.LeftParenthesis, + SyntaxKind.RightParenthesis, + block.Start); + + if (!success) + { + AcceptTokenUntil(SyntaxKind.LessThan); + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF( + new SourceSpan(block.Start, contentLength: 1 /* ( */), block.Name, ")", "(")); + } + + // If necessary, put an empty-content marker token here + AcceptMarkerTokenIfNecessary(); + expressionBuilder.Add(OutputTokensAsExpressionLiteral()); + } + + var expressionBlock = SyntaxFactory.CSharpCodeBlock(expressionBuilder.ToList()); + + RazorMetaCodeSyntax rightParen = null; + if (At(SyntaxKind.RightParenthesis)) + { + rightParen = OutputAsMetaCode(EatCurrentToken()); + } + else + { + var missingToken = SyntaxFactory.MissingToken(SyntaxKind.RightParenthesis); + rightParen = OutputAsMetaCode(missingToken, SpanContext.EditHandler.AcceptedCharacters); + } + if (!EndOfFile) + { + PutCurrentBack(); + } + + return SyntaxFactory.CSharpExpressionBody(leftParen, expressionBlock, rightParen); + } + } + + private CSharpImplicitExpressionBodySyntax ParseImplicitExpressionBody(bool async = false) + { + var accepted = AcceptedCharactersInternal.NonWhitespace; + if (async) + { + // Async implicit expressions include the "await" keyword and therefore need to allow spaces to + // separate the "await" and the following code. + accepted = AcceptedCharactersInternal.AnyExceptNewline; + } + + using (var pooledResult = Pool.Allocate()) + { + var expressionBuilder = pooledResult.Builder; + ParseImplicitExpression(expressionBuilder, accepted); + var codeBlock = SyntaxFactory.CSharpCodeBlock(expressionBuilder.ToList()); + return SyntaxFactory.CSharpImplicitExpressionBody(codeBlock); + } + } + + private void ParseImplicitExpression(in SyntaxListBuilder builder, AcceptedCharactersInternal acceptedCharacters) + { + using (PushSpanContextConfig(spanContext => + { + spanContext.EditHandler = new ImplicitExpressionEditHandler( + Language.TokenizeString, + Keywords, + acceptTrailingDot: IsNested); + spanContext.EditHandler.AcceptedCharacters = acceptedCharacters; + spanContext.ChunkGenerator = new ExpressionChunkGenerator(); + })) + { + do + { + if (AtIdentifier(allowKeywords: true)) + { + AcceptTokenAndMoveNext(); + } + } + while (ParseMethodCallOrArrayIndex(builder, acceptedCharacters)); + + PutCurrentBack(); + builder.Add(OutputTokensAsExpressionLiteral()); + } + } + + private bool ParseMethodCallOrArrayIndex(in SyntaxListBuilder builder, AcceptedCharactersInternal acceptedCharacters) + { + if (!EndOfFile) + { + if (CurrentToken.Kind == SyntaxKind.LeftParenthesis || + CurrentToken.Kind == SyntaxKind.LeftBracket) + { + // If we end within "(", whitespace is fine + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; + + SyntaxKind right; + bool success; + + using (PushSpanContextConfig((spanContext, prev) => + { + prev(spanContext); + spanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; + })) + { + right = Language.FlipBracket(CurrentToken.Kind); + success = BalanceToken(builder, BalancingModes.BacktrackOnFailure | BalancingModes.AllowCommentsAndTemplates); + } + + if (!success) + { + AcceptTokenUntil(SyntaxKind.LessThan); + } + if (At(right)) + { + AcceptTokenAndMoveNext(); + + // At the ending brace, restore the initial accepted characters. + SpanContext.EditHandler.AcceptedCharacters = acceptedCharacters; + } + return ParseMethodCallOrArrayIndex(builder, acceptedCharacters); + } + if (At(SyntaxKind.QuestionMark)) + { + var next = Lookahead(count: 1); + + if (next != null) + { + if (next.Kind == SyntaxKind.Dot) + { + // Accept null conditional dot operator (?.). + AcceptTokenAndMoveNext(); + AcceptTokenAndMoveNext(); + + // If the next piece after the ?. is a keyword or identifier then we want to continue. + return At(SyntaxKind.Identifier) || At(SyntaxKind.Keyword); + } + else if (next.Kind == SyntaxKind.LeftBracket) + { + // We're at the ? for a null conditional bracket operator (?[). + AcceptTokenAndMoveNext(); + + // Accept the [ and any content inside (it will attempt to balance). + return ParseMethodCallOrArrayIndex(builder, acceptedCharacters); + } + } + } + else if (At(SyntaxKind.Dot)) + { + var dot = CurrentToken; + if (NextToken()) + { + if (At(SyntaxKind.Identifier) || At(SyntaxKind.Keyword)) + { + // Accept the dot and return to the start + AcceptToken(dot); + return true; // continue + } + else + { + // Put the token back + PutCurrentBack(); + } + } + if (!IsNested) + { + // Put the "." back + PutBack(dot); + } + else + { + AcceptToken(dot); + } + } + else if (!At(SyntaxKind.Whitespace) && !At(SyntaxKind.NewLine)) + { + PutCurrentBack(); + } + } + + // Implicit Expression is complete + return false; + } + + private CSharpStatementBodySyntax ParseStatementBody(Block block = null) + { + Assert(SyntaxKind.LeftBrace); + block = block ?? new Block(Resources.BlockName_Code, CurrentStart); + var leftBrace = OutputAsMetaCode(GetExpectedToken(SyntaxKind.LeftBrace)); + CSharpCodeBlockSyntax codeBlock = null; + using (var pooledResult = Pool.Allocate()) + { + var builder = pooledResult.Builder; + // Set up auto-complete and parse the code block + var editHandler = new AutoCompleteEditHandler(Language.TokenizeString); + SpanContext.EditHandler = editHandler; + ParseCodeBlock(builder, block, acceptTerminatingBrace: false); + + EnsureCurrent(); + SpanContext.ChunkGenerator = new StatementChunkGenerator(); + AcceptMarkerTokenIfNecessary(); + if (!At(SyntaxKind.RightBrace)) + { + editHandler.AutoCompleteString = "}"; + } + builder.Add(OutputTokensAsStatementLiteral()); + + codeBlock = SyntaxFactory.CSharpCodeBlock(builder.ToList()); + } + + RazorMetaCodeSyntax rightBrace = null; + if (At(SyntaxKind.RightBrace)) + { + rightBrace = OutputAsMetaCode(EatCurrentToken()); + } + else + { + rightBrace = OutputAsMetaCode( + SyntaxFactory.MissingToken(SyntaxKind.RightBrace), + SpanContext.EditHandler.AcceptedCharacters); + } + + if (!IsNested) + { + EnsureCurrent(); + if (At(SyntaxKind.NewLine) || + (At(SyntaxKind.Whitespace) && NextIs(SyntaxKind.NewLine))) + { + Context.NullGenerateWhitespaceAndNewLine = true; + } + } + + return SyntaxFactory.CSharpStatementBody(leftBrace, codeBlock, rightBrace); + } + + private void ParseCodeBlock(in SyntaxListBuilder builder, Block block, bool acceptTerminatingBrace = true) + { + EnsureCurrent(); + while (!EndOfFile && !At(SyntaxKind.RightBrace)) + { + // Parse a statement, then return here + ParseStatement(builder, block: block); + EnsureCurrent(); + } + + if (EndOfFile) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF( + new SourceSpan(block.Start, contentLength: 1 /* { OR } */), block.Name, "}", "{")); + } + + if (acceptTerminatingBrace) + { + Assert(SyntaxKind.RightBrace); + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; + AcceptTokenAndMoveNext(); + } + } + + private void ParseStatement(in SyntaxListBuilder builder, Block block) + { + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; + // Accept whitespace but always keep the last whitespace node so we can put it back if necessary + var lastWhitespace = AcceptWhitespaceTokensInLines(); + if (EndOfFile) + { + if (lastWhitespace != null) + { + AcceptToken(lastWhitespace); + } + + builder.Add(OutputTokensAsStatementLiteral()); + return; + } + + var kind = CurrentToken.Kind; + var location = CurrentStart; + + // Both cases @: and @:: are triggered as markup, second colon in second case will be triggered as a plain text + var isSingleLineMarkup = kind == SyntaxKind.Transition && + (NextIs(SyntaxKind.Colon, SyntaxKind.DoubleColon)); + + var isMarkup = isSingleLineMarkup || + kind == SyntaxKind.LessThan || + (kind == SyntaxKind.Transition && NextIs(SyntaxKind.LessThan)); + + if (Context.DesignTimeMode || !isMarkup) + { + // CODE owns whitespace, MARKUP owns it ONLY in DesignTimeMode. + if (lastWhitespace != null) + { + AcceptToken(lastWhitespace); + } + } + else + { + var nextToken = Lookahead(1); + + // MARKUP owns whitespace EXCEPT in DesignTimeMode. + PutCurrentBack(); + + // Put back the whitespace unless it precedes a '' tag. + if (nextToken != null && + !string.Equals(nextToken.Content, SyntaxConstants.TextTagName, StringComparison.Ordinal)) + { + PutBack(lastWhitespace); + } + else + { + // If it precedes a '' tag, it should be accepted as code. + AcceptToken(lastWhitespace); + } + } + + if (isMarkup) + { + if (kind == SyntaxKind.Transition && !isSingleLineMarkup) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_AtInCodeMustBeFollowedByColonParenOrIdentifierStart( + new SourceSpan(location, contentLength: 1 /* @ */))); + } + + // Markup block + builder.Add(OutputTokensAsStatementLiteral()); + if (Context.DesignTimeMode && CurrentToken != null && + (CurrentToken.Kind == SyntaxKind.LessThan || CurrentToken.Kind == SyntaxKind.Transition)) + { + PutCurrentBack(); + } + OtherParserBlock(builder); + } + else + { + // What kind of statement is this? + switch (kind) + { + case SyntaxKind.RazorCommentTransition: + AcceptMarkerTokenIfNecessary(); + builder.Add(OutputTokensAsStatementLiteral()); + var comment = ParseRazorComment(); + builder.Add(comment); + ParseStatement(builder, block); + break; + case SyntaxKind.LeftBrace: + // Verbatim Block + AcceptTokenAndMoveNext(); + ParseCodeBlock(builder, block); + break; + case SyntaxKind.Keyword: + if (!TryParseKeyword(builder, transition: null)) + { + ParseStandardStatement(builder); + } + break; + case SyntaxKind.Transition: + // Embedded Expression block + ParseEmbeddedExpression(builder); + break; + case SyntaxKind.RightBrace: + // Possible end of Code Block, just run the continuation + break; + case SyntaxKind.CSharpComment: + AcceptToken(CurrentToken); + NextToken(); + break; + default: + // Other statement + ParseStandardStatement(builder); + break; + } + } + } + + private void ParseEmbeddedExpression(in SyntaxListBuilder builder) + { + // First, verify the type of the block + Assert(SyntaxKind.Transition); + var transition = CurrentToken; + NextToken(); + + if (At(SyntaxKind.Transition)) + { + // Escaped "@" + builder.Add(OutputTokensAsStatementLiteral()); + + // Output "@" as hidden span + AcceptToken(transition); + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + builder.Add(OutputTokensAsHiddenLiteral()); + + Assert(SyntaxKind.Transition); + AcceptTokenAndMoveNext(); + ParseStandardStatement(builder); + } + else + { + // Throw errors as necessary, but continue parsing + if (At(SyntaxKind.LeftBrace)) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_UnexpectedNestedCodeBlock( + new SourceSpan(CurrentStart, contentLength: 1 /* { */))); + } + + // @( or @foo - Nested expression, parse a child block + PutCurrentBack(); + PutBack(transition); + + // Before exiting, add a marker span if necessary + AcceptMarkerTokenIfNecessary(); + builder.Add(OutputTokensAsStatementLiteral()); + + var nestedBlock = ParseNestedBlock(); + builder.Add(nestedBlock); + } + } + + private RazorSyntaxNode ParseNestedBlock() + { + var wasNested = IsNested; + IsNested = true; + + RazorSyntaxNode nestedBlock; + using (PushSpanContextConfig()) + { + nestedBlock = ParseBlock(); + } + + InitializeContext(SpanContext); + IsNested = wasNested; + NextToken(); + + return nestedBlock; + } + + private void ParseStandardStatement(in SyntaxListBuilder builder) + { + while (!EndOfFile) + { + var bookmark = CurrentStart.AbsoluteIndex; + var read = ReadWhile(token => + token.Kind != SyntaxKind.Semicolon && + token.Kind != SyntaxKind.RazorCommentTransition && + token.Kind != SyntaxKind.Transition && + token.Kind != SyntaxKind.LeftBrace && + token.Kind != SyntaxKind.LeftParenthesis && + token.Kind != SyntaxKind.LeftBracket && + token.Kind != SyntaxKind.RightBrace); + + if (At(SyntaxKind.LeftBrace) || + At(SyntaxKind.LeftParenthesis) || + At(SyntaxKind.LeftBracket)) + { + AcceptToken(read); + if (BalanceToken(builder, BalancingModes.AllowCommentsAndTemplates | BalancingModes.BacktrackOnFailure)) + { + OptionalToken(SyntaxKind.RightBrace); + } + else + { + // Recovery + AcceptTokenUntil(SyntaxKind.LessThan, SyntaxKind.RightBrace); + return; + } + } + else if (At(SyntaxKind.Transition) && (NextIs(SyntaxKind.LessThan, SyntaxKind.Colon))) + { + AcceptToken(read); + builder.Add(OutputTokensAsStatementLiteral()); + ParseTemplate(builder); + } + else if (At(SyntaxKind.RazorCommentTransition)) + { + AcceptToken(read); + AcceptMarkerTokenIfNecessary(); + builder.Add(OutputTokensAsStatementLiteral()); + builder.Add(ParseRazorComment()); + } + else if (At(SyntaxKind.Semicolon)) + { + AcceptToken(read); + AcceptTokenAndMoveNext(); + return; + } + else if (At(SyntaxKind.RightBrace)) + { + AcceptToken(read); + return; + } + else + { + Context.Source.Position = bookmark; + NextToken(); + AcceptTokenUntil(SyntaxKind.LessThan, SyntaxKind.LeftBrace, SyntaxKind.RightBrace); + return; + } + } + } + + private void ParseTemplate(in SyntaxListBuilder builder) + { + if (Context.InTemplateContext) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_InlineMarkupBlocksCannotBeNested( + new SourceSpan(CurrentStart, contentLength: 1 /* @ */))); + } + builder.Add(OutputTokensAsStatementLiteral()); + + using (var pooledResult = Pool.Allocate()) + { + var templateBuilder = pooledResult.Builder; + Context.InTemplateContext = true; + PutCurrentBack(); + OtherParserBlock(templateBuilder); + + var template = SyntaxFactory.CSharpTemplateBlock(templateBuilder.ToList()); + builder.Add(template); + + Context.InTemplateContext = false; + } + } + + protected bool TryParseDirective(in SyntaxListBuilder builder, CSharpTransitionSyntax transition, string directive) + { + if (_directiveParserMap.TryGetValue(directive, out var handler)) + { + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + handler(builder, transition); + return true; + } + + return false; + } + + private void SetupDirectiveParsers(IEnumerable directiveDescriptors) + { + var allDirectives = directiveDescriptors.Concat(DefaultDirectiveDescriptors).ToList(); + + for (var i = 0; i < allDirectives.Count; i++) + { + var directiveDescriptor = allDirectives[i]; + CurrentKeywords.Add(directiveDescriptor.Directive); + MapDirectives((builder, transition) => ParseExtensibleDirective(builder, transition, directiveDescriptor), directiveDescriptor.Directive); + } + + MapDirectives(ParseTagHelperPrefixDirective, SyntaxConstants.CSharp.TagHelperPrefixKeyword); + MapDirectives(ParseAddTagHelperDirective, SyntaxConstants.CSharp.AddTagHelperKeyword); + MapDirectives(ParseRemoveTagHelperDirective, SyntaxConstants.CSharp.RemoveTagHelperKeyword); + } + + protected void MapDirectives(Action, CSharpTransitionSyntax> handler, params string[] directives) + { + foreach (var directive in directives) + { + _directiveParserMap.Add(directive, (builder, transition) => + { + handler(builder, transition); + Context.SeenDirectives.Add(directive); + }); + + Keywords.Add(directive); + + // These C# keywords are reserved for use in directives. It's an error to use them outside of + // a directive. This code removes the error generation if the directive *is* registered. + if (string.Equals(directive, "class", StringComparison.OrdinalIgnoreCase)) + { + _keywordParserMap.Remove(CSharpKeyword.Class); + } + else if (string.Equals(directive, "namespace", StringComparison.OrdinalIgnoreCase)) + { + _keywordParserMap.Remove(CSharpKeyword.Namespace); + } + } + } + + private void ParseTagHelperPrefixDirective(SyntaxListBuilder builder, CSharpTransitionSyntax transition) + { + RazorDiagnostic duplicateDiagnostic = null; + if (Context.SeenDirectives.Contains(SyntaxConstants.CSharp.TagHelperPrefixKeyword)) + { + var directiveStart = CurrentStart; + if (transition != null) + { + // Start the error from the Transition '@'. + directiveStart = new SourceLocation( + directiveStart.FilePath, + directiveStart.AbsoluteIndex - 1, + directiveStart.LineIndex, + directiveStart.CharacterIndex - 1); + } + var errorLength = /* @ */ 1 + SyntaxConstants.CSharp.TagHelperPrefixKeyword.Length; + duplicateDiagnostic = RazorDiagnosticFactory.CreateParsing_DuplicateDirective( + new SourceSpan(directiveStart, errorLength), + SyntaxConstants.CSharp.TagHelperPrefixKeyword); + } + + var directiveBody = ParseTagHelperDirective( + SyntaxConstants.CSharp.TagHelperPrefixKeyword, + (prefix, errors) => + { + if (duplicateDiagnostic != null) + { + errors.Add(duplicateDiagnostic); + } + + var parsedDirective = ParseDirective(prefix, CurrentStart, TagHelperDirectiveType.TagHelperPrefix, errors); + + return new TagHelperPrefixDirectiveChunkGenerator( + prefix, + parsedDirective.DirectiveText, + errors); + }); + + var directive = SyntaxFactory.CSharpDirective(transition, directiveBody); + builder.Add(directive); + } + + private void ParseAddTagHelperDirective(SyntaxListBuilder builder, CSharpTransitionSyntax transition) + { + var directiveBody = ParseTagHelperDirective( + SyntaxConstants.CSharp.AddTagHelperKeyword, + (lookupText, errors) => + { + var parsedDirective = ParseDirective(lookupText, CurrentStart, TagHelperDirectiveType.AddTagHelper, errors); + + return new AddTagHelperChunkGenerator( + lookupText, + parsedDirective.DirectiveText, + parsedDirective.TypePattern, + parsedDirective.AssemblyName, + errors); + }); + + var directive = SyntaxFactory.CSharpDirective(transition, directiveBody); + builder.Add(directive); + } + + private void ParseRemoveTagHelperDirective(SyntaxListBuilder builder, CSharpTransitionSyntax transition) + { + var directiveBody = ParseTagHelperDirective( + SyntaxConstants.CSharp.RemoveTagHelperKeyword, + (lookupText, errors) => + { + var parsedDirective = ParseDirective(lookupText, CurrentStart, TagHelperDirectiveType.RemoveTagHelper, errors); + + return new RemoveTagHelperChunkGenerator( + lookupText, + parsedDirective.DirectiveText, + parsedDirective.TypePattern, + parsedDirective.AssemblyName, + errors); + }); + + var directive = SyntaxFactory.CSharpDirective(transition, directiveBody); + builder.Add(directive); + } + + private CSharpDirectiveBodySyntax ParseTagHelperDirective( + string keyword, + Func, ISpanChunkGenerator> chunkGeneratorFactory) + { + AssertDirective(keyword); + + var savedErrorSink = Context.ErrorSink; + var directiveErrorSink = new ErrorSink(); + RazorMetaCodeSyntax keywordBlock = null; + using (var pooledResult = Pool.Allocate()) + { + var directiveBuilder = pooledResult.Builder; + Context.ErrorSink = directiveErrorSink; + + string directiveValue = null; + try + { + EnsureDirectiveIsAtStartOfLine(); + + var keywordStartLocation = CurrentStart; + + // Accept the directive name + var keywordToken = EatCurrentToken(); + var keywordLength = keywordToken.FullWidth + 1 /* @ */; + + var foundWhitespace = At(SyntaxKind.Whitespace); + + // If we found whitespace then any content placed within the whitespace MAY cause a destructive change + // to the document. We can't accept it. + var acceptedCharacters = foundWhitespace ? AcceptedCharactersInternal.None : AcceptedCharactersInternal.AnyExceptNewline; + AcceptToken(keywordToken); + keywordBlock = OutputAsMetaCode(OutputTokens(), acceptedCharacters); + + AcceptTokenWhile(SyntaxKind.Whitespace); + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + SpanContext.EditHandler.AcceptedCharacters = acceptedCharacters; + directiveBuilder.Add(OutputTokensAsHtmlLiteral()); + + if (EndOfFile || At(SyntaxKind.NewLine)) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_DirectiveMustHaveValue( + new SourceSpan(keywordStartLocation, keywordLength), keyword)); + + directiveValue = string.Empty; + } + else + { + // Need to grab the current location before we accept until the end of the line. + var startLocation = CurrentStart; + + // Parse to the end of the line. Essentially accepts anything until end of line, comments, invalid code + // etc. + AcceptTokenUntil(SyntaxKind.NewLine); + + // Pull out the value and remove whitespaces and optional quotes + var rawValue = string.Concat(TokenBuilder.ToList().Nodes.Select(s => s.Content)).Trim(); + + var startsWithQuote = rawValue.StartsWith("\"", StringComparison.Ordinal); + var endsWithQuote = rawValue.EndsWith("\"", StringComparison.Ordinal); + if (startsWithQuote != endsWithQuote) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_IncompleteQuotesAroundDirective( + new SourceSpan(startLocation, rawValue.Length), keyword)); + } + + directiveValue = rawValue; + } + } + finally + { + SpanContext.ChunkGenerator = chunkGeneratorFactory(directiveValue, directiveErrorSink.Errors.ToList()); + Context.ErrorSink = savedErrorSink; + } + + // Finish the block and output the tokens + CompleteBlock(); + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.AnyExceptNewline; + + directiveBuilder.Add(OutputTokensAsStatementLiteral()); + var directiveCodeBlock = SyntaxFactory.CSharpCodeBlock(directiveBuilder.ToList()); + + return SyntaxFactory.CSharpDirectiveBody(keywordBlock, directiveCodeBlock); + } + + } + + private ParsedDirective ParseDirective( + string directiveText, + SourceLocation directiveLocation, + TagHelperDirectiveType directiveType, + List errors) + { + var offset = 0; + directiveText = directiveText.Trim(); + if (directiveText.Length >= 2 && + directiveText.StartsWith("\"", StringComparison.Ordinal) && + directiveText.EndsWith("\"", StringComparison.Ordinal)) + { + directiveText = directiveText.Substring(1, directiveText.Length - 2); + if (string.IsNullOrEmpty(directiveText)) + { + offset = 1; + } + } + + // If this is the "string literal" form of a directive, we'll need to postprocess the location + // and content. + // + // Ex: @addTagHelper "*, Microsoft.AspNetCore.CoolLibrary" + // ^ ^ + // Start End + if (TokenBuilder.Count == 1 && + TokenBuilder[0] is SyntaxToken token && + token.Kind == SyntaxKind.StringLiteral) + { + offset += token.Content.IndexOf(directiveText, StringComparison.Ordinal); + + // This is safe because inside one of these directives all of the text needs to be on the + // same line. + var original = directiveLocation; + directiveLocation = new SourceLocation( + original.FilePath, + original.AbsoluteIndex + offset, + original.LineIndex, + original.CharacterIndex + offset); + } + + var parsedDirective = new ParsedDirective() + { + DirectiveText = directiveText + }; + + if (directiveType == TagHelperDirectiveType.TagHelperPrefix) + { + ValidateTagHelperPrefix(parsedDirective.DirectiveText, directiveLocation, errors); + + return parsedDirective; + } + + return ParseAddOrRemoveDirective(parsedDirective, directiveLocation, errors); + } + + private void ParseExtensibleDirective(in SyntaxListBuilder builder, CSharpTransitionSyntax transition, DirectiveDescriptor descriptor) + { + AssertDirective(descriptor.Directive); + + var directiveErrorSink = new ErrorSink(); + var savedErrorSink = Context.ErrorSink; + Context.ErrorSink = directiveErrorSink; + + using (var pooledResult = Pool.Allocate()) + { + var directiveBuilder = pooledResult.Builder; + var directiveChunkGenerator = new DirectiveChunkGenerator(descriptor); + RazorMetaCodeSyntax keywordBlock = null; + + try + { + EnsureDirectiveIsAtStartOfLine(); + var directiveStart = CurrentStart; + if (transition != null) + { + // Start the error from the Transition '@'. + directiveStart = new SourceLocation( + directiveStart.FilePath, + directiveStart.AbsoluteIndex - 1, + directiveStart.LineIndex, + directiveStart.CharacterIndex - 1); + } + + AcceptTokenAndMoveNext(); + keywordBlock = OutputAsMetaCode(OutputTokens()); + + // Even if an error was logged do not bail out early. If a directive was used incorrectly it doesn't mean it can't be parsed. + ValidateDirectiveUsage(descriptor, directiveStart); + + for (var i = 0; i < descriptor.Tokens.Count; i++) + { + if (!At(SyntaxKind.Whitespace) && + !At(SyntaxKind.NewLine) && + !EndOfFile) + { + // This case should never happen in a real scenario. We're just being defensive. + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_DirectiveTokensMustBeSeparatedByWhitespace( + new SourceSpan(CurrentStart, CurrentToken.Content.Length), descriptor.Directive)); + + return; + } + + var tokenDescriptor = descriptor.Tokens[i]; + AcceptTokenWhile(IsSpacingToken(includeNewLines: false, includeComments: true)); + + if (tokenDescriptor.Kind == DirectiveTokenKind.Member || + tokenDescriptor.Kind == DirectiveTokenKind.Namespace || + tokenDescriptor.Kind == DirectiveTokenKind.Type) + { + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Whitespace; + directiveBuilder.Add(OutputTokensAsStatementLiteral()); + + if (EndOfFile || At(SyntaxKind.NewLine)) + { + // Add a marker token to provide CSharp intellisense when we start typing the directive token. + AcceptMarkerTokenIfNecessary(); + SpanContext.ChunkGenerator = new DirectiveTokenChunkGenerator(tokenDescriptor); + SpanContext.EditHandler = new DirectiveTokenEditHandler(Language.TokenizeString); + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.NonWhitespace; + directiveBuilder.Add(OutputTokensAsStatementLiteral()); + } + } + else + { + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Whitespace; + directiveBuilder.Add(OutputTokensAsHtmlLiteral()); + } + + if (tokenDescriptor.Optional && (EndOfFile || At(SyntaxKind.NewLine))) + { + break; + } + else if (EndOfFile) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_UnexpectedEOFAfterDirective( + new SourceSpan(CurrentStart, contentLength: 1), + descriptor.Directive, + tokenDescriptor.Kind.ToString().ToLowerInvariant())); + return; + } + + switch (tokenDescriptor.Kind) + { + case DirectiveTokenKind.Type: + if (!TryParseNamespaceOrTypeName(directiveBuilder)) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_DirectiveExpectsTypeName( + new SourceSpan(CurrentStart, CurrentToken.Content.Length), descriptor.Directive)); + + return; + } + break; + + case DirectiveTokenKind.Namespace: + if (!TryParseQualifiedIdentifier(out var identifierLength)) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_DirectiveExpectsNamespace( + new SourceSpan(CurrentStart, identifierLength), descriptor.Directive)); + + return; + } + break; + + case DirectiveTokenKind.Member: + if (At(SyntaxKind.Identifier)) + { + AcceptTokenAndMoveNext(); + } + else + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_DirectiveExpectsIdentifier( + new SourceSpan(CurrentStart, CurrentToken.Content.Length), descriptor.Directive)); + return; + } + break; + + case DirectiveTokenKind.String: + if (At(SyntaxKind.StringLiteral) && !CurrentToken.ContainsDiagnostics) + { + AcceptTokenAndMoveNext(); + } + else + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_DirectiveExpectsQuotedStringLiteral( + new SourceSpan(CurrentStart, CurrentToken.Content.Length), descriptor.Directive)); + return; + } + break; + } + + SpanContext.ChunkGenerator = new DirectiveTokenChunkGenerator(tokenDescriptor); + SpanContext.EditHandler = new DirectiveTokenEditHandler(Language.TokenizeString); + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.NonWhitespace; + directiveBuilder.Add(OutputTokensAsStatementLiteral()); + } + + AcceptTokenWhile(IsSpacingToken(includeNewLines: false, includeComments: true)); + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + + switch (descriptor.Kind) + { + case DirectiveKind.SingleLine: + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Whitespace; + directiveBuilder.Add(OutputTokensAsNoneLiteral()); + + OptionalToken(SyntaxKind.Semicolon); + directiveBuilder.Add(OutputAsMetaCode(OutputTokens(), AcceptedCharactersInternal.Whitespace)); + + AcceptTokenWhile(IsSpacingToken(includeNewLines: false, includeComments: true)); + + if (At(SyntaxKind.NewLine)) + { + AcceptTokenAndMoveNext(); + } + else if (!EndOfFile) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_UnexpectedDirectiveLiteral( + new SourceSpan(CurrentStart, CurrentToken.Content.Length), + descriptor.Directive, + Resources.ErrorComponent_Newline)); + } + + + // This should contain the optional whitespace after the optional semicolon and the new line. + // Output as Markup as we want intellisense here. + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Whitespace; + directiveBuilder.Add(OutputTokensAsHtmlLiteral()); + break; + case DirectiveKind.RazorBlock: + AcceptTokenWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.AllWhitespace; + directiveBuilder.Add(OutputTokensAsHtmlLiteral()); + + ParseDirectiveBlock(directiveBuilder, descriptor, parseChildren: (childBuilder, startingBraceLocation) => + { + // When transitioning to the HTML parser we no longer want to act as if we're in a nested C# state. + // For instance, if
@hello.
is in a nested C# block we don't want the trailing '.' to be handled + // as C#; it should be handled as a period because it's wrapped in markup. + var wasNested = IsNested; + IsNested = false; + + using (PushSpanContextConfig()) + { + var razorBlock = HtmlParser.ParseRazorBlock(Tuple.Create("{", "}"), caseSensitive: true); + directiveBuilder.Add(razorBlock); + } + + InitializeContext(SpanContext); + IsNested = wasNested; + NextToken(); + }); + break; + case DirectiveKind.CodeBlock: + AcceptTokenWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.AllWhitespace; + directiveBuilder.Add(OutputTokensAsHtmlLiteral()); + + ParseDirectiveBlock(directiveBuilder, descriptor, parseChildren: (childBuilder, startingBraceLocation) => + { + NextToken(); + BalanceToken(childBuilder, BalancingModes.NoErrorOnFailure, SyntaxKind.LeftBrace, SyntaxKind.RightBrace, startingBraceLocation); + SpanContext.ChunkGenerator = new StatementChunkGenerator(); + var existingEditHandler = SpanContext.EditHandler; + SpanContext.EditHandler = new CodeBlockEditHandler(Language.TokenizeString); + + AcceptMarkerTokenIfNecessary(); + + childBuilder.Add(OutputTokensAsStatementLiteral()); + + SpanContext.EditHandler = existingEditHandler; + }); + break; + } + } + finally + { + if (directiveErrorSink.Errors.Count > 0) + { + directiveChunkGenerator.Diagnostics.AddRange(directiveErrorSink.Errors); + } + + Context.ErrorSink = savedErrorSink; + } + + directiveBuilder.Add(OutputTokensAsStatementLiteral()); + var directiveCodeBlock = SyntaxFactory.CSharpCodeBlock(directiveBuilder.ToList()); + + var directiveBody = SyntaxFactory.CSharpDirectiveBody(keywordBlock, directiveCodeBlock); + var directive = SyntaxFactory.CSharpDirective(transition, directiveBody); + directive = (CSharpDirectiveSyntax)directive.SetDiagnostics(directiveErrorSink.Errors.ToArray()); + builder.Add(directive); + } + } + + private void ValidateDirectiveUsage(DirectiveDescriptor descriptor, SourceLocation directiveStart) + { + if (descriptor.Usage == DirectiveUsage.FileScopedSinglyOccurring) + { + if (Context.SeenDirectives.Contains(descriptor.Directive)) + { + // There will always be at least 1 child because of the `@` transition. + var errorLength = /* @ */ 1 + descriptor.Directive.Length; + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_DuplicateDirective( + new SourceSpan(directiveStart, errorLength), descriptor.Directive)); + + return; + } + } + } + + // Used for parsing a qualified name like that which follows the `namespace` keyword. + // + // qualified-identifier: + // identifier + // qualified-identifier . identifier + protected bool TryParseQualifiedIdentifier(out int identifierLength) + { + var currentIdentifierLength = 0; + var expectingDot = false; + var tokens = ReadWhile(token => + { + var type = token.Kind; + if ((expectingDot && type == SyntaxKind.Dot) || + (!expectingDot && type == SyntaxKind.Identifier)) + { + expectingDot = !expectingDot; + return true; + } + + if (type != SyntaxKind.Whitespace && + type != SyntaxKind.NewLine) + { + expectingDot = false; + currentIdentifierLength += token.Content.Length; + } + + return false; + }); + + identifierLength = currentIdentifierLength; + var validQualifiedIdentifier = expectingDot; + if (validQualifiedIdentifier) + { + foreach (var token in tokens) + { + identifierLength += token.Content.Length; + AcceptToken(token); + } + + return true; + } + else + { + PutCurrentBack(); + + foreach (var token in tokens) + { + identifierLength += token.Content.Length; + PutBack(token); + } + + EnsureCurrent(); + return false; + } + } + + private void ParseDirectiveBlock(in SyntaxListBuilder builder, DirectiveDescriptor descriptor, Action, SourceLocation> parseChildren) + { + if (EndOfFile) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_UnexpectedEOFAfterDirective( + new SourceSpan(CurrentStart, contentLength: 1 /* { */), descriptor.Directive, "{")); + } + else if (!At(SyntaxKind.LeftBrace)) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_UnexpectedDirectiveLiteral( + new SourceSpan(CurrentStart, CurrentToken.Content.Length), descriptor.Directive, "{")); + } + else + { + var editHandler = new AutoCompleteEditHandler(Language.TokenizeString, autoCompleteAtEndOfSpan: true); + SpanContext.EditHandler = editHandler; + var startingBraceLocation = CurrentStart; + AcceptToken(CurrentToken); + builder.Add(OutputAsMetaCode(OutputTokens())); + + using (var pooledResult = Pool.Allocate()) + { + var childBuilder = pooledResult.Builder; + parseChildren(childBuilder, startingBraceLocation); + if (childBuilder.Count > 0) + { + builder.Add(SyntaxFactory.CSharpCodeBlock(childBuilder.ToList())); + } + } + + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + if (!OptionalToken(SyntaxKind.RightBrace)) + { + editHandler.AutoCompleteString = "}"; + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF( + new SourceSpan(startingBraceLocation, contentLength: 1 /* } */), descriptor.Directive, "}", "{")); + + AcceptToken(SyntaxFactory.MissingToken(SyntaxKind.RightBrace)); + } + else + { + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; + } + CompleteBlock(insertMarkerIfNecessary: false, captureWhitespaceToEndOfLine: true); + builder.Add(OutputAsMetaCode(OutputTokens(), SpanContext.EditHandler.AcceptedCharacters)); + } + } + + private bool TryParseKeyword(in SyntaxListBuilder builder, CSharpTransitionSyntax transition) + { + var result = CSharpTokenizer.GetTokenKeyword(CurrentToken); + Debug.Assert(CurrentToken.Kind == SyntaxKind.Keyword && result.HasValue); + if (_keywordParserMap.TryGetValue(result.Value, out var handler)) + { + handler(builder, transition); + return true; + } + + return false; + } + + private void SetupExpressionParsers() + { + MapExpressionKeyword(ParseAwaitExpression, CSharpKeyword.Await); + } + + private void SetupKeywordParsers() + { + MapKeywords( + ParseConditionalBlock, + CSharpKeyword.For, + CSharpKeyword.Foreach, + CSharpKeyword.While, + CSharpKeyword.Switch, + CSharpKeyword.Lock); + MapKeywords(ParseCaseStatement, false, CSharpKeyword.Case, CSharpKeyword.Default); + MapKeywords(ParseIfStatement, CSharpKeyword.If); + MapKeywords(ParseTryStatement, CSharpKeyword.Try); + MapKeywords(ParseDoStatement, CSharpKeyword.Do); + MapKeywords(ParseUsingKeyword, CSharpKeyword.Using); + MapKeywords(ParseReservedDirective, CSharpKeyword.Class, CSharpKeyword.Namespace); + } + + private void MapExpressionKeyword(Action, CSharpTransitionSyntax> handler, CSharpKeyword keyword) + { + _keywordParserMap.Add(keyword, handler); + + // Expression keywords don't belong in the regular keyword list + } + + private void MapKeywords(Action, CSharpTransitionSyntax> handler, params CSharpKeyword[] keywords) + { + MapKeywords(handler, topLevel: true, keywords: keywords); + } + + private void MapKeywords(Action, CSharpTransitionSyntax> handler, bool topLevel, params CSharpKeyword[] keywords) + { + foreach (var keyword in keywords) + { + _keywordParserMap.Add(keyword, handler); + if (topLevel) + { + Keywords.Add(CSharpLanguageCharacteristics.GetKeyword(keyword)); + } + } + } + + private void ParseAwaitExpression(SyntaxListBuilder builder, CSharpTransitionSyntax transition) + { + // Ensure that we're on the await statement (only runs in debug) + Assert(CSharpKeyword.Await); + + // Accept the "await" and move on + AcceptTokenAndMoveNext(); + + // Accept 1 or more spaces between the await and the following code. + AcceptTokenWhile(IsSpacingToken(includeNewLines: false, includeComments: true)); + + // Top level basically indicates if we're within an expression or statement. + // Ex: topLevel true = @await Foo() | topLevel false = @{ await Foo(); } + // Note that in this case @{ @await Foo() } top level is true for await. + // Therefore, if we're top level then we want to act like an implicit expression, + // otherwise just act as whatever we're contained in. + var topLevel = transition != null; + if (topLevel) + { + // Setup the Span to be an async implicit expression (an implicit expresison that allows spaces). + // Spaces are allowed because of "@await Foo()". + var implicitExpressionBody = ParseImplicitExpressionBody(async: true); + builder.Add(SyntaxFactory.CSharpImplicitExpression(transition, implicitExpressionBody)); + } + } + + private void ParseConditionalBlock(SyntaxListBuilder builder, CSharpTransitionSyntax transition) + { + var topLevel = transition != null; + ParseConditionalBlock(builder, transition, topLevel); + } + + private void ParseConditionalBlock(in SyntaxListBuilder builder, CSharpTransitionSyntax transition, bool topLevel) + { + Assert(SyntaxKind.Keyword); + if (transition != null) + { + builder.Add(transition); + } + + var block = new Block(CurrentToken, CurrentStart); + ParseConditionalBlock(builder, block); + if (topLevel) + { + CompleteBlock(); + } + } + + private void ParseConditionalBlock(in SyntaxListBuilder builder, Block block) + { + AcceptTokenAndMoveNext(); + AcceptTokenWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); + + // Parse the condition, if present (if not present, we'll let the C# compiler complain) + if (TryParseCondition(builder)) + { + AcceptTokenWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); + + ParseExpectedCodeBlock(builder, block); + } + } + + private bool TryParseCondition(in SyntaxListBuilder builder) + { + if (At(SyntaxKind.LeftParenthesis)) + { + var complete = BalanceToken(builder, BalancingModes.BacktrackOnFailure | BalancingModes.AllowCommentsAndTemplates); + if (!complete) + { + AcceptTokenUntil(SyntaxKind.NewLine); + } + else + { + OptionalToken(SyntaxKind.RightParenthesis); + } + return complete; + } + return true; + } + + private void ParseExpectedCodeBlock(in SyntaxListBuilder builder, Block block) + { + if (!EndOfFile) + { + // Check for "{" to make sure we're at a block + if (!At(SyntaxKind.LeftBrace)) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_SingleLineControlFlowStatementsNotAllowed( + new SourceSpan(CurrentStart, CurrentToken.Content.Length), + Language.GetSample(SyntaxKind.LeftBrace), + CurrentToken.Content)); + } + + // Parse the statement and then we're done + ParseStatement(builder, block); + } + } + + private void ParseUnconditionalBlock(in SyntaxListBuilder builder) + { + Assert(SyntaxKind.Keyword); + var block = new Block(CurrentToken, CurrentStart); + AcceptTokenAndMoveNext(); + AcceptTokenWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); + ParseExpectedCodeBlock(builder, block); + } + + private void ParseCaseStatement(SyntaxListBuilder builder, CSharpTransitionSyntax transition) + { + Assert(SyntaxKind.Keyword); + if (transition != null) + { + // Normally, case statement won't start with a transition in a valid scenario. + // If it does, just accept it and let the compiler complain. + builder.Add(transition); + } + var result = CSharpTokenizer.GetTokenKeyword(CurrentToken); + Debug.Assert(result.HasValue && + (result.Value == CSharpKeyword.Case || + result.Value == CSharpKeyword.Default)); + AcceptTokenUntil(SyntaxKind.Colon); + OptionalToken(SyntaxKind.Colon); + } + + private void ParseIfStatement(SyntaxListBuilder builder, CSharpTransitionSyntax transition) + { + Assert(CSharpKeyword.If); + ParseConditionalBlock(builder, transition, topLevel: false); + ParseAfterIfClause(builder); + var topLevel = transition != null; + if (topLevel) + { + CompleteBlock(); + } + } + + private void ParseAfterIfClause(SyntaxListBuilder builder) + { + // Grab whitespace and razor comments + var whitespace = SkipToNextImportantToken(builder); + + // Check for an else part + if (At(CSharpKeyword.Else)) + { + AcceptToken(whitespace); + Assert(CSharpKeyword.Else); + ParseElseClause(builder); + } + else + { + // No else, return whitespace + PutCurrentBack(); + PutBack(whitespace); + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; + } + } + + private void ParseElseClause(in SyntaxListBuilder builder) + { + if (!At(CSharpKeyword.Else)) + { + return; + } + var block = new Block(CurrentToken, CurrentStart); + + AcceptTokenAndMoveNext(); + AcceptTokenWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); + if (At(CSharpKeyword.If)) + { + // ElseIf + block.Name = SyntaxConstants.CSharp.ElseIfKeyword; + ParseConditionalBlock(builder, block); + ParseAfterIfClause(builder); + } + else if (!EndOfFile) + { + // Else + ParseExpectedCodeBlock(builder, block); + } + } + + private void ParseTryStatement(SyntaxListBuilder builder, CSharpTransitionSyntax transition) + { + Assert(CSharpKeyword.Try); + var topLevel = transition != null; + if (topLevel) + { + builder.Add(transition); + } + + ParseUnconditionalBlock(builder); + ParseAfterTryClause(builder); + if (topLevel) + { + CompleteBlock(); + } + } + + private void ParseAfterTryClause(in SyntaxListBuilder builder) + { + // Grab whitespace + var whitespace = SkipToNextImportantToken(builder); + + // Check for a catch or finally part + if (At(CSharpKeyword.Catch)) + { + AcceptToken(whitespace); + Assert(CSharpKeyword.Catch); + ParseFilterableCatchBlock(builder); + ParseAfterTryClause(builder); + } + else if (At(CSharpKeyword.Finally)) + { + AcceptToken(whitespace); + Assert(CSharpKeyword.Finally); + ParseUnconditionalBlock(builder); + } + else + { + // Return whitespace and end the block + PutCurrentBack(); + PutBack(whitespace); + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; + } + } + + private void ParseFilterableCatchBlock(in SyntaxListBuilder builder) + { + Assert(CSharpKeyword.Catch); + + var block = new Block(CurrentToken, CurrentStart); + + // Accept "catch" + AcceptTokenAndMoveNext(); + AcceptTokenWhile(IsValidStatementSpacingToken); + + // Parse the catch condition if present. If not present, let the C# compiler complain. + if (TryParseCondition(builder)) + { + AcceptTokenWhile(IsValidStatementSpacingToken); + + if (At(CSharpKeyword.When)) + { + // Accept "when". + AcceptTokenAndMoveNext(); + AcceptTokenWhile(IsValidStatementSpacingToken); + + // Parse the filter condition if present. If not present, let the C# compiler complain. + if (!TryParseCondition(builder)) + { + // Incomplete condition. + return; + } + + AcceptTokenWhile(IsValidStatementSpacingToken); + } + + ParseExpectedCodeBlock(builder, block); + } + } + + private void ParseDoStatement(SyntaxListBuilder builder, CSharpTransitionSyntax transition) + { + Assert(CSharpKeyword.Do); + if (transition != null) + { + builder.Add(transition); + } + + ParseUnconditionalBlock(builder); + ParseWhileClause(builder); + var topLevel = transition != null; + if (topLevel) + { + CompleteBlock(); + } + } + + private void ParseWhileClause(in SyntaxListBuilder builder) + { + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; + var whitespace = SkipToNextImportantToken(builder); + + if (At(CSharpKeyword.While)) + { + AcceptToken(whitespace); + Assert(CSharpKeyword.While); + AcceptTokenAndMoveNext(); + AcceptTokenWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); + if (TryParseCondition(builder) && OptionalToken(SyntaxKind.Semicolon)) + { + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; + } + } + else + { + PutCurrentBack(); + PutBack(whitespace); + } + } + + private void ParseUsingKeyword(SyntaxListBuilder builder, CSharpTransitionSyntax transition) + { + Assert(CSharpKeyword.Using); + var topLevel = transition != null; + var block = new Block(CurrentToken, CurrentStart); + + if (At(SyntaxKind.LeftParenthesis)) + { + // using ( ==> Using Statement + ParseUsingStatement(builder, transition, block); + } + else if (At(SyntaxKind.Identifier) || At(CSharpKeyword.Static)) + { + // using Identifier ==> Using Declaration + if (!topLevel) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_NamespaceImportAndTypeAliasCannotExistWithinCodeBlock( + new SourceSpan(block.Start, block.Name.Length))); + if (transition != null) + { + builder.Add(transition); + } + AcceptTokenAndMoveNext(); + AcceptTokenWhile(IsSpacingToken(includeNewLines: false, includeComments: true)); + ParseStandardStatement(builder); + } + else + { + ParseUsingDeclaration(builder, transition); + } + } + else + { + AcceptTokenAndMoveNext(); + AcceptTokenWhile(IsSpacingToken(includeNewLines: false, includeComments: true)); + } + + if (topLevel) + { + CompleteBlock(); + } + } + + private void ParseUsingStatement(in SyntaxListBuilder builder, CSharpTransitionSyntax transition, Block block) + { + Assert(CSharpKeyword.Using); + AcceptTokenAndMoveNext(); + AcceptTokenWhile(IsSpacingToken(includeNewLines: false, includeComments: true)); + + Assert(SyntaxKind.LeftParenthesis); + if (transition != null) + { + builder.Add(transition); + } + + // Parse condition + if (TryParseCondition(builder)) + { + AcceptTokenWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); + + // Parse code block + ParseExpectedCodeBlock(builder, block); + } + } + + private void ParseUsingDeclaration(in SyntaxListBuilder builder, CSharpTransitionSyntax transition) + { + // Using declarations should always be top level. The error case is handled in a different code path. + Debug.Assert(transition != null); + using (var pooledResult = Pool.Allocate()) + { + var directiveBuilder = pooledResult.Builder; + Assert(CSharpKeyword.Using); + AcceptTokenAndMoveNext(); + AcceptTokenWhile(IsSpacingToken(includeNewLines: false, includeComments: true)); + var keywordTokens = OutputTokensAsStatementLiteral(); + var start = CurrentStart; + if (At(SyntaxKind.Identifier)) + { + // non-static using + TryParseNamespaceOrTypeName(directiveBuilder); + var whitespace = ReadWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); + if (At(SyntaxKind.Assign)) + { + // Alias + AcceptToken(whitespace); + Assert(SyntaxKind.Assign); + AcceptTokenAndMoveNext(); + + AcceptTokenWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); + + // One more namespace or type name + TryParseNamespaceOrTypeName(directiveBuilder); + } + else + { + PutCurrentBack(); + PutBack(whitespace); + } + } + else if (At(CSharpKeyword.Static)) + { + // static using + AcceptTokenAndMoveNext(); + AcceptTokenWhile(IsSpacingToken(includeNewLines: false, includeComments: true)); + TryParseNamespaceOrTypeName(directiveBuilder); + } + + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.AnyExceptNewline; + SpanContext.ChunkGenerator = new AddImportChunkGenerator(new LocationTagged( + string.Concat(TokenBuilder.ToList().Nodes.Select(s => s.Content)), + start)); + + // Optional ";" + if (EnsureCurrent()) + { + OptionalToken(SyntaxKind.Semicolon); + } + + directiveBuilder.Add(OutputTokensAsStatementLiteral()); + var directiveBody = SyntaxFactory.CSharpDirectiveBody(keywordTokens, SyntaxFactory.CSharpCodeBlock(directiveBuilder.ToList())); + builder.Add(SyntaxFactory.CSharpDirective(transition, directiveBody)); + } + } + + private bool TryParseNamespaceOrTypeName(in SyntaxListBuilder builder) + { + if (OptionalToken(SyntaxKind.LeftParenthesis)) + { + while (!OptionalToken(SyntaxKind.RightParenthesis) && !EndOfFile) + { + OptionalToken(SyntaxKind.Whitespace); + + if (!TryParseNamespaceOrTypeName(builder)) + { + return false; + } + + OptionalToken(SyntaxKind.Whitespace); + OptionalToken(SyntaxKind.Identifier); + OptionalToken(SyntaxKind.Whitespace); + OptionalToken(SyntaxKind.Comma); + } + + if (At(SyntaxKind.Whitespace) && NextIs(SyntaxKind.QuestionMark)) + { + // Only accept the whitespace if we are going to consume the next token. + AcceptTokenAndMoveNext(); + } + + OptionalToken(SyntaxKind.QuestionMark); // Nullable + + return true; + } + else if (OptionalToken(SyntaxKind.Identifier) || OptionalToken(SyntaxKind.Keyword)) + { + if (OptionalToken(SyntaxKind.DoubleColon)) + { + if (!OptionalToken(SyntaxKind.Identifier)) + { + OptionalToken(SyntaxKind.Keyword); + } + } + if (At(SyntaxKind.LessThan)) + { + ParseTypeArgumentList(builder); + } + if (OptionalToken(SyntaxKind.Dot)) + { + TryParseNamespaceOrTypeName(builder); + } + + if (At(SyntaxKind.Whitespace) && NextIs(SyntaxKind.QuestionMark)) + { + // Only accept the whitespace if we are going to consume the next token. + AcceptTokenAndMoveNext(); + } + + OptionalToken(SyntaxKind.QuestionMark); // Nullable + + if (At(SyntaxKind.Whitespace) && NextIs(SyntaxKind.LeftBracket)) + { + // Only accept the whitespace if we are going to consume the next token. + AcceptTokenAndMoveNext(); + } + + while (At(SyntaxKind.LeftBracket)) + { + BalanceToken(builder, BalancingModes.None); + if (!OptionalToken(SyntaxKind.RightBracket)) + { + AcceptToken(SyntaxFactory.MissingToken(SyntaxKind.RightBracket)); + } + } + return true; + } + else + { + return false; + } + } + + private void ParseTypeArgumentList(in SyntaxListBuilder builder) + { + Assert(SyntaxKind.LessThan); + BalanceToken(builder, BalancingModes.None); + if (!OptionalToken(SyntaxKind.GreaterThan)) + { + AcceptToken(SyntaxFactory.MissingToken(SyntaxKind.GreaterThan)); + } + } + + private void ParseReservedDirective(SyntaxListBuilder builder, CSharpTransitionSyntax transition) + { + Context.ErrorSink.OnError( + RazorDiagnosticFactory.CreateParsing_ReservedWord( + new SourceSpan(CurrentStart, CurrentToken.Content.Length), CurrentToken.Content)); + + AcceptTokenAndMoveNext(); + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + CompleteBlock(); + var keyword = OutputAsMetaCode(OutputTokens()); + var directiveBody = SyntaxFactory.CSharpDirectiveBody(keyword, cSharpCode: null); + var directive = SyntaxFactory.CSharpDirective(transition, directiveBody); + builder.Add(directive); + } + + protected void CompleteBlock() + { + CompleteBlock(insertMarkerIfNecessary: true); + } + + protected void CompleteBlock(bool insertMarkerIfNecessary) + { + CompleteBlock(insertMarkerIfNecessary, captureWhitespaceToEndOfLine: insertMarkerIfNecessary); + } + + protected void CompleteBlock(bool insertMarkerIfNecessary, bool captureWhitespaceToEndOfLine) + { + if (insertMarkerIfNecessary && Context.LastAcceptedCharacters != AcceptedCharactersInternal.Any) + { + AcceptMarkerTokenIfNecessary(); + } + + EnsureCurrent(); + + // Read whitespace, but not newlines + // If we're not inserting a marker span, we don't need to capture whitespace + if (!Context.WhiteSpaceIsSignificantToAncestorBlock && + captureWhitespaceToEndOfLine && + !Context.DesignTimeMode && + !IsNested) + { + CaptureWhitespaceAtEndOfCodeOnlyLine(); + } + else + { + PutCurrentBack(); + } + } + + private IEnumerable SkipToNextImportantToken(in SyntaxListBuilder builder) + { + while (!EndOfFile) + { + var whitespace = ReadWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); + if (At(SyntaxKind.RazorCommentTransition)) + { + AcceptToken(whitespace); + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; + AcceptMarkerTokenIfNecessary(); + builder.Add(OutputTokensAsStatementLiteral()); + var comment = ParseRazorComment(); + builder.Add(comment); + } + else + { + return whitespace; + } + } + return Enumerable.Empty(); + } + + private void CaptureWhitespaceAtEndOfCodeOnlyLine() + { + var whitespace = ReadWhile(token => token.Kind == SyntaxKind.Whitespace); + if (At(SyntaxKind.NewLine)) + { + AcceptToken(whitespace); + AcceptTokenAndMoveNext(); + PutCurrentBack(); + } + else + { + PutCurrentBack(); + PutBack(whitespace); + } + } + + protected override bool IsAtEmbeddedTransition(bool allowTemplatesAndComments, bool allowTransitions) + { + // No embedded transitions in C#, so ignore that param + return allowTemplatesAndComments + && ((Language.IsTransition(CurrentToken) + && NextIs(SyntaxKind.LessThan, SyntaxKind.Colon, SyntaxKind.DoubleColon)) + || Language.IsCommentStart(CurrentToken)); + } + + protected override void ParseEmbeddedTransition(in SyntaxListBuilder builder) + { + if (Language.IsTransition(CurrentToken)) + { + PutCurrentBack(); + ParseTemplate(builder); + } + else if (Language.IsCommentStart(CurrentToken)) + { + // Output tokens before parsing the comment. + AcceptMarkerTokenIfNecessary(); + builder.Add(OutputTokensAsStatementLiteral()); + var comment = ParseRazorComment(); + builder.Add(comment); + } + } + + private void DefaultSpanContextConfig(SpanContextBuilder spanContext) + { + spanContext.EditHandler = SpanEditHandler.CreateDefault(Language.TokenizeString); + spanContext.ChunkGenerator = new StatementChunkGenerator(); + } + + private void ExplicitExpressionSpanContextConfig(SpanContextBuilder spanContext) + { + spanContext.EditHandler = SpanEditHandler.CreateDefault(Language.TokenizeString); + spanContext.ChunkGenerator = new ExpressionChunkGenerator(); + } + + private CSharpStatementLiteralSyntax OutputTokensAsStatementLiteral() + { + var tokens = OutputTokens(); + if (tokens.Count == 0) + { + return null; + } + + return GetNodeWithSpanContext(SyntaxFactory.CSharpStatementLiteral(tokens)); + } + + private CSharpExpressionLiteralSyntax OutputTokensAsExpressionLiteral() + { + var tokens = OutputTokens(); + if (tokens.Count == 0) + { + return null; + } + + return GetNodeWithSpanContext(SyntaxFactory.CSharpExpressionLiteral(tokens)); + } + + private CSharpHiddenLiteralSyntax OutputTokensAsHiddenLiteral() + { + var tokens = OutputTokens(); + if (tokens.Count == 0) + { + return null; + } + + return GetNodeWithSpanContext(SyntaxFactory.CSharpHiddenLiteral(tokens)); + } + + private CSharpNoneLiteralSyntax OutputTokensAsNoneLiteral() + { + var tokens = OutputTokens(); + if (tokens.Count == 0) + { + return null; + } + + + return GetNodeWithSpanContext(SyntaxFactory.CSharpNoneLiteral(tokens)); + } + + private void OtherParserBlock(in SyntaxListBuilder builder) + { + // When transitioning to the HTML parser we no longer want to act as if we're in a nested C# state. + // For instance, if
@hello.
is in a nested C# block we don't want the trailing '.' to be handled + // as C#; it should be handled as a period because it's wrapped in markup. + var wasNested = IsNested; + IsNested = false; + + RazorSyntaxNode htmlBlock = null; + using (PushSpanContextConfig()) + { + htmlBlock = HtmlParser.ParseBlock(); + } + + builder.Add(htmlBlock); + InitializeContext(SpanContext); + + IsNested = wasNested; + NextToken(); + } + } +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlLanguageCharacteristics.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlLanguageCharacteristics.cs index c404183ed..a6a2c270e 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlLanguageCharacteristics.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlLanguageCharacteristics.cs @@ -113,7 +113,7 @@ public override SyntaxKind GetKnownTokenType(KnownTokenType type) return SyntaxKind.NewLine; case KnownTokenType.Transition: return SyntaxKind.Transition; - case KnownTokenType.WhiteSpace: + case KnownTokenType.Whitespace: return SyntaxKind.Whitespace; default: return SyntaxKind.Unknown; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlMarkupParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlMarkupParser.cs index efc0d2759..a1e86703a 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlMarkupParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlMarkupParser.cs @@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { - internal class HtmlMarkupParser : TokenizerBackedParser + internal partial class HtmlMarkupParser : TokenizerBackedParser { private const string ScriptTagName = "script"; @@ -54,7 +54,7 @@ public HtmlMarkupParser(ParserContext context) { } - public ParserBase CodeParser { get; set; } + public CSharpCodeParser CodeParser { get; set; } public ISet VoidElements { @@ -234,7 +234,7 @@ private void OtherParserBlock() using (PushSpanConfig()) { - CodeParser.ParseBlock(); + CodeParser.ParseBlock1(); } Span.Start = CurrentLocation; @@ -275,7 +275,7 @@ private void OptionalBangEscape() } } - public override void ParseBlock() + public override void ParseBlock1() { if (Context == null) { @@ -418,6 +418,11 @@ private void TagBlock(Stack> tags) Accept(_bufferedOpenAngle); EndTagBlock(tags, complete: false); } + else if (atSpecialTag && At(SyntaxKind.Bang)) + { + Accept(_bufferedOpenAngle); + complete = BangTag(); + } else { complete = AfterTagStart(tagStart, tags, atSpecialTag, tagBlockWrapper); @@ -460,7 +465,7 @@ private bool AfterTagStart(SourceLocation tagStart, case SyntaxKind.ForwardSlash: // End Tag return EndTag(tagStart, tags, tagBlockWrapper); - case SyntaxKind.Bang: + case SyntaxKind.Bang: // Dead code. This case will never be hit. // Comment, CDATA, DOCTYPE, or a parser-escaped HTML tag. if (atSpecialTag) { @@ -516,7 +521,7 @@ private bool BangTag() while (!EndOfFile) { SkipToAndParseCode(SyntaxKind.DoubleHyphen); - var lastDoubleHyphen = AcceptAllButLastDoubleHyphens(); + var lastDoubleHyphen = AcceptAllButLastDoubleHyphens1(); if (At(SyntaxKind.CloseAngle)) { @@ -553,7 +558,7 @@ private bool BangTag() return false; } - protected SyntaxToken AcceptAllButLastDoubleHyphens() + protected SyntaxToken AcceptAllButLastDoubleHyphens1() { var lastDoubleHyphen = CurrentToken; AcceptWhile(s => @@ -732,7 +737,7 @@ private bool EndTag(SourceLocation tagStart, tagName = CurrentToken.Content; } - var matched = RemoveTag(tags, tagName, tagStart); + var matched = RemoveTag1(tags, tagName, tagStart); if (tags.Count == 0 && // Note tagName may contain a '!' escape character. This ensures doesn't match here. @@ -754,7 +759,7 @@ private bool EndTag(SourceLocation tagStart, } } - private void RecoverTextTag() + private void RecoverTextTag1() { // We don't want to skip-to and parse because there shouldn't be anything in the body of text tags. AcceptUntil(SyntaxKind.CloseAngle, SyntaxKind.NewLine); @@ -781,7 +786,7 @@ private bool EndTextTag(SyntaxToken solidus, IDisposable tagBlockWrapper) new SourceSpan(textLocation, contentLength: 4 /* text */))); Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; - RecoverTextTag(); + RecoverTextTag1(); } else { @@ -833,14 +838,14 @@ private void TagContent() else { // We are here ($): - while (!EndOfFile && !IsEndOfTag()) + while (!EndOfFile && !IsEndOfTag1()) { BeforeAttribute(); } } } - private bool IsEndOfTag() + private bool IsEndOfTag1() { if (At(SyntaxKind.ForwardSlash)) { @@ -1236,7 +1241,7 @@ private bool StartTag(Stack> tags, IDisposabl RazorDiagnosticFactory.CreateParsing_TextTagCannotContainAttributes( new SourceSpan(textLocation, contentLength: 4 /* text */))); - RecoverTextTag(); + RecoverTextTag1(); } else { @@ -1353,7 +1358,7 @@ private bool RestOfTag(Tuple tag, } else if (string.Equals(tagName, ScriptTagName, StringComparison.OrdinalIgnoreCase)) { - if (!CurrentScriptTagExpectsHtml()) + if (!CurrentScriptTagExpectsHtml1()) { CompleteTagBlockWithSpan(tagBlockWrapper, AcceptedCharactersInternal.None, SpanKindInternal.Markup); @@ -1465,7 +1470,7 @@ private bool AcceptUntilAll(params SyntaxKind[] endSequence) return false; } - private bool RemoveTag(Stack> tags, string tagName, SourceLocation tagStart) + private bool RemoveTag1(Stack> tags, string tagName, SourceLocation tagStart) { Tuple currentTag = null; while (tags.Count > 0) @@ -1583,7 +1588,7 @@ internal static bool IsValidAttributeNameToken(SyntaxToken token) tokenType != SyntaxKind.Unknown; } - public void ParseDocument() + public void ParseDocument1() { if (Context == null) { @@ -1674,7 +1679,7 @@ private void ScanTagInDocumentContext() // If the script tag expects javascript content then we should do minimal parsing until we reach // the end script tag. Don't want to incorrectly parse a "var tag = '';" as an HTML tag. - if (scriptTag && !CurrentScriptTagExpectsHtml()) + if (scriptTag && !CurrentScriptTagExpectsHtml1()) { Output(SpanKindInternal.Markup); tagBlock.Dispose(); @@ -1705,7 +1710,7 @@ private void ScanTagInDocumentContext() } } - private bool CurrentScriptTagExpectsHtml() + private bool CurrentScriptTagExpectsHtml1() { var blockBuilder = Context.Builder.CurrentBlock; @@ -1753,7 +1758,7 @@ private static bool IsTypeAttribute(Block block) return false; } - public void ParseRazorBlock(Tuple nestingSequences, bool caseSensitive) + public void ParseRazorBlock1(Tuple nestingSequences, bool caseSensitive) { if (Context == null) { @@ -1786,9 +1791,9 @@ private void NonNestingSection(string[] nestingSequenceComponents) { do { - SkipToAndParseCode(token => token.Kind == SyntaxKind.OpenAngle || AtEnd(nestingSequenceComponents)); + SkipToAndParseCode(token => token.Kind == SyntaxKind.OpenAngle || AtEnd1(nestingSequenceComponents)); ScanTagInDocumentContext(); - if (!EndOfFile && AtEnd(nestingSequenceComponents)) + if (!EndOfFile && AtEnd1(nestingSequenceComponents)) { break; } @@ -1825,7 +1830,7 @@ private void NestingSection(Tuple nestingSequences) } } - private bool AtEnd(string[] nestingSequenceComponents) + private bool AtEnd1(string[] nestingSequenceComponents) { EnsureCurrent(); if (string.Equals(CurrentToken.Content, nestingSequenceComponents[0], Comparison)) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlParser.cs new file mode 100644 index 000000000..707f56334 --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlParser.cs @@ -0,0 +1,1741 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax; + +namespace Microsoft.AspNetCore.Razor.Language.Legacy +{ + internal partial class HtmlMarkupParser + { + public HtmlDocumentSyntax ParseDocument() + { + if (Context == null) + { + throw new InvalidOperationException(Resources.Parser_Context_Not_Set); + } + + using (var pooledResult = Pool.Allocate()) + using (PushSpanContextConfig(DefaultMarkupSpanContext)) + { + var builder = pooledResult.Builder; + NextToken(); + while (!EndOfFile) + { + SkipToAndParseCode(builder, SyntaxKind.OpenAngle); + ParseTagInDocumentContext(builder); + } + AcceptMarkerTokenIfNecessary(); + builder.Add(OutputTokensAsHtmlLiteral()); + + var markup = SyntaxFactory.HtmlMarkupBlock(builder.ToList()); + + return SyntaxFactory.HtmlDocument(markup); + } + } + + private void SkipToAndParseCode(in SyntaxListBuilder builder, SyntaxKind type) + { + SkipToAndParseCode(builder, token => token.Kind == type); + } + + private void SkipToAndParseCode(in SyntaxListBuilder builder, Func condition) + { + SyntaxToken last = null; + var startOfLine = false; + while (!EndOfFile && !condition(CurrentToken)) + { + if (Context.NullGenerateWhitespaceAndNewLine) + { + Context.NullGenerateWhitespaceAndNewLine = false; + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + AcceptTokenWhile(token => token.Kind == SyntaxKind.Whitespace); + if (At(SyntaxKind.NewLine)) + { + AcceptTokenAndMoveNext(); + } + + builder.Add(OutputTokensAsHtmlLiteral()); + } + else if (At(SyntaxKind.NewLine)) + { + if (last != null) + { + AcceptToken(last); + } + + // Mark the start of a new line + startOfLine = true; + last = null; + AcceptTokenAndMoveNext(); + } + else if (At(SyntaxKind.Transition)) + { + var transition = CurrentToken; + NextToken(); + if (At(SyntaxKind.Transition)) + { + if (last != null) + { + AcceptToken(last); + last = null; + } + builder.Add(OutputTokensAsHtmlLiteral()); + AcceptToken(transition); + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + builder.Add(OutputTokensAsHtmlLiteral()); + AcceptTokenAndMoveNext(); + continue; // while + } + else + { + if (!EndOfFile) + { + PutCurrentBack(); + } + PutBack(transition); + } + + // Handle whitespace rewriting + if (last != null) + { + if (!Context.DesignTimeMode && last.Kind == SyntaxKind.Whitespace && startOfLine) + { + // Put the whitespace back too + startOfLine = false; + PutBack(last); + last = null; + } + else + { + // Accept last + AcceptToken(last); + last = null; + } + } + + OtherParserBlock(builder); + } + else if (At(SyntaxKind.RazorCommentTransition)) + { + if (last != null) + { + // Don't render the whitespace between the start of the line and the razor comment. + if (startOfLine && last.Kind == SyntaxKind.Whitespace) + { + AcceptMarkerTokenIfNecessary(); + // Output the tokens that may have been accepted prior to the whitespace. + builder.Add(OutputTokensAsHtmlLiteral()); + + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + } + + AcceptToken(last); + last = null; + } + + AcceptMarkerTokenIfNecessary(); + builder.Add(OutputTokensAsHtmlLiteral()); + + var comment = ParseRazorComment(); + builder.Add(comment); + + // Handle the whitespace and newline at the end of a razor comment. + if (startOfLine && + (At(SyntaxKind.NewLine) || + (At(SyntaxKind.Whitespace) && NextIs(SyntaxKind.NewLine)))) + { + AcceptTokenWhile(IsSpacingToken(includeNewLines: false)); + AcceptTokenAndMoveNext(); + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + builder.Add(OutputTokensAsHtmlLiteral()); + } + } + else + { + // As long as we see whitespace, we're still at the "start" of the line + startOfLine &= At(SyntaxKind.Whitespace); + + // If there's a last token, accept it + if (last != null) + { + AcceptToken(last); + last = null; + } + + // Advance + last = CurrentToken; + NextToken(); + } + } + + if (last != null) + { + AcceptToken(last); + } + } + + /// + /// Reads the content of a tag (if present) in the MarkupDocument (or MarkupSection) context, + /// where we don't care about maintaining a stack of tags. + /// + private void ParseTagInDocumentContext(in SyntaxListBuilder builder) + { + if (At(SyntaxKind.OpenAngle)) + { + if (NextIs(SyntaxKind.Bang)) + { + // Checking to see if we meet the conditions of a special '!' tag: ()) + { + var tagBuilder = pooledResult.Builder; + AcceptTokenAndMoveNext(); // Accept '<' + + if (!At(SyntaxKind.ForwardSlash)) + { + ParseOptionalBangEscape(tagBuilder); + + // Parsing a start tag + var scriptTag = At(SyntaxKind.Text) && + string.Equals(CurrentToken.Content, "script", StringComparison.OrdinalIgnoreCase); + OptionalToken(SyntaxKind.Text); + ParseTagContent(tagBuilder); // Parse the tag, don't care about the content + OptionalToken(SyntaxKind.ForwardSlash); + OptionalToken(SyntaxKind.CloseAngle); + + // If the script tag expects javascript content then we should do minimal parsing until we reach + // the end script tag. Don't want to incorrectly parse a "var tag = '';" as an HTML tag. + if (scriptTag && !CurrentScriptTagExpectsHtml(builder)) + { + tagBuilder.Add(OutputTokensAsHtmlLiteral()); + var block = SyntaxFactory.HtmlTagBlock(tagBuilder.ToList()); + builder.Add(block); + + SkipToEndScriptAndParseCode(builder); + return; + } + } + else + { + // Parsing an end tag + // This section can accept things like: '

' or '

' etc. + ParserState = ParserState.EndTag; + OptionalToken(SyntaxKind.ForwardSlash); + + // Whitespace here is invalid (according to the spec) + ParseOptionalBangEscape(tagBuilder); + OptionalToken(SyntaxKind.Text); + OptionalToken(SyntaxKind.Whitespace); + OptionalToken(SyntaxKind.CloseAngle); + ParserState = ParserState.Content; + } + + tagBuilder.Add(OutputTokensAsHtmlLiteral()); + + // End tag block + var tagBlock = SyntaxFactory.HtmlTagBlock(tagBuilder.ToList()); + builder.Add(tagBlock); + } + } + } + + private void ParseTagContent(in SyntaxListBuilder builder) + { + if (!At(SyntaxKind.Whitespace) && !At(SyntaxKind.NewLine)) + { + // We should be right after the tag name, so if there's no whitespace or new line, something is wrong + RecoverToEndOfTag(builder); + } + else + { + // We are here ($): + while (!EndOfFile && !IsEndOfTag()) + { + BeforeAttribute(builder); + } + } + } + + private bool IsEndOfTag() + { + if (At(SyntaxKind.ForwardSlash)) + { + if (NextIs(SyntaxKind.CloseAngle)) + { + return true; + } + else + { + AcceptTokenAndMoveNext(); + } + } + return At(SyntaxKind.CloseAngle) || At(SyntaxKind.OpenAngle); + } + + private void BeforeAttribute(in SyntaxListBuilder builder) + { + // http://dev.w3.org/html5/spec/tokenization.html#before-attribute-name-state + // Capture whitespace + var whitespace = ReadWhile(token => token.Kind == SyntaxKind.Whitespace || token.Kind == SyntaxKind.NewLine); + + if (At(SyntaxKind.Transition) || At(SyntaxKind.RazorCommentTransition)) + { + // Transition outside of attribute value => Switch to recovery mode + AcceptToken(whitespace); + RecoverToEndOfTag(builder); + return; + } + + // http://dev.w3.org/html5/spec/tokenization.html#attribute-name-state + // Read the 'name' (i.e. read until the '=' or whitespace/newline) + var nameTokens = Enumerable.Empty(); + var whitespaceAfterAttributeName = Enumerable.Empty(); + if (IsValidAttributeNameToken(CurrentToken)) + { + nameTokens = ReadWhile(token => + token.Kind != SyntaxKind.Whitespace && + token.Kind != SyntaxKind.NewLine && + token.Kind != SyntaxKind.Equals && + token.Kind != SyntaxKind.CloseAngle && + token.Kind != SyntaxKind.OpenAngle && + (token.Kind != SyntaxKind.ForwardSlash || !NextIs(SyntaxKind.CloseAngle))); + + // capture whitespace after attribute name (if any) + whitespaceAfterAttributeName = ReadWhile( + token => token.Kind == SyntaxKind.Whitespace || token.Kind == SyntaxKind.NewLine); + } + else + { + // Unexpected character in tag, enter recovery + AcceptToken(whitespace); + RecoverToEndOfTag(builder); + return; + } + + if (!At(SyntaxKind.Equals)) + { + // Minimized attribute + + // We are at the prefix of the next attribute or the end of tag. Put it back so it is parsed later. + PutCurrentBack(); + PutBack(whitespaceAfterAttributeName); + + // Output anything prior to the attribute, in most cases this will be the tag name: + // |. If in-between other attributes this will noop or output malformed attribute + // content (if the previous attribute was malformed). + builder.Add(OutputTokensAsHtmlLiteral()); + + AcceptToken(whitespace); + var namePrefix = OutputTokensAsHtmlLiteral(); + AcceptToken(nameTokens); + var name = OutputTokensAsHtmlLiteral(); + + var minimizedAttributeBlock = SyntaxFactory.HtmlMinimizedAttributeBlock(namePrefix, name); + builder.Add(minimizedAttributeBlock); + + return; + } + + // Not a minimized attribute, parse as if it were well-formed (if attribute turns out to be malformed we + // will go into recovery). + builder.Add(OutputTokensAsHtmlLiteral()); + + var attributeBlock = ParseAttributePrefix(whitespace, nameTokens, whitespaceAfterAttributeName); + + builder.Add(attributeBlock); + } + + private HtmlAttributeBlockSyntax ParseAttributePrefix( + IEnumerable whitespace, + IEnumerable nameTokens, + IEnumerable whitespaceAfterAttributeName) + { + // First, determine if this is a 'data-' attribute (since those can't use conditional attributes) + var nameContent = string.Concat(nameTokens.Select(s => s.Content)); + var attributeCanBeConditional = + Context.FeatureFlags.EXPERIMENTAL_AllowConditionalDataDashAttributes || + !nameContent.StartsWith("data-", StringComparison.OrdinalIgnoreCase); + + // Accept the whitespace and name + AcceptToken(whitespace); + var namePrefix = OutputTokensAsHtmlLiteral(); + AcceptToken(nameTokens); + var name = OutputTokensAsHtmlLiteral(); + + // Since this is not a minimized attribute, the whitespace after attribute name belongs to this attribute. + AcceptToken(whitespaceAfterAttributeName); + var nameSuffix = OutputTokensAsHtmlLiteral(); + Assert(SyntaxKind.Equals); // We should be at "=" + var equalsToken = EatCurrentToken(); + + var whitespaceAfterEquals = ReadWhile(token => token.Kind == SyntaxKind.Whitespace || token.Kind == SyntaxKind.NewLine); + var quote = SyntaxKind.Unknown; + if (At(SyntaxKind.SingleQuote) || At(SyntaxKind.DoubleQuote)) + { + // Found a quote, the whitespace belongs to this attribute. + AcceptToken(whitespaceAfterEquals); + quote = CurrentToken.Kind; + AcceptTokenAndMoveNext(); + } + else if (whitespaceAfterEquals.Any()) + { + // No quotes found after the whitespace. Put it back so that it can be parsed later. + PutCurrentBack(); + PutBack(whitespaceAfterEquals); + } + + HtmlTextLiteralSyntax valuePrefix = null; + HtmlBlockSyntax attributeValue = null; + HtmlTextLiteralSyntax valueSuffix = null; + + if (attributeCanBeConditional) + { + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; // The block chunk generator will render the prefix + + // We now have the value prefix which is usually whitespace and/or a quote + valuePrefix = OutputTokensAsHtmlLiteral(); + + // Read the attribute value only if the value is quoted + // or if there is no whitespace between '=' and the unquoted value. + if (quote != SyntaxKind.Unknown || !whitespaceAfterEquals.Any()) + { + using (var pooledResult = Pool.Allocate()) + { + var attributeValueBuilder = pooledResult.Builder; + // Read the attribute value. + while (!EndOfFile && !IsEndOfAttributeValue(quote, CurrentToken)) + { + ParseAttributeValue(attributeValueBuilder, quote); + } + + attributeValue = SyntaxFactory.HtmlBlock(attributeValueBuilder.ToList()); + } + } + + // Capture the suffix + if (quote != SyntaxKind.Unknown && At(quote)) + { + AcceptTokenAndMoveNext(); + // Again, block chunk generator will render the suffix + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + valueSuffix = OutputTokensAsHtmlLiteral(); + } + } + else if (quote != SyntaxKind.Unknown || !whitespaceAfterEquals.Any()) + { + valuePrefix = OutputTokensAsHtmlLiteral(); + + using (var pooledResult = Pool.Allocate()) + { + var attributeValueBuilder = pooledResult.Builder; + // Not a "conditional" attribute, so just read the value + SkipToAndParseCode(attributeValueBuilder, token => IsEndOfAttributeValue(quote, token)); + + // Capture the attribute value (will include everything in-between the attribute's quotes). + attributeValue = SyntaxFactory.HtmlBlock(attributeValueBuilder.ToList()); + } + + if (quote != SyntaxKind.Unknown) + { + OptionalToken(quote); + valueSuffix = OutputTokensAsHtmlLiteral(); + } + } + else + { + // There is no quote and there is whitespace after equals. There is no attribute value. + } + + return SyntaxFactory.HtmlAttributeBlock(namePrefix, name, nameSuffix, equalsToken, valuePrefix, attributeValue, valueSuffix); + } + + private void ParseAttributeValue(in SyntaxListBuilder builder, SyntaxKind quote) + { + var prefixStart = CurrentStart; + var prefixTokens = ReadWhile(token => token.Kind == SyntaxKind.Whitespace || token.Kind == SyntaxKind.NewLine); + + if (At(SyntaxKind.Transition)) + { + if (NextIs(SyntaxKind.Transition)) + { + // Wrapping this in a block so that the ConditionalAttributeCollapser doesn't rewrite it. + using (var pooledResult = Pool.Allocate()) + { + var markupBuilder = pooledResult.Builder; + AcceptToken(prefixTokens); + + // Render a single "@" in place of "@@". + SpanContext.ChunkGenerator = new LiteralAttributeChunkGenerator( + new LocationTagged(string.Concat(prefixTokens.Select(s => s.Content)), prefixStart), + new LocationTagged(CurrentToken.Content, CurrentStart)); + AcceptTokenAndMoveNext(); + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; + markupBuilder.Add(OutputTokensAsHtmlLiteral()); + + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + AcceptTokenAndMoveNext(); + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; + markupBuilder.Add(OutputTokensAsHtmlLiteral()); + + var markupBlock = SyntaxFactory.HtmlMarkupBlock(markupBuilder.ToList()); + builder.Add(markupBlock); + } + } + else + { + AcceptToken(prefixTokens); + var valueStart = CurrentStart; + PutCurrentBack(); + + var prefix = OutputTokensAsHtmlLiteral(); + + // Dynamic value, start a new block and set the chunk generator + using (var pooledResult = Pool.Allocate()) + { + var dynamicAttributeValueBuilder = pooledResult.Builder; + + OtherParserBlock(dynamicAttributeValueBuilder); + var value = SyntaxFactory.HtmlDynamicAttributeValue(prefix, SyntaxFactory.HtmlBlock(dynamicAttributeValueBuilder.ToList())); + builder.Add(value); + } + } + } + else + { + AcceptToken(prefixTokens); + var prefix = OutputTokensAsHtmlLiteral(); + + // Literal value + // 'quote' should be "Unknown" if not quoted and tokens coming from the tokenizer should never have + // "Unknown" type. + var valueTokens = ReadWhile(token => + // These three conditions find separators which break the attribute value into portions + token.Kind != SyntaxKind.Whitespace && + token.Kind != SyntaxKind.NewLine && + token.Kind != SyntaxKind.Transition && + // This condition checks for the end of the attribute value (it repeats some of the checks above + // but for now that's ok) + !IsEndOfAttributeValue(quote, token)); + AcceptToken(valueTokens); + var value = OutputTokensAsHtmlLiteral(); + + var literalAttributeValue = SyntaxFactory.HtmlLiteralAttributeValue(prefix, value); + builder.Add(literalAttributeValue); + } + } + + private void RecoverToEndOfTag(in SyntaxListBuilder builder) + { + // Accept until ">", "/" or "<", but parse code + while (!EndOfFile) + { + SkipToAndParseCode(builder, IsTagRecoveryStopPoint); + if (!EndOfFile) + { + EnsureCurrent(); + switch (CurrentToken.Kind) + { + case SyntaxKind.SingleQuote: + case SyntaxKind.DoubleQuote: + ParseQuoted(builder); + break; + case SyntaxKind.OpenAngle: + // Another "<" means this tag is invalid. + case SyntaxKind.ForwardSlash: + // Empty tag + case SyntaxKind.CloseAngle: + // End of tag + return; + default: + AcceptTokenAndMoveNext(); + break; + } + } + } + } + + private void ParseQuoted(in SyntaxListBuilder builder) + { + var type = CurrentToken.Kind; + AcceptTokenAndMoveNext(); + ParseQuoted(builder, type); + } + + private void ParseQuoted(in SyntaxListBuilder builder, SyntaxKind type) + { + SkipToAndParseCode(builder, type); + if (!EndOfFile) + { + Assert(type); + AcceptTokenAndMoveNext(); + } + } + + private bool ParseBangTag(in SyntaxListBuilder builder) + { + // Accept "!" + Assert(SyntaxKind.Bang); + + if (AcceptTokenAndMoveNext()) + { + if (IsHtmlCommentAhead()) + { + using (var pooledResult = Pool.Allocate()) + { + var htmlCommentBuilder = pooledResult.Builder; + + // Accept the double-hyphen token at the beginning of the comment block. + AcceptTokenAndMoveNext(); + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; + htmlCommentBuilder.Add(OutputTokensAsHtmlLiteral()); + + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Whitespace; + while (!EndOfFile) + { + SkipToAndParseCode(htmlCommentBuilder, SyntaxKind.DoubleHyphen); + var lastDoubleHyphen = AcceptAllButLastDoubleHyphens(); + + if (At(SyntaxKind.CloseAngle)) + { + // Output the content in the comment block as a separate markup + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Whitespace; + htmlCommentBuilder.Add(OutputTokensAsHtmlLiteral()); + + // This is the end of a comment block + AcceptToken(lastDoubleHyphen); + AcceptTokenAndMoveNext(); + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; + htmlCommentBuilder.Add(OutputTokensAsHtmlLiteral()); + var commentBlock = SyntaxFactory.HtmlCommentBlock(htmlCommentBuilder.ToList()); + builder.Add(commentBlock); + return true; + } + else if (lastDoubleHyphen != null) + { + AcceptToken(lastDoubleHyphen); + } + } + } + } + else if (CurrentToken.Kind == SyntaxKind.LeftBracket) + { + if (AcceptTokenAndMoveNext()) + { + return TryParseCData(builder); + } + } + else + { + AcceptTokenAndMoveNext(); + return AcceptTokenUntilAll(builder, SyntaxKind.CloseAngle); + } + } + + return false; + } + + private bool TryParseCData(in SyntaxListBuilder builder) + { + if (CurrentToken.Kind == SyntaxKind.Text && string.Equals(CurrentToken.Content, "cdata", StringComparison.OrdinalIgnoreCase)) + { + if (AcceptTokenAndMoveNext()) + { + if (CurrentToken.Kind == SyntaxKind.LeftBracket) + { + return AcceptTokenUntilAll(builder, SyntaxKind.RightBracket, SyntaxKind.RightBracket, SyntaxKind.CloseAngle); + } + } + } + + return false; + } + + private bool TryParseXmlPI(in SyntaxListBuilder builder) + { + // Accept "?" + Assert(SyntaxKind.QuestionMark); + AcceptTokenAndMoveNext(); + return AcceptTokenUntilAll(builder, SyntaxKind.QuestionMark, SyntaxKind.CloseAngle); + } + + private void ParseOptionalBangEscape(in SyntaxListBuilder builder) + { + if (IsBangEscape(lookahead: 0)) + { + builder.Add(OutputTokensAsHtmlLiteral()); + + // Accept the parser escape character '!'. + Assert(SyntaxKind.Bang); + AcceptTokenAndMoveNext(); + + // Setup the metacode span that we will be outputing. + SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + builder.Add(OutputAsMetaCode(OutputTokens())); + } + } + + private void SkipToEndScriptAndParseCode(in SyntaxListBuilder builder, AcceptedCharactersInternal endTagAcceptedCharacters = AcceptedCharactersInternal.Any) + { + // Special case for ] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..36) - FullWidth: 36 - [] + MarkupBlock - [0..36) - FullWidth: 36 + MarkupTagBlock - [0..8) - FullWidth: 8 + MarkupTextLiteral - [0..8) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[script]; + CloseAngle;[>]; + MarkupTextLiteral - [8..21) - FullWidth: 13 - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + OpenAngle;[<]; + Text;[bar]; + Whitespace;[ ]; + Text;[baz]; + Equals;[=]; + SingleQuote;[']; + CSharpCodeBlock - [21..25) - FullWidth: 4 + CSharpImplicitExpression - [21..25) - FullWidth: 4 + CSharpTransition - [21..22) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [22..25) - FullWidth: 3 + CSharpCodeBlock - [22..25) - FullWidth: 3 + CSharpExpressionLiteral - [22..25) - FullWidth: 3 - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[boz]; + MarkupTextLiteral - [25..27) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + CloseAngle;[>]; + MarkupTagBlock - [27..36) - FullWidth: 9 + MarkupTextLiteral - [27..36) - FullWidth: 9 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/NestedCodeBlockWithMarkupSetsDotAsMarkup.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/NestedCodeBlockWithMarkupSetsDotAsMarkup.stree.txt index 4de831cbb..6450d7ca8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/NestedCodeBlockWithMarkupSetsDotAsMarkup.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/NestedCodeBlockWithMarkupSetsDotAsMarkup.stree.txt @@ -1,55 +1,59 @@ -Markup block - Gen - 52 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 52 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [if (true) { ] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:8 - SyntaxKind.Keyword;[if]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - Statement block - Gen - 37 - (13:0,13) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [if(false) {] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:6 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[false]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 24 - (25:0,25) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 5 - (26:0,26) - Markup span - Gen - [
] - SpanEditHandler;Accepts:None - (26:0,26) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.Unknown;[]; - Expression block - Gen - 10 - (31:0,31) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [something] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (32:0,32) - Tokens:1 - SyntaxKind.Identifier;[something]; - Markup span - Gen - [.] - SpanEditHandler;Accepts:Any - (41:0,41) - Tokens:1 - SyntaxKind.Text;[.]; - Tag block - Gen - 6 - (42:0,42) - Markup span - Gen - [
] - SpanEditHandler;Accepts:None - (42:0,42) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (48:0,48) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [}] - SpanEditHandler;Accepts:Any - (49:0,49) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Code span - Gen - [ }] - SpanEditHandler;Accepts:Any - (50:0,50) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +RazorDocument - [0..52) - FullWidth: 52 - [@if (true) { @if(false) {
@something.
} }] + MarkupBlock - [0..52) - FullWidth: 52 + MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..52) - FullWidth: 52 + CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..13) - FullWidth: 12 - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + CSharpCodeBlock - [13..50) - FullWidth: 37 + CSharpTransition - [13..14) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [14..25) - FullWidth: 11 - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[false]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + MarkupBlock - [25..49) - FullWidth: 24 + MarkupTextLiteral - [25..26) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [26..31) - FullWidth: 5 + MarkupTextLiteral - [26..31) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [31..31) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [31..41) - FullWidth: 10 + CSharpImplicitExpression - [31..41) - FullWidth: 10 + CSharpTransition - [31..32) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [32..41) - FullWidth: 9 + CSharpCodeBlock - [32..41) - FullWidth: 9 + CSharpExpressionLiteral - [32..41) - FullWidth: 9 - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[something]; + MarkupTextLiteral - [41..42) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + Text;[.]; + MarkupTagBlock - [42..48) - FullWidth: 6 + MarkupTextLiteral - [42..48) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [48..49) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [49..50) - FullWidth: 1 - Gen - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 + RightBrace;[}]; + CSharpStatementLiteral - [50..52) - FullWidth: 2 - Gen - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/NoLongerSupportsDollarOpenBraceCombination.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/NoLongerSupportsDollarOpenBraceCombination.stree.txt index f2a68845e..2923e610c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/NoLongerSupportsDollarOpenBraceCombination.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/NoLongerSupportsDollarOpenBraceCombination.stree.txt @@ -1,14 +1,15 @@ -Markup block - Gen - 17 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [${bar}] - [5..11) - FullWidth: 6 - Slots: 1 - SyntaxKind.Text;[${bar}]; - Tag block - Gen - 6 - (11:0,11) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..17) - FullWidth: 17 - [${bar}] + MarkupBlock - [0..17) - FullWidth: 17 + MarkupTagBlock - [0..5) - FullWidth: 5 + MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [5..11) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + Text;[${bar}]; + MarkupTagBlock - [11..17) - FullWidth: 6 + MarkupTextLiteral - [11..17) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/OutputsEmptyBlockWithEmptyMarkupSpanIfContentIsEmptyString.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/OutputsEmptyBlockWithEmptyMarkupSpanIfContentIsEmptyString.stree.txt index df48ed419..4e3000082 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/OutputsEmptyBlockWithEmptyMarkupSpanIfContentIsEmptyString.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/OutputsEmptyBlockWithEmptyMarkupSpanIfContentIsEmptyString.stree.txt @@ -1,3 +1,4 @@ -Markup block - Gen - 0 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..0) - FullWidth: 0 - [] + MarkupBlock - [0..0) - FullWidth: 0 + MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/OutputsWhitespaceOnlyContentAsSingleWhitespaceMarkupSpan.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/OutputsWhitespaceOnlyContentAsSingleWhitespaceMarkupSpan.stree.txt index e22974936..f51e794b2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/OutputsWhitespaceOnlyContentAsSingleWhitespaceMarkupSpan.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/OutputsWhitespaceOnlyContentAsSingleWhitespaceMarkupSpan.stree.txt @@ -1,3 +1,4 @@ -Markup block - Gen - 10 - (0:0,0) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Whitespace;[ ]; +RazorDocument - [0..10) - FullWidth: 10 - [ ] + MarkupBlock - [0..10) - FullWidth: 10 + MarkupTextLiteral - [0..10) - FullWidth: 10 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParseDocumentDoesNotSwitchToCodeOnEmailAddressInText.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParseDocumentDoesNotSwitchToCodeOnEmailAddressInText.stree.txt index 6c9f0060a..b40a8668c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParseDocumentDoesNotSwitchToCodeOnEmailAddressInText.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParseDocumentDoesNotSwitchToCodeOnEmailAddressInText.stree.txt @@ -1,3 +1,4 @@ -Markup block - Gen - 21 - (0:0,0) - Markup span - Gen - [example@microsoft.com] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Text;[example@microsoft.com]; +RazorDocument - [0..21) - FullWidth: 21 - [example@microsoft.com] + MarkupBlock - [0..21) - FullWidth: 21 + MarkupTextLiteral - [0..21) - FullWidth: 21 - Gen - SpanEditHandler;Accepts:Any + Text;[example@microsoft.com]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParseSectionIgnoresTagsInContentsOfScriptTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParseSectionIgnoresTagsInContentsOfScriptTag.stree.txt index 9b49f113c..255197a72 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParseSectionIgnoresTagsInContentsOfScriptTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParseSectionIgnoresTagsInContentsOfScriptTag.stree.txt @@ -1,52 +1,59 @@ -Markup block - Gen - 53 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 53 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [section] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[section]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (8:0,8) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [Foo] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (9:0,9) - Tokens:1 - SyntaxKind.Identifier;[Foo]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:AllWhitespace - (12:0,12) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - MetaCode span - Gen - [{] - AutoCompleteEditHandler;Accepts:None,AutoComplete:[];AtEnd - (13:0,13) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 38 - (14:0,14) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 8 - (15:0,15) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (42:0,42) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (51:0,51) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (52:0,52) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (53:0,53) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..53) - FullWidth: 53 - [@section Foo { }] + MarkupBlock - [0..53) - FullWidth: 53 + MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..53) - FullWidth: 53 + RazorDirective - [0..53) - FullWidth: 53 + CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..53) - FullWidth: 52 + RazorMetaCode - [1..8) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + Identifier;[section]; + CSharpCodeBlock - [8..53) - FullWidth: 45 + CSharpStatementLiteral - [8..9) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [9..12) - FullWidth: 3 - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[Foo]; + MarkupTextLiteral - [12..13) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:AllWhitespace + Whitespace;[ ]; + RazorMetaCode - [13..14) - FullWidth: 1 - Gen - AutoCompleteEditHandler;Accepts:None,AutoComplete:[];AtEnd + LeftBrace;[{]; + MarkupBlock - [14..52) - FullWidth: 38 + MarkupTextLiteral - [14..15) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [15..23) - FullWidth: 8 + MarkupTextLiteral - [15..23) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[script]; + CloseAngle;[>]; + MarkupTextLiteral - [23..36) - FullWidth: 13 - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + OpenAngle;[<]; + Text;[bar]; + Whitespace;[ ]; + Text;[baz]; + Equals;[=]; + SingleQuote;[']; + CSharpCodeBlock - [36..40) - FullWidth: 4 + CSharpImplicitExpression - [36..40) - FullWidth: 4 + CSharpTransition - [36..37) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [37..40) - FullWidth: 3 + CSharpCodeBlock - [37..40) - FullWidth: 3 + CSharpExpressionLiteral - [37..40) - FullWidth: 3 - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K15 + Identifier;[boz]; + MarkupTextLiteral - [40..42) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + CloseAngle;[>]; + MarkupTagBlock - [42..51) - FullWidth: 9 + MarkupTextLiteral - [42..51) - FullWidth: 9 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; + MarkupTextLiteral - [51..52) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RazorMetaCode - [52..53) - FullWidth: 1 - Gen - ImplicitExpressionEditHandler;Accepts:None;ImplicitExpression[RTD];K15 + RightBrace;[}]; + MarkupTextLiteral - [53..53) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParsesWholeContentAsOneSpanIfNoSwapCharacterEncountered.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParsesWholeContentAsOneSpanIfNoSwapCharacterEncountered.stree.txt index 5cf09d83c..b8fbb1060 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParsesWholeContentAsOneSpanIfNoSwapCharacterEncountered.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParsesWholeContentAsOneSpanIfNoSwapCharacterEncountered.stree.txt @@ -1,5 +1,6 @@ -Markup block - Gen - 7 - (0:0,0) - Markup span - Gen - [foo baz] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.Text;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[baz]; +RazorDocument - [0..7) - FullWidth: 7 - [foo baz] + MarkupBlock - [0..7) - FullWidth: 7 + MarkupTextLiteral - [0..7) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + Whitespace;[ ]; + Text;[baz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersExtraNewlineAtTheEndTextTagInVerbatimBlockIfFollowedByHtml.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersExtraNewlineAtTheEndTextTagInVerbatimBlockIfFollowedByHtml.stree.txt index 16d62d841..3f6aa2076 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersExtraNewlineAtTheEndTextTagInVerbatimBlockIfFollowedByHtml.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersExtraNewlineAtTheEndTextTagInVerbatimBlockIfFollowedByHtml.stree.txt @@ -1,42 +1,46 @@ -Markup block - Gen - 38 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 32 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 19 - (2:0,2) - Tag block - Gen - 6 - (2:0,2) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (2:0,2) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Blah] - SpanEditHandler;Accepts:None - (8:0,8) - Tokens:1 - SyntaxKind.Text;[Blah]; - Tag block - Gen - 7 - (12:0,12) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:None - (19:0,19) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 10 - (21:1,0) - Tag block - Gen - 8 - (21:1,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (21:1,0) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[input]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:None - (29:1,8) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (31:2,0) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (31:2,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Tag block - Gen - 6 - (32:2,1) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (32:2,1) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[html]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..38) - FullWidth: 38 - [@{BlahLFLF}] + MarkupBlock - [0..38) - FullWidth: 38 + MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..32) - FullWidth: 32 + CSharpStatement - [0..32) - FullWidth: 32 + CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..32) - FullWidth: 31 + RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..31) - FullWidth: 29 + MarkupBlock - [2..21) - FullWidth: 19 + MarkupTagBlock - [2..8) - FullWidth: 6 + MarkupTransition - [2..8) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [8..12) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + Text;[Blah]; + MarkupTagBlock - [12..19) - FullWidth: 7 + MarkupTransition - [12..19) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [19..21) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:None + NewLine;[LF]; + MarkupBlock - [21..31) - FullWidth: 10 + MarkupTagBlock - [21..29) - FullWidth: 8 + MarkupTextLiteral - [21..29) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[input]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTextLiteral - [29..31) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:None + NewLine;[LF]; + CSharpStatementLiteral - [31..31) - FullWidth: 0 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + Marker;[]; + RazorMetaCode - [31..32) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTagBlock - [32..38) - FullWidth: 6 + MarkupTextLiteral - [32..38) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[html]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersNewlineAfterTextTagInVerbatimBlockIfFollowedByMarkupTransition.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersNewlineAfterTextTagInVerbatimBlockIfFollowedByMarkupTransition.stree.txt index e0d845243..eb8bd65f2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersNewlineAfterTextTagInVerbatimBlockIfFollowedByMarkupTransition.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersNewlineAfterTextTagInVerbatimBlockIfFollowedByMarkupTransition.stree.txt @@ -1,42 +1,46 @@ -Markup block - Gen - 37 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 31 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 19 - (2:0,2) - Tag block - Gen - 6 - (2:0,2) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (2:0,2) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Blah] - SpanEditHandler;Accepts:None - (8:0,8) - Tokens:1 - SyntaxKind.Text;[Blah]; - Tag block - Gen - 7 - (12:0,12) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:None - (19:0,19) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 9 - (21:1,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (21:1,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [:] - SpanEditHandler;Accepts:Any - (22:1,1) - Tokens:1 - SyntaxKind.Colon;[:]; - Markup span - Gen - [ BlehLF] - SpanEditHandler;Accepts:None - (23:1,2) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Bleh]; - SyntaxKind.NewLine;[LF]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (30:2,0) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (30:2,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Tag block - Gen - 6 - (31:2,1) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (31:2,1) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[html]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..37) - FullWidth: 37 - [@{BlahLF@: BlehLF}] + MarkupBlock - [0..37) - FullWidth: 37 + MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..31) - FullWidth: 31 + CSharpStatement - [0..31) - FullWidth: 31 + CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..31) - FullWidth: 30 + RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..30) - FullWidth: 28 + MarkupBlock - [2..21) - FullWidth: 19 + MarkupTagBlock - [2..8) - FullWidth: 6 + MarkupTransition - [2..8) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [8..12) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + Text;[Blah]; + MarkupTagBlock - [12..19) - FullWidth: 7 + MarkupTransition - [12..19) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [19..21) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:None + NewLine;[LF]; + MarkupBlock - [21..30) - FullWidth: 9 + MarkupTransition - [21..22) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorMetaCode - [22..23) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + Colon;[:]; + MarkupTextLiteral - [23..30) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Text;[Bleh]; + NewLine;[LF]; + CSharpStatementLiteral - [30..30) - FullWidth: 0 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + Marker;[]; + RazorMetaCode - [30..31) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTagBlock - [31..37) - FullWidth: 6 + MarkupTextLiteral - [31..37) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[html]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersTextPseudoTagAsMarkup.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersTextPseudoTagAsMarkup.stree.txt index 3e301a21b..77e5a0492 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersTextPseudoTagAsMarkup.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersTextPseudoTagAsMarkup.stree.txt @@ -1,17 +1,18 @@ -Markup block - Gen - 20 - (0:0,0) - Markup span - Gen - [Foo ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:2 - SyntaxKind.Text;[Foo]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 6 - (4:0,4) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [Foo] - [10..13) - FullWidth: 3 - Slots: 1 - SyntaxKind.Text;[Foo]; - Tag block - Gen - 7 - (13:0,13) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..20) - FullWidth: 20 - [Foo Foo] + MarkupBlock - [0..20) - FullWidth: 20 + MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + Whitespace;[ ]; + MarkupTagBlock - [4..10) - FullWidth: 6 + MarkupTextLiteral - [4..10) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [10..13) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTagBlock - [13..20) - FullWidth: 7 + MarkupTextLiteral - [13..20) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ReturnsOneMarkupSegmentIfNoCodeBlocksEncountered.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ReturnsOneMarkupSegmentIfNoCodeBlocksEncountered.stree.txt index 20d868ac4..53ac9fc97 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ReturnsOneMarkupSegmentIfNoCodeBlocksEncountered.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ReturnsOneMarkupSegmentIfNoCodeBlocksEncountered.stree.txt @@ -1,25 +1,26 @@ -Markup block - Gen - 30 - (0:0,0) - Markup span - Gen - [Foo Baz] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.Text;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Baz]; - HtmlComment block - Gen - 10 - (7:0,7) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (14:0,14) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.Text;[Bar]; - Markup span - Gen - [Bar] - SpanEditHandler;Accepts:None - (62:1,58) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:None - (65:1,61) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (67:2,0) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (67:2,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (68:2,1) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..68) - FullWidth: 68 - [@{LF LF}] + MarkupBlock - [0..68) - FullWidth: 68 + MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..68) - FullWidth: 68 + CSharpStatement - [0..68) - FullWidth: 68 + CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..68) - FullWidth: 67 + RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..67) - FullWidth: 65 + CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [4..67) - FullWidth: 63 + MarkupTextLiteral - [4..8) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupCommentBlock - [8..65) - FullWidth: 57 + MarkupTextLiteral - [8..12) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Bang;[!]; + DoubleHyphen;[--]; + MarkupTextLiteral - [12..62) - FullWidth: 50 - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + Text;[Hello,]; + Whitespace;[ ]; + Text;[I]; + SingleQuote;[']; + Text;[m]; + Whitespace;[ ]; + Text;[a]; + Whitespace;[ ]; + Text;[comment]; + Whitespace;[ ]; + Text;[that]; + Whitespace;[ ]; + Text;[shouldn]; + SingleQuote;[']; + Text;[t]; + Whitespace;[ ]; + Text;[break]; + Whitespace;[ ]; + Text;[razor]; + Whitespace;[ ]; + Text;[-]; + MarkupTextLiteral - [62..65) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTextLiteral - [65..67) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:None + NewLine;[LF]; + CSharpStatementLiteral - [67..67) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [67..68) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [68..68) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HtmlCommentSupportsMultipleDashes.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HtmlCommentSupportsMultipleDashes.stree.txt index 3679bca5b..e4bd554c9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HtmlCommentSupportsMultipleDashes.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HtmlCommentSupportsMultipleDashes.stree.txt @@ -1,133 +1,134 @@ -Markup block - Gen - 165 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [
] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - HtmlComment block - Gen - 22 - (5:0,5) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (27:0,27) - Markup span - Gen - [
] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [LF] - [33..35) - FullWidth: 2 - Slots: 1 - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 5 - (35:1,0) - Markup span - Gen - [
] - SpanEditHandler;Accepts:Any - (35:1,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - HtmlComment block - Gen - 24 - (40:1,5) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (61:1,26) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (64:1,29) - Markup span - Gen - [
] - SpanEditHandler;Accepts:Any - (64:1,29) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [LF] - [70..72) - FullWidth: 2 - Slots: 1 - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 5 - (72:2,0) - Markup span - Gen - [
] - SpanEditHandler;Accepts:Any - (72:2,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - HtmlComment block - Gen - 26 - (77:2,5) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (100:2,28) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (103:2,31) - Markup span - Gen - [
] - SpanEditHandler;Accepts:Any - (103:2,31) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [LF] - [109..111) - FullWidth: 2 - Slots: 1 - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 5 - (111:3,0) - Markup span - Gen - [
] - SpanEditHandler;Accepts:Any - (111:3,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - HtmlComment block - Gen - 41 - (116:3,5) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (154:3,43) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (157:3,46) - Markup span - Gen - [
] - SpanEditHandler;Accepts:Any - (157:3,46) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (163:3,52) - Tokens:1 - SyntaxKind.NewLine;[LF]; +RazorDocument - [0..165) - FullWidth: 165 - [
LF
LF
LF
LF] + MarkupBlock - [0..165) - FullWidth: 165 + MarkupTagBlock - [0..5) - FullWidth: 5 + MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupCommentBlock - [5..27) - FullWidth: 22 + MarkupTextLiteral - [5..9) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Bang;[!]; + DoubleHyphen;[--]; + MarkupTextLiteral - [9..24) - FullWidth: 15 - Gen - SpanEditHandler;Accepts:Whitespace + Text;[-]; + Whitespace;[ ]; + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + Whitespace;[ ]; + Text;[-]; + MarkupTextLiteral - [24..27) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTagBlock - [27..33) - FullWidth: 6 + MarkupTextLiteral - [27..33) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [33..35) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupTagBlock - [35..40) - FullWidth: 5 + MarkupTextLiteral - [35..40) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupCommentBlock - [40..64) - FullWidth: 24 + MarkupTextLiteral - [40..44) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Bang;[!]; + DoubleHyphen;[--]; + MarkupTextLiteral - [44..61) - FullWidth: 17 - Gen - SpanEditHandler;Accepts:Whitespace + DoubleHyphen;[--]; + Whitespace;[ ]; + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + Whitespace;[ ]; + DoubleHyphen;[--]; + MarkupTextLiteral - [61..64) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTagBlock - [64..70) - FullWidth: 6 + MarkupTextLiteral - [64..70) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [70..72) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupTagBlock - [72..77) - FullWidth: 5 + MarkupTextLiteral - [72..77) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupCommentBlock - [77..103) - FullWidth: 26 + MarkupTextLiteral - [77..81) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Bang;[!]; + DoubleHyphen;[--]; + MarkupTextLiteral - [81..100) - FullWidth: 19 - Gen - SpanEditHandler;Accepts:Whitespace + DoubleHyphen;[--]; + Text;[-]; + Whitespace;[ ]; + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + Whitespace;[ ]; + DoubleHyphen;[--]; + Text;[-]; + MarkupTextLiteral - [100..103) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTagBlock - [103..109) - FullWidth: 6 + MarkupTextLiteral - [103..109) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [109..111) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupTagBlock - [111..116) - FullWidth: 5 + MarkupTextLiteral - [111..116) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupCommentBlock - [116..157) - FullWidth: 41 + MarkupTextLiteral - [116..120) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Bang;[!]; + DoubleHyphen;[--]; + MarkupTextLiteral - [120..154) - FullWidth: 34 - Gen - SpanEditHandler;Accepts:Whitespace + DoubleHyphen;[--]; + Text;[-]; + Whitespace;[ ]; + Text;[Hello]; + Whitespace;[ ]; + OpenAngle;[<]; + Whitespace;[ ]; + DoubleHyphen;[--]; + Text;[-]; + Whitespace;[ ]; + CloseAngle;[>]; + Whitespace;[ ]; + Text;[World]; + Whitespace;[ ]; + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + Whitespace;[ ]; + DoubleHyphen;[--]; + Text;[-]; + MarkupTextLiteral - [154..157) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTagBlock - [157..163) - FullWidth: 6 + MarkupTextLiteral - [157..163) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [163..165) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/IgnoresTagsInContentsOfScriptTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/IgnoresTagsInContentsOfScriptTag.stree.txt index d60e3e493..98eb40f52 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/IgnoresTagsInContentsOfScriptTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/IgnoresTagsInContentsOfScriptTag.stree.txt @@ -1,28 +1,31 @@ -Markup block - Gen - 36 - (0:0,0) - Tag block - Gen - 8 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (27:0,27) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..36) - FullWidth: 36 - [] + MarkupTagBlock - [0..8) - FullWidth: 8 + MarkupTextLiteral - [0..8) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[script]; + CloseAngle;[>]; + MarkupTextLiteral - [8..21) - FullWidth: 13 - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + OpenAngle;[<]; + Text;[bar]; + Whitespace;[ ]; + Text;[baz]; + Equals;[=]; + SingleQuote;[']; + CSharpCodeBlock - [21..25) - FullWidth: 4 + CSharpImplicitExpression - [21..25) - FullWidth: 4 + CSharpTransition - [21..22) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [22..25) - FullWidth: 3 + CSharpCodeBlock - [22..25) - FullWidth: 3 + CSharpExpressionLiteral - [22..25) - FullWidth: 3 - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[boz]; + MarkupTextLiteral - [25..27) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + CloseAngle;[>]; + MarkupTagBlock - [27..36) - FullWidth: 9 + MarkupTextLiteral - [27..36) - FullWidth: 9 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/OnlyTerminatesCommentOnFullEndSequence.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/OnlyTerminatesCommentOnFullEndSequence.stree.txt index 22d402b96..bddb0fb71 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/OnlyTerminatesCommentOnFullEndSequence.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/OnlyTerminatesCommentOnFullEndSequence.stree.txt @@ -1,18 +1,18 @@ -Markup block - Gen - 20 - (0:0,0) - HtmlComment block - Gen - 20 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (17:0,17) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..20) - FullWidth: 20 - [] + MarkupCommentBlock - [0..20) - FullWidth: 20 + MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Bang;[!]; + DoubleHyphen;[--]; + MarkupTextLiteral - [4..17) - FullWidth: 13 - Gen - SpanEditHandler;Accepts:Whitespace + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + DoubleHyphen;[--]; + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[bar]; + CloseAngle;[>]; + MarkupTextLiteral - [17..20) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesSGMLDeclarationAsEmptyTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesSGMLDeclarationAsEmptyTag.stree.txt index b3b77f162..cbf3ab2bd 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesSGMLDeclarationAsEmptyTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesSGMLDeclarationAsEmptyTag.stree.txt @@ -1,23 +1,23 @@ -Markup block - Gen - 33 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (5:0,5) - Tokens:10 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Bang;[!]; - SyntaxKind.Text;[DOCTYPE]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[baz]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (27:0,27) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (27:0,27) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..33) - FullWidth: 33 - [] + MarkupTagBlock - [0..5) - FullWidth: 5 + MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [5..27) - FullWidth: 22 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Bang;[!]; + Text;[DOCTYPE]; + Whitespace;[ ]; + Text;[foo]; + Whitespace;[ ]; + Text;[bar]; + Whitespace;[ ]; + Text;[baz]; + CloseAngle;[>]; + MarkupTagBlock - [27..33) - FullWidth: 6 + MarkupTextLiteral - [27..33) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesUntilMatchingEndTagIfFirstNonWhitespaceCharacterIsStartTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesUntilMatchingEndTagIfFirstNonWhitespaceCharacterIsStartTag.stree.txt index 42f0bb5e2..5c5c7bd0b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesUntilMatchingEndTagIfFirstNonWhitespaceCharacterIsStartTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesUntilMatchingEndTagIfFirstNonWhitespaceCharacterIsStartTag.stree.txt @@ -1,34 +1,34 @@ -Markup block - Gen - 33 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[baz]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (5:0,5) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (5:0,5) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[boz]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (10:0,10) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[biz]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (15:0,15) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[biz]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (21:0,21) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[boz]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (27:0,27) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (27:0,27) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[baz]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..33) - FullWidth: 33 - [] + MarkupTagBlock - [0..5) - FullWidth: 5 + MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[baz]; + CloseAngle;[>]; + MarkupTagBlock - [5..10) - FullWidth: 5 + MarkupTextLiteral - [5..10) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[boz]; + CloseAngle;[>]; + MarkupTagBlock - [10..15) - FullWidth: 5 + MarkupTextLiteral - [10..15) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[biz]; + CloseAngle;[>]; + MarkupTagBlock - [15..21) - FullWidth: 6 + MarkupTextLiteral - [15..21) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[biz]; + CloseAngle;[>]; + MarkupTagBlock - [21..27) - FullWidth: 6 + MarkupTextLiteral - [21..27) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[boz]; + CloseAngle;[>]; + MarkupTagBlock - [27..33) - FullWidth: 6 + MarkupTextLiteral - [27..33) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[baz]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesXMLProcessingInstructionAsEmptyTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesXMLProcessingInstructionAsEmptyTag.stree.txt index e8ab55b89..318f24cfd 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesXMLProcessingInstructionAsEmptyTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesXMLProcessingInstructionAsEmptyTag.stree.txt @@ -1,24 +1,24 @@ -Markup block - Gen - 30 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (5:0,5) - Tokens:11 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.Text;[xml]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[baz]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (24:0,24) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..30) - FullWidth: 30 - [] + MarkupTagBlock - [0..5) - FullWidth: 5 + MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [5..24) - FullWidth: 19 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + QuestionMark;[?]; + Text;[xml]; + Whitespace;[ ]; + Text;[foo]; + Whitespace;[ ]; + Text;[bar]; + Whitespace;[ ]; + Text;[baz]; + QuestionMark;[?]; + CloseAngle;[>]; + MarkupTagBlock - [24..30) - FullWidth: 6 + MarkupTextLiteral - [24..30) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ProperlyBalancesCommentStartAndEndTags.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ProperlyBalancesCommentStartAndEndTags.stree.txt index b302b41ea..7b90410af 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ProperlyBalancesCommentStartAndEndTags.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ProperlyBalancesCommentStartAndEndTags.stree.txt @@ -1,17 +1,17 @@ -Markup block - Gen - 18 - (0:0,0) - HtmlComment block - Gen - 18 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..18) - FullWidth: 18 - [] + MarkupCommentBlock - [0..18) - FullWidth: 18 + MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Bang;[!]; + DoubleHyphen;[--]; + MarkupTextLiteral - [4..15) - FullWidth: 11 - Gen - SpanEditHandler;Accepts:Whitespace + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[bar]; + CloseAngle;[>]; + MarkupTextLiteral - [15..18) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ReadsToEndOfLineIfFirstCharacterAfterTransitionIsColon.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ReadsToEndOfLineIfFirstCharacterAfterTransitionIsColon.stree.txt index 7ec39929e..f6f01076c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ReadsToEndOfLineIfFirstCharacterAfterTransitionIsColon.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ReadsToEndOfLineIfFirstCharacterAfterTransitionIsColon.stree.txt @@ -1,15 +1,15 @@ -Markup block - Gen - 19 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [:] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:1 - SyntaxKind.Colon;[:]; - Markup span - Gen - [
  • Foo Bar BazLF] - SpanEditHandler;Accepts:None - (2:0,2) - Tokens:9 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[li]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.Text;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Baz]; - SyntaxKind.NewLine;[LF]; +MarkupBlock - [0..19) - FullWidth: 19 - [@:
  • Foo Bar BazLF] + MarkupTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + Colon;[:]; + MarkupTextLiteral - [2..19) - FullWidth: 17 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[li]; + CloseAngle;[>]; + Text;[Foo]; + Whitespace;[ ]; + Text;[Bar]; + Whitespace;[ ]; + Text;[Baz]; + NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/RendersLiteralTextTagIfDoubled.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/RendersLiteralTextTagIfDoubled.stree.txt index d67192745..7266f498c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/RendersLiteralTextTagIfDoubled.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/RendersLiteralTextTagIfDoubled.stree.txt @@ -1,36 +1,36 @@ -Markup block - Gen - 43 - (0:0,0) - Tag block - Gen - 6 - (0:0,0) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (6:0,6) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (6:0,6) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Foo Bar ] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:4 - SyntaxKind.Text;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Bar]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 5 - (20:0,20) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ Baz] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Baz]; - Tag block - Gen - 7 - (29:0,29) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (29:0,29) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (36:0,36) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (36:0,36) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..43) - FullWidth: 43 - [Foo Bar Baz] + MarkupTagBlock - [0..6) - FullWidth: 6 + MarkupTransition - [0..6) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTagBlock - [6..12) - FullWidth: 6 + MarkupTextLiteral - [6..12) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [12..20) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + Whitespace;[ ]; + Text;[Bar]; + Whitespace;[ ]; + MarkupTagBlock - [20..25) - FullWidth: 5 + MarkupTextLiteral - [20..25) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [25..29) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[Baz]; + MarkupTagBlock - [29..36) - FullWidth: 7 + MarkupTextLiteral - [29..36) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; + MarkupTagBlock - [36..43) - FullWidth: 7 + MarkupTransition - [36..43) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsAtMatchingCloseTagToStartTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsAtMatchingCloseTagToStartTag.stree.txt index b89cf18f9..8d7387e15 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsAtMatchingCloseTagToStartTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsAtMatchingCloseTagToStartTag.stree.txt @@ -1,23 +1,23 @@ -Markup block - Gen - 14 - (0:0,0) - Tag block - Gen - 3 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[a]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 3 - (3:0,3) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[b]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 4 - (6:0,6) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (6:0,6) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[b]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 4 - (10:0,10) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[a]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..14) - FullWidth: 14 - [] + MarkupTagBlock - [0..3) - FullWidth: 3 + MarkupTextLiteral - [0..3) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[a]; + CloseAngle;[>]; + MarkupTagBlock - [3..6) - FullWidth: 3 + MarkupTextLiteral - [3..6) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[b]; + CloseAngle;[>]; + MarkupTagBlock - [6..10) - FullWidth: 4 + MarkupTextLiteral - [6..10) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[b]; + CloseAngle;[>]; + MarkupTagBlock - [10..14) - FullWidth: 4 + MarkupTextLiteral - [10..14) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[a]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsParsingMidEmptyTagIfEOFReached.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsParsingMidEmptyTagIfEOFReached.stree.txt index c2064cbe7..fdbc53cd0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsParsingMidEmptyTagIfEOFReached.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsParsingMidEmptyTagIfEOFReached.stree.txt @@ -1,6 +1,6 @@ -Markup block - Gen - 4 - (0:0,0) - Tag block - Gen - 4 - (0:0,0) - Markup span - Gen - [
    - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + ForwardSlash;[/]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsParsingSingleLineBlockAtEOFIfNoEOLReached.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsParsingSingleLineBlockAtEOFIfNoEOLReached.stree.txt index 3f3c688a0..54e0a3ece 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsParsingSingleLineBlockAtEOFIfNoEOLReached.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsParsingSingleLineBlockAtEOFIfNoEOLReached.stree.txt @@ -1,9 +1,9 @@ -Markup block - Gen - 9 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [:] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:1 - SyntaxKind.Colon;[:]; - Markup span - Gen - [foo bar] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:3 - SyntaxKind.Text;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bar]; +MarkupBlock - [0..9) - FullWidth: 9 - [@:foo bar] + MarkupTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + Colon;[:]; + MarkupTextLiteral - [2..9) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + Whitespace;[ ]; + Text;[bar]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentAsBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentAsBlock.stree.txt index 9e2f6045d..cac474518 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentAsBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentAsBlock.stree.txt @@ -1,13 +1,13 @@ -Markup block - Gen - 12 - (0:0,0) - HtmlComment block - Gen - 12 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..12) - FullWidth: 12 - [] + MarkupCommentBlock - [0..12) - FullWidth: 12 + MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Bang;[!]; + DoubleHyphen;[--]; + MarkupTextLiteral - [4..9) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + Text;[foo]; + Whitespace;[ ]; + MarkupTextLiteral - [9..12) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentWithExtraDashAsBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentWithExtraDashAsBlock.stree.txt index 1e7fcc43a..1318723ff 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentWithExtraDashAsBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentWithExtraDashAsBlock.stree.txt @@ -1,14 +1,14 @@ -Markup block - Gen - 13 - (0:0,0) - HtmlComment block - Gen - 13 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..13) - FullWidth: 13 - [] + MarkupCommentBlock - [0..13) - FullWidth: 13 + MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Bang;[!]; + DoubleHyphen;[--]; + MarkupTextLiteral - [4..10) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + Text;[foo]; + Whitespace;[ ]; + Text;[-]; + MarkupTextLiteral - [10..13) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentWithinBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentWithinBlock.stree.txt index 464f70dd0..0771a5795 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentWithinBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentWithinBlock.stree.txt @@ -1,28 +1,28 @@ -Markup block - Gen - 30 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [bar] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:1 - SyntaxKind.Text;[bar]; - HtmlComment block - Gen - 13 - (8:0,8) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (18:0,18) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [baz] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1 - SyntaxKind.Text;[baz]; - Tag block - Gen - 6 - (24:0,24) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..30) - FullWidth: 30 - [barbaz] + MarkupTagBlock - [0..5) - FullWidth: 5 + MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [5..8) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + Text;[bar]; + MarkupCommentBlock - [8..21) - FullWidth: 13 + MarkupTextLiteral - [8..12) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Bang;[!]; + DoubleHyphen;[--]; + MarkupTextLiteral - [12..18) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + Text;[zoop]; + Whitespace;[ ]; + MarkupTextLiteral - [18..21) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTextLiteral - [21..24) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + Text;[baz]; + MarkupTagBlock - [24..30) - FullWidth: 6 + MarkupTextLiteral - [24..30) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsScriptTagsWithLessThanSignsInThem.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsScriptTagsWithLessThanSignsInThem.stree.txt index bc3722e35..58d1b5801 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsScriptTagsWithLessThanSignsInThem.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsScriptTagsWithLessThanSignsInThem.stree.txt @@ -1,24 +1,24 @@ -Markup block - Gen - 45 - (0:0,0) - Tag block - Gen - 8 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (36:0,36) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..45) - FullWidth: 45 - [] + MarkupTagBlock - [0..8) - FullWidth: 8 + MarkupTextLiteral - [0..8) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[script]; + CloseAngle;[>]; + MarkupTextLiteral - [8..36) - FullWidth: 28 - Gen - SpanEditHandler;Accepts:Any + Text;[if(foo]; + OpenAngle;[<]; + Text;[bar)]; + Whitespace;[ ]; + Text;[{]; + Whitespace;[ ]; + Text;[alert(]; + DoubleQuote;["]; + Text;[baz]; + DoubleQuote;["]; + Text;[);)]; + MarkupTagBlock - [36..45) - FullWidth: 9 + MarkupTextLiteral - [36..45) - FullWidth: 9 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsScriptTagsWithSpacedLessThanSignsInThem.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsScriptTagsWithSpacedLessThanSignsInThem.stree.txt index 0435cc4ef..0594754f6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsScriptTagsWithSpacedLessThanSignsInThem.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsScriptTagsWithSpacedLessThanSignsInThem.stree.txt @@ -1,26 +1,26 @@ -Markup block - Gen - 47 - (0:0,0) - Tag block - Gen - 8 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (38:0,38) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..47) - FullWidth: 47 - [] + MarkupTagBlock - [0..8) - FullWidth: 8 + MarkupTextLiteral - [0..8) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[script]; + CloseAngle;[>]; + MarkupTextLiteral - [8..38) - FullWidth: 30 - Gen - SpanEditHandler;Accepts:Any + Text;[if(foo]; + Whitespace;[ ]; + OpenAngle;[<]; + Whitespace;[ ]; + Text;[bar)]; + Whitespace;[ ]; + Text;[{]; + Whitespace;[ ]; + Text;[alert(]; + DoubleQuote;["]; + Text;[baz]; + DoubleQuote;["]; + Text;[);)]; + MarkupTagBlock - [38..47) - FullWidth: 9 + MarkupTextLiteral - [38..47) - FullWidth: 9 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsTagsWithAttributes.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsTagsWithAttributes.stree.txt index e7bcdaaaa..1938ce213 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsTagsWithAttributes.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsTagsWithAttributes.stree.txt @@ -1,48 +1,55 @@ -Markup block - Gen - 48 - (0:0,0) - Tag block - Gen - 15 - (0:0,0) - Markup span - Gen - [ - 10 - (4:0,4) - Markup span - Gen - [ bar="] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bar]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [baz] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[baz]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (14:0,14) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (15:0,15) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[biz]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 16 - (20:0,20) - Markup span - Gen - [ - 10 - (24:0,24) - Markup span - Gen - [ zoop=] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[zoop]; - SyntaxKind.Equals;[=]; - Markup span - Gen - [zork] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:1 - SyntaxKind.Text;[zork]; - Markup span - Gen - [/>] - SpanEditHandler;Accepts:None - (34:0,34) - Tokens:2 - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (36:0,36) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (36:0,36) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[biz]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (42:0,42) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (42:0,42) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..48) - FullWidth: 48 - [] + MarkupTagBlock - [0..15) - FullWidth: 15 + MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[foo]; + MarkupAttributeBlock - [4..14) - FullWidth: 10 + MarkupTextLiteral - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..8) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + Text;[bar]; + Equals;[=]; + MarkupTextLiteral - [9..10) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [10..13) - FullWidth: 3 + MarkupLiteralAttributeValue - [10..13) - FullWidth: 3 + MarkupTextLiteral - [10..13) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + Text;[baz]; + MarkupTextLiteral - [13..14) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [14..15) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagBlock - [15..20) - FullWidth: 5 + MarkupTextLiteral - [15..20) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[biz]; + CloseAngle;[>]; + MarkupTagBlock - [20..36) - FullWidth: 16 + MarkupTextLiteral - [20..24) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[boz]; + MarkupAttributeBlock - [24..34) - FullWidth: 10 + MarkupTextLiteral - [24..25) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [25..29) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + Text;[zoop]; + Equals;[=]; + GenericBlock - [30..34) - FullWidth: 4 + MarkupLiteralAttributeValue - [30..34) - FullWidth: 4 + MarkupTextLiteral - [30..34) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + Text;[zork]; + MarkupTextLiteral - [34..36) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:None + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTagBlock - [36..42) - FullWidth: 6 + MarkupTextLiteral - [36..42) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[biz]; + CloseAngle;[>]; + MarkupTagBlock - [42..48) - FullWidth: 6 + MarkupTextLiteral - [42..48) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TagWithoutCloseAngleDoesNotTerminateBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TagWithoutCloseAngleDoesNotTerminateBlock.stree.txt index f8dc74898..33951fa8b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TagWithoutCloseAngleDoesNotTerminateBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TagWithoutCloseAngleDoesNotTerminateBlock.stree.txt @@ -1,7 +1,7 @@ -Markup block - Gen - 28 - (0:0,0) - Tag block - Gen - 28 - (0:0,0) - Markup span - Gen - [< LF ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; +MarkupBlock - [0..28) - FullWidth: 28 - [< LF ] + MarkupTagBlock - [0..28) - FullWidth: 28 + MarkupTextLiteral - [0..28) - FullWidth: 28 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Whitespace;[ ]; + NewLine;[LF]; + Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesAtEOF.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesAtEOF.stree.txt index a4bd0fbd1..f2723e76d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesAtEOF.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesAtEOF.stree.txt @@ -1,6 +1,6 @@ -Markup block - Gen - 5 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..5) - FullWidth: 5 - [] + MarkupTagBlock - [0..5) - FullWidth: 5 + MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesAtEOFWhenParsingComment.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesAtEOFWhenParsingComment.stree.txt index ba8a70b4c..cead603ae 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesAtEOFWhenParsingComment.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesAtEOFWhenParsingComment.stree.txt @@ -1,8 +1,8 @@ -Markup block - Gen - 9 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (19:0,19) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [-->] - SpanEditHandler;Accepts:None - (22:0,22) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (25:0,25) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (25:0,25) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..31) - FullWidth: 31 - [-->] + MarkupTagBlock - [0..5) - FullWidth: 5 + MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupCommentBlock - [5..22) - FullWidth: 17 + MarkupTextLiteral - [5..9) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Bang;[!]; + DoubleHyphen;[--]; + MarkupTextLiteral - [9..19) - FullWidth: 10 - Gen - SpanEditHandler;Accepts:Whitespace + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[bar]; + MarkupTextLiteral - [19..22) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTextLiteral - [22..25) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTagBlock - [25..31) - FullWidth: 6 + MarkupTextLiteral - [25..31) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesSGMLDeclarationAtFirstCloseAngle.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesSGMLDeclarationAtFirstCloseAngle.stree.txt index c779f841b..4c0726942 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesSGMLDeclarationAtFirstCloseAngle.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesSGMLDeclarationAtFirstCloseAngle.stree.txt @@ -1,25 +1,25 @@ -Markup block - Gen - 34 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (5:0,5) - Tokens:8 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Bang;[!]; - SyntaxKind.Text;[DOCTYPE]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bar]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ baz>] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[baz]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (28:0,28) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (28:0,28) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..34) - FullWidth: 34 - [ baz>] + MarkupTagBlock - [0..5) - FullWidth: 5 + MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [5..23) - FullWidth: 18 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Bang;[!]; + Text;[DOCTYPE]; + Whitespace;[ ]; + Text;[foo]; + Whitespace;[ ]; + Text;[bar]; + CloseAngle;[>]; + MarkupTextLiteral - [23..28) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[baz]; + CloseAngle;[>]; + MarkupTagBlock - [28..34) - FullWidth: 6 + MarkupTextLiteral - [28..34) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesXMLProcessingInstructionAtQuestionMarkCloseAnglePair.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesXMLProcessingInstructionAtQuestionMarkCloseAnglePair.stree.txt index 50bc77683..37f5276e3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesXMLProcessingInstructionAtQuestionMarkCloseAnglePair.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesXMLProcessingInstructionAtQuestionMarkCloseAnglePair.stree.txt @@ -1,27 +1,27 @@ -Markup block - Gen - 34 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (5:0,5) - Tokens:11 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.Text;[xml]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[baz]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ baz] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[baz]; - Tag block - Gen - 6 - (28:0,28) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (28:0,28) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..34) - FullWidth: 34 - [ baz] + MarkupTagBlock - [0..5) - FullWidth: 5 + MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [5..24) - FullWidth: 19 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + QuestionMark;[?]; + Text;[xml]; + Whitespace;[ ]; + Text;[foo]; + Whitespace;[ ]; + Text;[bar]; + Whitespace;[ ]; + Text;[baz]; + QuestionMark;[?]; + CloseAngle;[>]; + MarkupTextLiteral - [24..28) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[baz]; + MarkupTagBlock - [28..34) - FullWidth: 6 + MarkupTextLiteral - [28..34) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TreatsMalformedTagsAsContent.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TreatsMalformedTagsAsContent.stree.txt index 786946036..c0e58394f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TreatsMalformedTagsAsContent.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TreatsMalformedTagsAsContent.stree.txt @@ -1,17 +1,17 @@ -Markup block - Gen - 18 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 13 - (5:0,5) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (5:0,5) - Tokens:9 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Bang;[!]; - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..18) - FullWidth: 18 - [] + MarkupTagBlock - [0..5) - FullWidth: 5 + MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTagBlock - [5..18) - FullWidth: 13 + MarkupTextLiteral - [5..18) - FullWidth: 13 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Bang;[!]; + DoubleHyphen;[--]; + Whitespace;[ ]; + Text;[bar]; + Whitespace;[ ]; + DoubleHyphen;[--]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/WithSelfClosingTagJustEmitsTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/WithSelfClosingTagJustEmitsTag.stree.txt index a29dbc5d2..e195d07fb 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/WithSelfClosingTagJustEmitsTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/WithSelfClosingTagJustEmitsTag.stree.txt @@ -1,8 +1,8 @@ -Markup block - Gen - 7 - (0:0,0) - Tag block - Gen - 7 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:5 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..7) - FullWidth: 7 - [] + MarkupTagBlock - [0..7) - FullWidth: 7 + MarkupTextLiteral - [0..7) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; From 0893351d5f8d0864efb2ed89d99d76167ec1b1a7 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Tue, 25 Sep 2018 17:22:50 -0700 Subject: [PATCH 07/23] Make tree cleaner --- .../Legacy/TokenizerBackedParser.cs | 4 +- .../Syntax/SyntaxNodeExtensions.cs | 12 + .../AcceptsEmptyTextTag.stree.txt | 6 +- ...extTagAsOuterTagButDoesNotRender.stree.txt | 18 +- ...etInAttributeValueIfDoubleQuoted.stree.txt | 32 +-- ...etInAttributeValueIfSingleQuoted.stree.txt | 32 +-- ...shInAttributeValueIfDoubleQuoted.stree.txt | 36 +-- ...shInAttributeValueIfSingleQuoted.stree.txt | 36 +-- ...owsStartAndEndTagsToDifferInCase.stree.txt | 20 +- ...AsItCanRecoverToAnExpectedEndTag.stree.txt | 18 +- ...HandleSelfClosingTagsWithinBlock.stree.txt | 14 +- ...ineOfMarkupWithEmbeddedStatement.stree.txt | 20 +- ...nsiderPsuedoTagWithinMarkupBlock.stree.txt | 22 +- ...gleUnlessPreceededByQuestionMark.stree.txt | 12 +- .../HandlesOpenAngleAtEof.stree.txt | 28 +-- ...penAngleWithProperTagFollowingIt.stree.txt | 36 +-- ...UnbalancedTripleDashHTMLComments.stree.txt | 40 ++-- ...tmlCommentSupportsMultipleDashes.stree.txt | 76 +++---- ...IgnoresTagsInContentsOfScriptTag.stree.txt | 26 +-- ...rminatesCommentOnFullEndSequence.stree.txt | 10 +- .../ParsesSGMLDeclarationAsEmptyTag.stree.txt | 12 +- ...NonWhitespaceCharacterIsStartTag.stree.txt | 26 +-- ...LProcessingInstructionAsEmptyTag.stree.txt | 12 +- ...lyBalancesCommentStartAndEndTags.stree.txt | 10 +- ...tCharacterAfterTransitionIsColon.stree.txt | 8 +- .../RendersLiteralTextTagIfDoubled.stree.txt | 26 +-- ...topsAtMatchingCloseTagToStartTag.stree.txt | 18 +- ...psParsingMidEmptyTagIfEOFReached.stree.txt | 6 +- ...ngleLineBlockAtEOFIfNoEOLReached.stree.txt | 8 +- .../SupportsCommentAsBlock.stree.txt | 10 +- ...portsCommentWithExtraDashAsBlock.stree.txt | 10 +- .../SupportsCommentWithinBlock.stree.txt | 22 +- ...criptTagsWithLessThanSignsInThem.stree.txt | 12 +- ...agsWithSpacedLessThanSignsInThem.stree.txt | 12 +- .../SupportsTagsWithAttributes.stree.txt | 54 ++--- ...tCloseAngleDoesNotTerminateBlock.stree.txt | 6 +- .../HtmlBlockTest/TerminatesAtEOF.stree.txt | 6 +- ...erminatesAtEOFWhenParsingComment.stree.txt | 4 +- ...ntAtFirstOccurrenceOfEndSequence.stree.txt | 20 +- ...SGMLDeclarationAtFirstCloseAngle.stree.txt | 14 +- ...tionAtQuestionMarkCloseAnglePair.stree.txt | 14 +- .../TreatsMalformedTagsAsContent.stree.txt | 10 +- .../WithSelfClosingTagJustEmitsTag.stree.txt | 6 +- ...eptsEndTagWithNoMatchingStartTag.stree.txt | 12 +- ...FileAndOutputsZeroLengthCodeSpan.stree.txt | 20 +- ...lyHandlesOddlySpacedHTMLElements.stree.txt | 42 ++-- ...ineOfMarkupWithEmbeddedStatement.stree.txt | 22 +- ...noreNewLineAtTheEndOfMarkupBlock.stree.txt | 30 +-- ...fVerbatimBlockIfNoNewlinePresent.stree.txt | 30 +-- ...raNewLineAtTheEndOfVerbatimBlock.stree.txt | 28 +-- ...ndNewLineAtTheEndOfVerbatimBlock.stree.txt | 28 +-- ...nVerbatimBlockIfFollowedByCSharp.stree.txt | 38 ++-- ...esNotReturnErrorOnMismatchedTags.stree.txt | 24 +- ...hToCodeOnEmailAddressInAttribute.stree.txt | 32 +-- ...EmitsAtSignAsMarkupIfAtEndOfFile.stree.txt | 20 +- ...kIfFirstCharacterIsSwapCharacter.stree.txt | 20 +- ...NewLineBeforeMarkupInNestedBlock.stree.txt | 44 ++-- ...lesNewLineAndMarkupInNestedBlock.stree.txt | 42 ++-- .../HandlesNewLineInNestedBlock.stree.txt | 36 +-- ...nAtSignEncounteredAndEmitsOutput.stree.txt | 20 +- ...IgnoresTagsInContentsOfScriptTag.stree.txt | 28 +-- ...deBlockWithMarkupSetsDotAsMarkup.stree.txt | 52 ++--- ...pportsDollarOpenBraceCombination.stree.txt | 14 +- ...MarkupSpanIfContentIsEmptyString.stree.txt | 6 +- ...tentAsSingleWhitespaceMarkupSpan.stree.txt | 6 +- ...SwitchToCodeOnEmailAddressInText.stree.txt | 6 +- ...IgnoresTagsInContentsOfScriptTag.stree.txt | 60 ++--- ...SpanIfNoSwapCharacterEncountered.stree.txt | 6 +- ...gInVerbatimBlockIfFollowedByHtml.stree.txt | 48 ++-- ...lockIfFollowedByMarkupTransition.stree.txt | 48 ++-- .../RendersTextPseudoTagAsMarkup.stree.txt | 16 +- ...SegmentIfNoCodeBlocksEncountered.stree.txt | 18 +- ...ingOfAttributeValue_DoesNotThrow.stree.txt | 36 +-- ...EndOfAttributeValue_DoesNotThrow.stree.txt | 36 +-- ...tweenAttributeValue_DoesNotThrow.stree.txt | 42 ++-- ...ionInAttributeValue_DoesNotThrow.stree.txt | 32 +-- ...leTransitionInEmail_DoesNotThrow.stree.txt | 52 ++--- ...leTransitionInRegex_DoesNotThrow.stree.txt | 40 ++-- ...WithExpressionBlock_DoesNotThrow.stree.txt | 214 +++++++++--------- ...ansitionsInAttributeValue_Throws.stree.txt | 56 ++--- ...onDoesNotCreateDocumentLevelSpan.stree.txt | 44 ++-- ..._ExpressionBlock_To_Parent_Block.stree.txt | 32 +-- .../Language/Legacy/SyntaxNodeWriter.cs | 25 +- 83 files changed, 1130 insertions(+), 1099 deletions(-) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs index a6df72914..db301d646 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs @@ -1058,9 +1058,9 @@ protected IDisposable PushSpanContextConfig(Action newConfig protected IDisposable PushSpanContextConfig(Action> newConfig) { - var old = SpanConfig; + var old = SpanContextConfig; ConfigureSpanContext(newConfig); - return new DisposableAction(() => SpanConfig = old); + return new DisposableAction(() => SpanContextConfig = old); } protected void ConfigureSpanContext(Action config) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNodeExtensions.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNodeExtensions.cs index 2c04bc41b..cee747b97 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNodeExtensions.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNodeExtensions.cs @@ -188,5 +188,17 @@ public static TRoot InsertNodesAfter(this TRoot root, SyntaxNode nodeInLi { return (TRoot)root.InsertNodesInListCore(nodeInList, newNodes, insertBefore: false); } + + public static string GetContent(this TNode node) where TNode : SyntaxNode + { + if (node == null) + { + throw new ArgumentNullException(nameof(node)); + } + + var tokens = node.DescendantNodes().Where(n => n.IsToken).Cast(); + var content = string.Concat(tokens.Select(t => t.Content)); + return content; + } } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AcceptsEmptyTextTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AcceptsEmptyTextTag.stree.txt index dd62da11b..3822a0dbc 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AcceptsEmptyTextTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AcceptsEmptyTextTag.stree.txt @@ -1,6 +1,6 @@ -MarkupBlock - [0..7) - FullWidth: 7 - [] - MarkupTagBlock - [0..7) - FullWidth: 7 - MarkupTransition - [0..7) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..7)::7 - [] + MarkupTagBlock - [0..7)::7 - [] + MarkupTransition - [0..7)::7 - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[text]; ForwardSlash;[/]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AcceptsTextTagAsOuterTagButDoesNotRender.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AcceptsTextTagAsOuterTagButDoesNotRender.stree.txt index 98501029d..974b31554 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AcceptsTextTagAsOuterTagButDoesNotRender.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AcceptsTextTagAsOuterTagButDoesNotRender.stree.txt @@ -1,24 +1,24 @@ -MarkupBlock - [0..30) - FullWidth: 30 - [Foo Bar Baz] - MarkupTagBlock - [0..6) - FullWidth: 6 - MarkupTransition - [0..6) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..30)::30 - [Foo Bar Baz] + MarkupTagBlock - [0..6)::6 - [] + MarkupTransition - [0..6)::6 - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[text]; CloseAngle;[>]; - MarkupTextLiteral - [6..14) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [6..14)::8 - [Foo Bar ] - Gen - SpanEditHandler;Accepts:None Text;[Foo]; Whitespace;[ ]; Text;[Bar]; Whitespace;[ ]; - MarkupTagBlock - [14..19) - FullWidth: 5 - MarkupTextLiteral - [14..19) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [14..19)::5 - [] + MarkupTextLiteral - [14..19)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTextLiteral - [19..23) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [19..23)::4 - [ Baz] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; Text;[Baz]; - MarkupTagBlock - [23..30) - FullWidth: 7 - MarkupTransition - [23..30) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [23..30)::7 - [] + MarkupTransition - [23..30)::7 - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[text]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsCloseAngleBracketInAttributeValueIfDoubleQuoted.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsCloseAngleBracketInAttributeValueIfDoubleQuoted.stree.txt index 2c0f352cf..942837770 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsCloseAngleBracketInAttributeValueIfDoubleQuoted.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsCloseAngleBracketInAttributeValueIfDoubleQuoted.stree.txt @@ -1,33 +1,33 @@ -MarkupBlock - [0..26) - FullWidth: 26 - [] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..26)::26 - [] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTagBlock - [5..20) - FullWidth: 15 - MarkupTextLiteral - [5..9) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [5..20)::15 - [] + MarkupTextLiteral - [5..9)::4 - [ - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[bar]; - MarkupAttributeBlock - [9..17) - FullWidth: 8 - MarkupTextLiteral - [9..10) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupAttributeBlock - [9..17)::8 - [ baz=">"] + MarkupTextLiteral - [9..10)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - MarkupTextLiteral - [10..13) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [10..13)::3 - [baz] - Gen - SpanEditHandler;Accepts:Any Text;[baz]; Equals;[=]; - MarkupTextLiteral - [14..15) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [14..15)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; - GenericBlock - [15..16) - FullWidth: 1 - MarkupLiteralAttributeValue - [15..16) - FullWidth: 1 - MarkupTextLiteral - [15..16) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + GenericBlock - [15..16)::1 + MarkupLiteralAttributeValue - [15..16)::1 - [>] + MarkupTextLiteral - [15..16)::1 - [>] - Gen - SpanEditHandler;Accepts:Any CloseAngle;[>]; - MarkupTextLiteral - [16..17) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [16..17)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; - MarkupTextLiteral - [17..20) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [17..20)::3 - [ />] - Gen - SpanEditHandler;Accepts:None Whitespace;[ ]; ForwardSlash;[/]; CloseAngle;[>]; - MarkupTagBlock - [20..26) - FullWidth: 6 - MarkupTextLiteral - [20..26) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [20..26)::6 - [] + MarkupTextLiteral - [20..26)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsCloseAngleBracketInAttributeValueIfSingleQuoted.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsCloseAngleBracketInAttributeValueIfSingleQuoted.stree.txt index 7b4b600b2..3195045ef 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsCloseAngleBracketInAttributeValueIfSingleQuoted.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsCloseAngleBracketInAttributeValueIfSingleQuoted.stree.txt @@ -1,33 +1,33 @@ -MarkupBlock - [0..26) - FullWidth: 26 - [] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..26)::26 - [] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTagBlock - [5..20) - FullWidth: 15 - MarkupTextLiteral - [5..9) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [5..20)::15 - [] + MarkupTextLiteral - [5..9)::4 - [ - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[bar]; - MarkupAttributeBlock - [9..17) - FullWidth: 8 - MarkupTextLiteral - [9..10) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupAttributeBlock - [9..17)::8 - [ baz='>'] + MarkupTextLiteral - [9..10)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - MarkupTextLiteral - [10..13) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [10..13)::3 - [baz] - Gen - SpanEditHandler;Accepts:Any Text;[baz]; Equals;[=]; - MarkupTextLiteral - [14..15) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [14..15)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; - GenericBlock - [15..16) - FullWidth: 1 - MarkupLiteralAttributeValue - [15..16) - FullWidth: 1 - MarkupTextLiteral - [15..16) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + GenericBlock - [15..16)::1 + MarkupLiteralAttributeValue - [15..16)::1 - [>] + MarkupTextLiteral - [15..16)::1 - [>] - Gen - SpanEditHandler;Accepts:Any CloseAngle;[>]; - MarkupTextLiteral - [16..17) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [16..17)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; - MarkupTextLiteral - [17..20) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [17..20)::3 - [ />] - Gen - SpanEditHandler;Accepts:None Whitespace;[ ]; ForwardSlash;[/]; CloseAngle;[>]; - MarkupTagBlock - [20..26) - FullWidth: 6 - MarkupTextLiteral - [20..26) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [20..26)::6 - [] + MarkupTextLiteral - [20..26)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsSlashInAttributeValueIfDoubleQuoted.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsSlashInAttributeValueIfDoubleQuoted.stree.txt index 3e8fea9ba..f6fae621c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsSlashInAttributeValueIfDoubleQuoted.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsSlashInAttributeValueIfDoubleQuoted.stree.txt @@ -1,37 +1,37 @@ -MarkupBlock - [0..30) - FullWidth: 30 - [] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..30)::30 - [] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTagBlock - [5..18) - FullWidth: 13 - MarkupTextLiteral - [5..9) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [5..18)::13 - [] + MarkupTextLiteral - [5..9)::4 - [ - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[bar]; - MarkupAttributeBlock - [9..17) - FullWidth: 8 - MarkupTextLiteral - [9..10) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupAttributeBlock - [9..17)::8 - [ baz="/"] + MarkupTextLiteral - [9..10)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - MarkupTextLiteral - [10..13) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [10..13)::3 - [baz] - Gen - SpanEditHandler;Accepts:Any Text;[baz]; Equals;[=]; - MarkupTextLiteral - [14..15) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [14..15)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; - GenericBlock - [15..16) - FullWidth: 1 - MarkupLiteralAttributeValue - [15..16) - FullWidth: 1 - MarkupTextLiteral - [15..16) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + GenericBlock - [15..16)::1 + MarkupLiteralAttributeValue - [15..16)::1 - [/] + MarkupTextLiteral - [15..16)::1 - [/] - Gen - SpanEditHandler;Accepts:Any ForwardSlash;[/]; - MarkupTextLiteral - [16..17) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [16..17)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; - MarkupTextLiteral - [17..18) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [17..18)::1 - [>] - Gen - SpanEditHandler;Accepts:None CloseAngle;[>]; - MarkupTagBlock - [18..24) - FullWidth: 6 - MarkupTextLiteral - [18..24) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [18..24)::6 - [] + MarkupTextLiteral - [18..24)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[bar]; CloseAngle;[>]; - MarkupTagBlock - [24..30) - FullWidth: 6 - MarkupTextLiteral - [24..30) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [24..30)::6 - [] + MarkupTextLiteral - [24..30)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsSlashInAttributeValueIfSingleQuoted.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsSlashInAttributeValueIfSingleQuoted.stree.txt index 60e57efd7..9e465a560 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsSlashInAttributeValueIfSingleQuoted.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsSlashInAttributeValueIfSingleQuoted.stree.txt @@ -1,37 +1,37 @@ -MarkupBlock - [0..30) - FullWidth: 30 - [] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..30)::30 - [] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTagBlock - [5..18) - FullWidth: 13 - MarkupTextLiteral - [5..9) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [5..18)::13 - [] + MarkupTextLiteral - [5..9)::4 - [ - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[bar]; - MarkupAttributeBlock - [9..17) - FullWidth: 8 - MarkupTextLiteral - [9..10) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupAttributeBlock - [9..17)::8 - [ baz='/'] + MarkupTextLiteral - [9..10)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - MarkupTextLiteral - [10..13) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [10..13)::3 - [baz] - Gen - SpanEditHandler;Accepts:Any Text;[baz]; Equals;[=]; - MarkupTextLiteral - [14..15) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [14..15)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; - GenericBlock - [15..16) - FullWidth: 1 - MarkupLiteralAttributeValue - [15..16) - FullWidth: 1 - MarkupTextLiteral - [15..16) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + GenericBlock - [15..16)::1 + MarkupLiteralAttributeValue - [15..16)::1 - [/] + MarkupTextLiteral - [15..16)::1 - [/] - Gen - SpanEditHandler;Accepts:Any ForwardSlash;[/]; - MarkupTextLiteral - [16..17) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [16..17)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; - MarkupTextLiteral - [17..18) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [17..18)::1 - [>] - Gen - SpanEditHandler;Accepts:None CloseAngle;[>]; - MarkupTagBlock - [18..24) - FullWidth: 6 - MarkupTextLiteral - [18..24) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [18..24)::6 - [] + MarkupTextLiteral - [18..24)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[bar]; CloseAngle;[>]; - MarkupTagBlock - [24..30) - FullWidth: 6 - MarkupTextLiteral - [24..30) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [24..30)::6 - [] + MarkupTextLiteral - [24..30)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsStartAndEndTagsToDifferInCase.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsStartAndEndTagsToDifferInCase.stree.txt index 866abc087..9e5a17d16 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsStartAndEndTagsToDifferInCase.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsStartAndEndTagsToDifferInCase.stree.txt @@ -1,24 +1,24 @@ -MarkupBlock - [0..19) - FullWidth: 19 - [
  • Foo

  • ] - MarkupTagBlock - [0..4) - FullWidth: 4 - MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..19)::19 - [
  • Foo

  • ] + MarkupTagBlock - [0..4)::4 - [
  • ] + MarkupTextLiteral - [0..4)::4 - [
  • ] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[li]; CloseAngle;[>]; - MarkupTagBlock - [4..7) - FullWidth: 3 - MarkupTextLiteral - [4..7) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [4..7)::3 - [

    ] + MarkupTextLiteral - [4..7)::3 - [

    ] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[p]; CloseAngle;[>]; - MarkupTextLiteral - [7..10) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [7..10)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any Text;[Foo]; - MarkupTagBlock - [10..14) - FullWidth: 4 - MarkupTextLiteral - [10..14) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [10..14)::4 - [

    ] + MarkupTextLiteral - [10..14)::4 - [

    ] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[P]; CloseAngle;[>]; - MarkupTagBlock - [14..19) - FullWidth: 5 - MarkupTextLiteral - [14..19) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [14..19)::5 - [
  • ] + MarkupTextLiteral - [14..19)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[lI]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsUnclosedTagsAsLongAsItCanRecoverToAnExpectedEndTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsUnclosedTagsAsLongAsItCanRecoverToAnExpectedEndTag.stree.txt index 707d55a33..a766c4352 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsUnclosedTagsAsLongAsItCanRecoverToAnExpectedEndTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/AllowsUnclosedTagsAsLongAsItCanRecoverToAnExpectedEndTag.stree.txt @@ -1,21 +1,21 @@ -MarkupBlock - [0..21) - FullWidth: 21 - [] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..21)::21 - [] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTagBlock - [5..10) - FullWidth: 5 - MarkupTextLiteral - [5..10) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [5..10)::5 - [] + MarkupTextLiteral - [5..10)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[bar]; CloseAngle;[>]; - MarkupTagBlock - [10..15) - FullWidth: 5 - MarkupTextLiteral - [10..15) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [10..15)::5 - [] + MarkupTextLiteral - [10..15)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[baz]; CloseAngle;[>]; - MarkupTagBlock - [15..21) - FullWidth: 6 - MarkupTextLiteral - [15..21) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [15..21)::6 - [] + MarkupTextLiteral - [15..21)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/CanHandleSelfClosingTagsWithinBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/CanHandleSelfClosingTagsWithinBlock.stree.txt index faac3218f..6b5ee2977 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/CanHandleSelfClosingTagsWithinBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/CanHandleSelfClosingTagsWithinBlock.stree.txt @@ -1,18 +1,18 @@ -MarkupBlock - [0..18) - FullWidth: 18 - [] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..18)::18 - [] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTagBlock - [5..12) - FullWidth: 7 - MarkupTextLiteral - [5..12) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [5..12)::7 - [] + MarkupTextLiteral - [5..12)::7 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[bar]; Whitespace;[ ]; ForwardSlash;[/]; CloseAngle;[>]; - MarkupTagBlock - [12..18) - FullWidth: 6 - MarkupTextLiteral - [12..18) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [12..18)::6 - [] + MarkupTextLiteral - [12..18)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/CorrectlyHandlesSingleLineOfMarkupWithEmbeddedStatement.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/CorrectlyHandlesSingleLineOfMarkupWithEmbeddedStatement.stree.txt index 5339cdc85..8d9c25cec 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/CorrectlyHandlesSingleLineOfMarkupWithEmbeddedStatement.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/CorrectlyHandlesSingleLineOfMarkupWithEmbeddedStatement.stree.txt @@ -1,16 +1,16 @@ -MarkupBlock - [0..31) - FullWidth: 31 - [
    Foo @if(true) {} Bar
    ] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..31)::31 - [
    Foo @if(true) {} Bar
    ] + MarkupTagBlock - [0..5)::5 - [
    ] + MarkupTextLiteral - [0..5)::5 - [
    ] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[div]; CloseAngle;[>]; - MarkupTextLiteral - [5..9) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [5..9)::4 - [Foo ] - Gen - SpanEditHandler;Accepts:Any Text;[Foo]; Whitespace;[ ]; - CSharpCodeBlock - [9..21) - FullWidth: 12 - CSharpTransition - [9..10) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [9..21)::12 + CSharpTransition - [9..10)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementLiteral - [10..21) - FullWidth: 11 - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [10..21)::11 - [if(true) {}] - Gen - SpanEditHandler;Accepts:Any Keyword;[if]; LeftParenthesis;[(]; Keyword;[true]; @@ -18,11 +18,11 @@ MarkupBlock - [0..31) - FullWidth: 31 - [
    Foo @if(true) {} Bar
    ] Whitespace;[ ]; LeftBrace;[{]; RightBrace;[}]; - MarkupTextLiteral - [21..25) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [21..25)::4 - [ Bar] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; Text;[Bar]; - MarkupTagBlock - [25..31) - FullWidth: 6 - MarkupTextLiteral - [25..31) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [25..31)::6 - [
    ] + MarkupTextLiteral - [25..31)::6 - [
    ] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[div]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/DoesNotConsiderPsuedoTagWithinMarkupBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/DoesNotConsiderPsuedoTagWithinMarkupBlock.stree.txt index 224f4de02..6b2865210 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/DoesNotConsiderPsuedoTagWithinMarkupBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/DoesNotConsiderPsuedoTagWithinMarkupBlock.stree.txt @@ -1,27 +1,27 @@ -MarkupBlock - [0..28) - FullWidth: 28 - [] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..28)::28 - [] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTagBlock - [5..11) - FullWidth: 6 - MarkupTextLiteral - [5..11) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [5..11)::6 - [] + MarkupTextLiteral - [5..11)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[text]; CloseAngle;[>]; - MarkupTagBlock - [11..16) - FullWidth: 5 - MarkupTextLiteral - [11..16) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [11..16)::5 - [] + MarkupTextLiteral - [11..16)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[bar]; CloseAngle;[>]; - MarkupTagBlock - [16..22) - FullWidth: 6 - MarkupTextLiteral - [16..22) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [16..22)::6 - [] + MarkupTextLiteral - [16..22)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[bar]; CloseAngle;[>]; - MarkupTagBlock - [22..28) - FullWidth: 6 - MarkupTextLiteral - [22..28) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [22..28)::6 - [] + MarkupTextLiteral - [22..28)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/DoesNotTerminateXMLProcInstrAtCloseAngleUnlessPreceededByQuestionMark.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/DoesNotTerminateXMLProcInstrAtCloseAngleUnlessPreceededByQuestionMark.stree.txt index 650f8317e..b8cb24511 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/DoesNotTerminateXMLProcInstrAtCloseAngleUnlessPreceededByQuestionMark.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/DoesNotTerminateXMLProcInstrAtCloseAngleUnlessPreceededByQuestionMark.stree.txt @@ -1,10 +1,10 @@ -MarkupBlock - [0..31) - FullWidth: 31 - [ baz?>] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..31)::31 - [ baz?>] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTextLiteral - [5..25) - FullWidth: 20 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [5..25)::20 - [ baz?>] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; QuestionMark;[?]; Text;[xml]; @@ -17,8 +17,8 @@ MarkupBlock - [0..31) - FullWidth: 31 - [ baz?>] Text;[baz]; QuestionMark;[?]; CloseAngle;[>]; - MarkupTagBlock - [25..31) - FullWidth: 6 - MarkupTextLiteral - [25..31) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [25..31)::6 - [] + MarkupTextLiteral - [25..31)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HandlesOpenAngleAtEof.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HandlesOpenAngleAtEof.stree.txt index 3a2e4e6c8..cc4bd180b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HandlesOpenAngleAtEof.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HandlesOpenAngleAtEof.stree.txt @@ -1,20 +1,20 @@ -RazorDocument - [0..5) - FullWidth: 5 - [@{LF<] - MarkupBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..5)::5 - [@{LF<] + MarkupBlock - [0..5)::5 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..5) - FullWidth: 5 - CSharpStatement - [0..5) - FullWidth: 5 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..5)::5 + CSharpStatement - [0..5)::5 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementBody - [1..5) - FullWidth: 4 - RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpStatementBody - [1..5)::4 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None LeftBrace;[{]; - CSharpCodeBlock - [2..5) - FullWidth: 3 - CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[}];AtEOL + CSharpCodeBlock - [2..5)::3 + CSharpStatementLiteral - [2..4)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[}];AtEOL NewLine;[LF]; - MarkupBlock - [4..5) - FullWidth: 1 - MarkupTagBlock - [4..5) - FullWidth: 1 - MarkupTextLiteral - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupBlock - [4..5)::1 + MarkupTagBlock - [4..5)::1 - [<] + MarkupTextLiteral - [4..5)::1 - [<] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; - RazorMetaCode - [5..5) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + RazorMetaCode - [5..5)::0 - Gen - SpanEditHandler;Accepts:Any RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HandlesOpenAngleWithProperTagFollowingIt.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HandlesOpenAngleWithProperTagFollowingIt.stree.txt index 2ccd6c469..5542db459 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HandlesOpenAngleWithProperTagFollowingIt.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HandlesOpenAngleWithProperTagFollowingIt.stree.txt @@ -1,30 +1,30 @@ -RazorDocument - [0..14) - FullWidth: 14 - [@{LF] - MarkupBlock - [0..14) - FullWidth: 14 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..14)::14 - [@{LF] + MarkupBlock - [0..14)::14 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..14) - FullWidth: 14 - CSharpStatement - [0..14) - FullWidth: 14 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..14)::14 + CSharpStatement - [0..14)::14 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementBody - [1..14) - FullWidth: 13 - RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpStatementBody - [1..14)::13 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None LeftBrace;[{]; - CSharpCodeBlock - [2..14) - FullWidth: 12 - CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[}];AtEOL + CSharpCodeBlock - [2..14)::12 + CSharpStatementLiteral - [2..4)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[}];AtEOL NewLine;[LF]; - MarkupBlock - [4..7) - FullWidth: 3 - MarkupTagBlock - [4..7) - FullWidth: 3 - MarkupTextLiteral - [4..7) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + MarkupBlock - [4..7)::3 + MarkupTagBlock - [4..7)::3 - [ - SpanEditHandler;Accepts:Any OpenAngle;[<]; NewLine;[LF]; - MarkupBlock - [7..14) - FullWidth: 7 - MarkupTagBlock - [7..14) - FullWidth: 7 - MarkupTextLiteral - [7..14) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + MarkupBlock - [7..14)::7 + MarkupTagBlock - [7..14)::7 - [] + MarkupTextLiteral - [7..14)::7 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[html]; CloseAngle;[>]; - CSharpStatementLiteral - [14..14) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [14..14)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - RazorMetaCode - [14..14) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + RazorMetaCode - [14..14)::0 - Gen - SpanEditHandler;Accepts:Any RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HandlesUnbalancedTripleDashHTMLComments.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HandlesUnbalancedTripleDashHTMLComments.stree.txt index 1eec2aae2..d6c3b6a1b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HandlesUnbalancedTripleDashHTMLComments.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HandlesUnbalancedTripleDashHTMLComments.stree.txt @@ -1,26 +1,26 @@ -RazorDocument - [0..68) - FullWidth: 68 - [@{LF LF}] - MarkupBlock - [0..68) - FullWidth: 68 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..68)::68 - [@{LF LF}] + MarkupBlock - [0..68)::68 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..68) - FullWidth: 68 - CSharpStatement - [0..68) - FullWidth: 68 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..68)::68 + CSharpStatement - [0..68)::68 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementBody - [1..68) - FullWidth: 67 - RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpStatementBody - [1..68)::67 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None LeftBrace;[{]; - CSharpCodeBlock - [2..67) - FullWidth: 65 - CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + CSharpCodeBlock - [2..67)::65 + CSharpStatementLiteral - [2..4)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL NewLine;[LF]; - MarkupBlock - [4..67) - FullWidth: 63 - MarkupTextLiteral - [4..8) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupBlock - [4..67)::63 + MarkupTextLiteral - [4..8)::4 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - MarkupCommentBlock - [8..65) - FullWidth: 57 - MarkupTextLiteral - [8..12) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + MarkupCommentBlock - [8..65)::57 + MarkupTextLiteral - [8..12)::4 - [] - Gen - SpanEditHandler;Accepts:None DoubleHyphen;[--]; CloseAngle;[>]; - MarkupTextLiteral - [65..67) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [65..67)::2 - [LF] - Gen - SpanEditHandler;Accepts:None NewLine;[LF]; - CSharpStatementLiteral - [67..67) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [67..67)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - RazorMetaCode - [67..68) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RazorMetaCode - [67..68)::1 - Gen - SpanEditHandler;Accepts:None RightBrace;[}]; - MarkupTextLiteral - [68..68) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [68..68)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HtmlCommentSupportsMultipleDashes.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HtmlCommentSupportsMultipleDashes.stree.txt index e4bd554c9..80f23f667 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HtmlCommentSupportsMultipleDashes.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HtmlCommentSupportsMultipleDashes.stree.txt @@ -1,16 +1,16 @@ -RazorDocument - [0..165) - FullWidth: 165 - [
    LF
    LF
    LF
    LF] - MarkupBlock - [0..165) - FullWidth: 165 - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..165)::165 - [
    LF
    LF
    LF
    LF] + MarkupBlock - [0..165)::165 + MarkupTagBlock - [0..5)::5 - [
    ] + MarkupTextLiteral - [0..5)::5 - [
    ] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[div]; CloseAngle;[>]; - MarkupCommentBlock - [5..27) - FullWidth: 22 - MarkupTextLiteral - [5..9) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + MarkupCommentBlock - [5..27)::22 + MarkupTextLiteral - [5..9)::4 - [
    LF Text;[World]; Whitespace;[ ]; Text;[-]; - MarkupTextLiteral - [24..27) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [24..27)::3 - [-->] - Gen - SpanEditHandler;Accepts:None DoubleHyphen;[--]; CloseAngle;[>]; - MarkupTagBlock - [27..33) - FullWidth: 6 - MarkupTextLiteral - [27..33) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [27..33)::6 - [
    ] + MarkupTextLiteral - [27..33)::6 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; ForwardSlash;[/]; Text;[div]; CloseAngle;[>]; - MarkupTextLiteral - [33..35) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [33..35)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any NewLine;[LF]; - MarkupTagBlock - [35..40) - FullWidth: 5 - MarkupTextLiteral - [35..40) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [35..40)::5 - [
    ] + MarkupTextLiteral - [35..40)::5 - [
    ] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[div]; CloseAngle;[>]; - MarkupCommentBlock - [40..64) - FullWidth: 24 - MarkupTextLiteral - [40..44) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + MarkupCommentBlock - [40..64)::24 + MarkupTextLiteral - [40..44)::4 - [
    LF Text;[World]; Whitespace;[ ]; DoubleHyphen;[--]; - MarkupTextLiteral - [61..64) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [61..64)::3 - [-->] - Gen - SpanEditHandler;Accepts:None DoubleHyphen;[--]; CloseAngle;[>]; - MarkupTagBlock - [64..70) - FullWidth: 6 - MarkupTextLiteral - [64..70) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [64..70)::6 - [
    ] + MarkupTextLiteral - [64..70)::6 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; ForwardSlash;[/]; Text;[div]; CloseAngle;[>]; - MarkupTextLiteral - [70..72) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [70..72)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any NewLine;[LF]; - MarkupTagBlock - [72..77) - FullWidth: 5 - MarkupTextLiteral - [72..77) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [72..77)::5 - [
    ] + MarkupTextLiteral - [72..77)::5 - [
    ] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[div]; CloseAngle;[>]; - MarkupCommentBlock - [77..103) - FullWidth: 26 - MarkupTextLiteral - [77..81) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + MarkupCommentBlock - [77..103)::26 + MarkupTextLiteral - [77..81)::4 - [
    LF Whitespace;[ ]; DoubleHyphen;[--]; Text;[-]; - MarkupTextLiteral - [100..103) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [100..103)::3 - [-->] - Gen - SpanEditHandler;Accepts:None DoubleHyphen;[--]; CloseAngle;[>]; - MarkupTagBlock - [103..109) - FullWidth: 6 - MarkupTextLiteral - [103..109) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [103..109)::6 - [
    ] + MarkupTextLiteral - [103..109)::6 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; ForwardSlash;[/]; Text;[div]; CloseAngle;[>]; - MarkupTextLiteral - [109..111) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [109..111)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any NewLine;[LF]; - MarkupTagBlock - [111..116) - FullWidth: 5 - MarkupTextLiteral - [111..116) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [111..116)::5 - [
    ] + MarkupTextLiteral - [111..116)::5 - [
    ] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[div]; CloseAngle;[>]; - MarkupCommentBlock - [116..157) - FullWidth: 41 - MarkupTextLiteral - [116..120) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + MarkupCommentBlock - [116..157)::41 + MarkupTextLiteral - [116..120)::4 - [
    LF Whitespace;[ ]; DoubleHyphen;[--]; Text;[-]; - MarkupTextLiteral - [154..157) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [154..157)::3 - [-->] - Gen - SpanEditHandler;Accepts:None DoubleHyphen;[--]; CloseAngle;[>]; - MarkupTagBlock - [157..163) - FullWidth: 6 - MarkupTextLiteral - [157..163) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [157..163)::6 - [
    ] + MarkupTextLiteral - [157..163)::6 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; ForwardSlash;[/]; Text;[div]; CloseAngle;[>]; - MarkupTextLiteral - [163..165) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [163..165)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/IgnoresTagsInContentsOfScriptTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/IgnoresTagsInContentsOfScriptTag.stree.txt index 98eb40f52..3da3fd052 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/IgnoresTagsInContentsOfScriptTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/IgnoresTagsInContentsOfScriptTag.stree.txt @@ -1,10 +1,10 @@ -MarkupBlock - [0..36) - FullWidth: 36 - [] - MarkupTagBlock - [0..8) - FullWidth: 8 - MarkupTextLiteral - [0..8) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..36)::36 - [] + MarkupTagBlock - [0..8)::8 - [] Text;[baz]; Equals;[=]; SingleQuote;[']; - CSharpCodeBlock - [21..25) - FullWidth: 4 - CSharpImplicitExpression - [21..25) - FullWidth: 4 - CSharpTransition - [21..22) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [21..25)::4 + CSharpImplicitExpression - [21..25)::4 + CSharpTransition - [21..22)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpImplicitExpressionBody - [22..25) - FullWidth: 3 - CSharpCodeBlock - [22..25) - FullWidth: 3 - CSharpExpressionLiteral - [22..25) - FullWidth: 3 - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + CSharpImplicitExpressionBody - [22..25)::3 + CSharpCodeBlock - [22..25)::3 + CSharpExpressionLiteral - [22..25)::3 - [boz] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 Identifier;[boz]; - MarkupTextLiteral - [25..27) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [25..27)::2 - ['>] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; CloseAngle;[>]; - MarkupTagBlock - [27..36) - FullWidth: 9 - MarkupTextLiteral - [27..36) - FullWidth: 9 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [27..36)::9 - [] + MarkupTextLiteral - [27..36)::9 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[script]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/OnlyTerminatesCommentOnFullEndSequence.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/OnlyTerminatesCommentOnFullEndSequence.stree.txt index bddb0fb71..965a65db7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/OnlyTerminatesCommentOnFullEndSequence.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/OnlyTerminatesCommentOnFullEndSequence.stree.txt @@ -1,10 +1,10 @@ -MarkupBlock - [0..20) - FullWidth: 20 - [] - MarkupCommentBlock - [0..20) - FullWidth: 20 - MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..20)::20 - [] + MarkupCommentBlock - [0..20)::20 + MarkupTextLiteral - [0..4)::4 - [] ForwardSlash;[/]; Text;[bar]; CloseAngle;[>]; - MarkupTextLiteral - [17..20) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [17..20)::3 - [-->] - Gen - SpanEditHandler;Accepts:None DoubleHyphen;[--]; CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesSGMLDeclarationAsEmptyTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesSGMLDeclarationAsEmptyTag.stree.txt index cbf3ab2bd..228dacf05 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesSGMLDeclarationAsEmptyTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesSGMLDeclarationAsEmptyTag.stree.txt @@ -1,10 +1,10 @@ -MarkupBlock - [0..33) - FullWidth: 33 - [] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..33)::33 - [] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTextLiteral - [5..27) - FullWidth: 22 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [5..27)::22 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Bang;[!]; Text;[DOCTYPE]; @@ -15,8 +15,8 @@ MarkupBlock - [0..33) - FullWidth: 33 - [] Whitespace;[ ]; Text;[baz]; CloseAngle;[>]; - MarkupTagBlock - [27..33) - FullWidth: 6 - MarkupTextLiteral - [27..33) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [27..33)::6 - [] + MarkupTextLiteral - [27..33)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesUntilMatchingEndTagIfFirstNonWhitespaceCharacterIsStartTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesUntilMatchingEndTagIfFirstNonWhitespaceCharacterIsStartTag.stree.txt index 5c5c7bd0b..89954be67 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesUntilMatchingEndTagIfFirstNonWhitespaceCharacterIsStartTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesUntilMatchingEndTagIfFirstNonWhitespaceCharacterIsStartTag.stree.txt @@ -1,33 +1,33 @@ -MarkupBlock - [0..33) - FullWidth: 33 - [] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..33)::33 - [] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[baz]; CloseAngle;[>]; - MarkupTagBlock - [5..10) - FullWidth: 5 - MarkupTextLiteral - [5..10) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [5..10)::5 - [] + MarkupTextLiteral - [5..10)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[boz]; CloseAngle;[>]; - MarkupTagBlock - [10..15) - FullWidth: 5 - MarkupTextLiteral - [10..15) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [10..15)::5 - [] + MarkupTextLiteral - [10..15)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[biz]; CloseAngle;[>]; - MarkupTagBlock - [15..21) - FullWidth: 6 - MarkupTextLiteral - [15..21) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [15..21)::6 - [] + MarkupTextLiteral - [15..21)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[biz]; CloseAngle;[>]; - MarkupTagBlock - [21..27) - FullWidth: 6 - MarkupTextLiteral - [21..27) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [21..27)::6 - [] + MarkupTextLiteral - [21..27)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[boz]; CloseAngle;[>]; - MarkupTagBlock - [27..33) - FullWidth: 6 - MarkupTextLiteral - [27..33) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [27..33)::6 - [] + MarkupTextLiteral - [27..33)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[baz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesXMLProcessingInstructionAsEmptyTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesXMLProcessingInstructionAsEmptyTag.stree.txt index 318f24cfd..b416a6b86 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesXMLProcessingInstructionAsEmptyTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParsesXMLProcessingInstructionAsEmptyTag.stree.txt @@ -1,10 +1,10 @@ -MarkupBlock - [0..30) - FullWidth: 30 - [] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..30)::30 - [] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTextLiteral - [5..24) - FullWidth: 19 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [5..24)::19 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; QuestionMark;[?]; Text;[xml]; @@ -16,8 +16,8 @@ MarkupBlock - [0..30) - FullWidth: 30 - [] Text;[baz]; QuestionMark;[?]; CloseAngle;[>]; - MarkupTagBlock - [24..30) - FullWidth: 6 - MarkupTextLiteral - [24..30) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [24..30)::6 - [] + MarkupTextLiteral - [24..30)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ProperlyBalancesCommentStartAndEndTags.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ProperlyBalancesCommentStartAndEndTags.stree.txt index 7b90410af..9a7e05221 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ProperlyBalancesCommentStartAndEndTags.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ProperlyBalancesCommentStartAndEndTags.stree.txt @@ -1,10 +1,10 @@ -MarkupBlock - [0..18) - FullWidth: 18 - [] - MarkupCommentBlock - [0..18) - FullWidth: 18 - MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..18)::18 - [] + MarkupCommentBlock - [0..18)::18 + MarkupTextLiteral - [0..4)::4 - [] ForwardSlash;[/]; Text;[bar]; CloseAngle;[>]; - MarkupTextLiteral - [15..18) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [15..18)::3 - [-->] - Gen - SpanEditHandler;Accepts:None DoubleHyphen;[--]; CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ReadsToEndOfLineIfFirstCharacterAfterTransitionIsColon.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ReadsToEndOfLineIfFirstCharacterAfterTransitionIsColon.stree.txt index f6f01076c..1c7838e43 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ReadsToEndOfLineIfFirstCharacterAfterTransitionIsColon.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ReadsToEndOfLineIfFirstCharacterAfterTransitionIsColon.stree.txt @@ -1,9 +1,9 @@ -MarkupBlock - [0..19) - FullWidth: 19 - [@:
  • Foo Bar BazLF] - MarkupTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..19)::19 - [@:
  • Foo Bar BazLF] + MarkupTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:Any Colon;[:]; - MarkupTextLiteral - [2..19) - FullWidth: 17 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [2..19)::17 - [
  • Foo Bar BazLF] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[li]; CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/RendersLiteralTextTagIfDoubled.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/RendersLiteralTextTagIfDoubled.stree.txt index 7266f498c..ef9daab3a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/RendersLiteralTextTagIfDoubled.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/RendersLiteralTextTagIfDoubled.stree.txt @@ -1,35 +1,35 @@ -MarkupBlock - [0..43) - FullWidth: 43 - [Foo Bar Baz] - MarkupTagBlock - [0..6) - FullWidth: 6 - MarkupTransition - [0..6) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..43)::43 - [Foo Bar Baz] + MarkupTagBlock - [0..6)::6 - [] + MarkupTransition - [0..6)::6 - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[text]; CloseAngle;[>]; - MarkupTagBlock - [6..12) - FullWidth: 6 - MarkupTextLiteral - [6..12) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [6..12)::6 - [] + MarkupTextLiteral - [6..12)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[text]; CloseAngle;[>]; - MarkupTextLiteral - [12..20) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [12..20)::8 - [Foo Bar ] - Gen - SpanEditHandler;Accepts:Any Text;[Foo]; Whitespace;[ ]; Text;[Bar]; Whitespace;[ ]; - MarkupTagBlock - [20..25) - FullWidth: 5 - MarkupTextLiteral - [20..25) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [20..25)::5 - [] + MarkupTextLiteral - [20..25)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTextLiteral - [25..29) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [25..29)::4 - [ Baz] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; Text;[Baz]; - MarkupTagBlock - [29..36) - FullWidth: 7 - MarkupTextLiteral - [29..36) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [29..36)::7 - [] + MarkupTextLiteral - [29..36)::7 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[text]; CloseAngle;[>]; - MarkupTagBlock - [36..43) - FullWidth: 7 - MarkupTransition - [36..43) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [36..43)::7 - [] + MarkupTransition - [36..43)::7 - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[text]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsAtMatchingCloseTagToStartTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsAtMatchingCloseTagToStartTag.stree.txt index 8d7387e15..d70b799bf 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsAtMatchingCloseTagToStartTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsAtMatchingCloseTagToStartTag.stree.txt @@ -1,22 +1,22 @@ -MarkupBlock - [0..14) - FullWidth: 14 - [] - MarkupTagBlock - [0..3) - FullWidth: 3 - MarkupTextLiteral - [0..3) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..14)::14 - [] + MarkupTagBlock - [0..3)::3 - [] + MarkupTextLiteral - [0..3)::3 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[a]; CloseAngle;[>]; - MarkupTagBlock - [3..6) - FullWidth: 3 - MarkupTextLiteral - [3..6) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [3..6)::3 - [] + MarkupTextLiteral - [3..6)::3 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[b]; CloseAngle;[>]; - MarkupTagBlock - [6..10) - FullWidth: 4 - MarkupTextLiteral - [6..10) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [6..10)::4 - [] + MarkupTextLiteral - [6..10)::4 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[b]; CloseAngle;[>]; - MarkupTagBlock - [10..14) - FullWidth: 4 - MarkupTextLiteral - [10..14) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [10..14)::4 - [] + MarkupTextLiteral - [10..14)::4 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[a]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsParsingMidEmptyTagIfEOFReached.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsParsingMidEmptyTagIfEOFReached.stree.txt index fdbc53cd0..6eb28acbc 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsParsingMidEmptyTagIfEOFReached.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsParsingMidEmptyTagIfEOFReached.stree.txt @@ -1,6 +1,6 @@ -MarkupBlock - [0..4) - FullWidth: 4 - [
    - SpanEditHandler;Accepts:Any +MarkupBlock - [0..4)::4 - [
    - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[br]; ForwardSlash;[/]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsParsingSingleLineBlockAtEOFIfNoEOLReached.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsParsingSingleLineBlockAtEOFIfNoEOLReached.stree.txt index 54e0a3ece..aeba50839 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsParsingSingleLineBlockAtEOFIfNoEOLReached.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/StopsParsingSingleLineBlockAtEOFIfNoEOLReached.stree.txt @@ -1,9 +1,9 @@ -MarkupBlock - [0..9) - FullWidth: 9 - [@:foo bar] - MarkupTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..9)::9 - [@:foo bar] + MarkupTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:Any Colon;[:]; - MarkupTextLiteral - [2..9) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [2..9)::7 - [foo bar] - Gen - SpanEditHandler;Accepts:Any Text;[foo]; Whitespace;[ ]; Text;[bar]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentAsBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentAsBlock.stree.txt index cac474518..d503ae4cc 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentAsBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentAsBlock.stree.txt @@ -1,13 +1,13 @@ -MarkupBlock - [0..12) - FullWidth: 12 - [] - MarkupCommentBlock - [0..12) - FullWidth: 12 - MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..12)::12 - [] + MarkupCommentBlock - [0..12)::12 + MarkupTextLiteral - [0..4)::4 - [] - Gen - SpanEditHandler;Accepts:None DoubleHyphen;[--]; CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentWithExtraDashAsBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentWithExtraDashAsBlock.stree.txt index 1318723ff..05979ffa7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentWithExtraDashAsBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentWithExtraDashAsBlock.stree.txt @@ -1,14 +1,14 @@ -MarkupBlock - [0..13) - FullWidth: 13 - [] - MarkupCommentBlock - [0..13) - FullWidth: 13 - MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..13)::13 - [] + MarkupCommentBlock - [0..13)::13 + MarkupTextLiteral - [0..4)::4 - [] - Gen - SpanEditHandler;Accepts:None DoubleHyphen;[--]; CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentWithinBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentWithinBlock.stree.txt index 0771a5795..0fb89ab28 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentWithinBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsCommentWithinBlock.stree.txt @@ -1,27 +1,27 @@ -MarkupBlock - [0..30) - FullWidth: 30 - [barbaz] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..30)::30 - [barbaz] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTextLiteral - [5..8) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [5..8)::3 - [bar] - Gen - SpanEditHandler;Accepts:Any Text;[bar]; - MarkupCommentBlock - [8..21) - FullWidth: 13 - MarkupTextLiteral - [8..12) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + MarkupCommentBlock - [8..21)::13 + MarkupTextLiteral - [8..12)::4 - [] - Gen - SpanEditHandler;Accepts:None DoubleHyphen;[--]; CloseAngle;[>]; - MarkupTextLiteral - [21..24) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [21..24)::3 - [baz] - Gen - SpanEditHandler;Accepts:None Text;[baz]; - MarkupTagBlock - [24..30) - FullWidth: 6 - MarkupTextLiteral - [24..30) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [24..30)::6 - [] + MarkupTextLiteral - [24..30)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsScriptTagsWithLessThanSignsInThem.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsScriptTagsWithLessThanSignsInThem.stree.txt index 58d1b5801..5e513098e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsScriptTagsWithLessThanSignsInThem.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsScriptTagsWithLessThanSignsInThem.stree.txt @@ -1,10 +1,10 @@ -MarkupBlock - [0..45) - FullWidth: 45 - [] - MarkupTagBlock - [0..8) - FullWidth: 8 - MarkupTextLiteral - [0..8) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..45)::45 - [] + MarkupTagBlock - [0..8)::8 - [] + MarkupTextLiteral - [36..45)::9 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[script]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsScriptTagsWithSpacedLessThanSignsInThem.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsScriptTagsWithSpacedLessThanSignsInThem.stree.txt index 0594754f6..dfec73907 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsScriptTagsWithSpacedLessThanSignsInThem.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsScriptTagsWithSpacedLessThanSignsInThem.stree.txt @@ -1,10 +1,10 @@ -MarkupBlock - [0..47) - FullWidth: 47 - [] - MarkupTagBlock - [0..8) - FullWidth: 8 - MarkupTextLiteral - [0..8) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..47)::47 - [] + MarkupTagBlock - [0..8)::8 - [] + MarkupTextLiteral - [38..47)::9 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[script]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsTagsWithAttributes.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsTagsWithAttributes.stree.txt index 1938ce213..3331b9547 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsTagsWithAttributes.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/SupportsTagsWithAttributes.stree.txt @@ -1,54 +1,54 @@ -MarkupBlock - [0..48) - FullWidth: 48 - [] - MarkupTagBlock - [0..15) - FullWidth: 15 - MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any +MarkupBlock - [0..48)::48 - [] + MarkupTagBlock - [0..15)::15 - [] + MarkupTextLiteral - [0..4)::4 - [ - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[foo]; - MarkupAttributeBlock - [4..14) - FullWidth: 10 - MarkupTextLiteral - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupAttributeBlock - [4..14)::10 - [ bar="baz"] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - MarkupTextLiteral - [5..8) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [5..8)::3 - [bar] - Gen - SpanEditHandler;Accepts:Any Text;[bar]; Equals;[=]; - MarkupTextLiteral - [9..10) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; - GenericBlock - [10..13) - FullWidth: 3 - MarkupLiteralAttributeValue - [10..13) - FullWidth: 3 - MarkupTextLiteral - [10..13) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + GenericBlock - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [baz] + MarkupTextLiteral - [10..13)::3 - [baz] - Gen - SpanEditHandler;Accepts:Any Text;[baz]; - MarkupTextLiteral - [13..14) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; - MarkupTextLiteral - [14..15) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [14..15)::1 - [>] - Gen - SpanEditHandler;Accepts:None CloseAngle;[>]; - MarkupTagBlock - [15..20) - FullWidth: 5 - MarkupTextLiteral - [15..20) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [15..20)::5 - [] + MarkupTextLiteral - [15..20)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[biz]; CloseAngle;[>]; - MarkupTagBlock - [20..36) - FullWidth: 16 - MarkupTextLiteral - [20..24) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [20..36)::16 - [] + MarkupTextLiteral - [20..24)::4 - [ - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[boz]; - MarkupAttributeBlock - [24..34) - FullWidth: 10 - MarkupTextLiteral - [24..25) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupAttributeBlock - [24..34)::10 - [ zoop=zork] + MarkupTextLiteral - [24..25)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - MarkupTextLiteral - [25..29) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [25..29)::4 - [zoop] - Gen - SpanEditHandler;Accepts:Any Text;[zoop]; Equals;[=]; - GenericBlock - [30..34) - FullWidth: 4 - MarkupLiteralAttributeValue - [30..34) - FullWidth: 4 - MarkupTextLiteral - [30..34) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + GenericBlock - [30..34)::4 + MarkupLiteralAttributeValue - [30..34)::4 - [zork] + MarkupTextLiteral - [30..34)::4 - [zork] - Gen - SpanEditHandler;Accepts:Any Text;[zork]; - MarkupTextLiteral - [34..36) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [34..36)::2 - [/>] - Gen - SpanEditHandler;Accepts:None ForwardSlash;[/]; CloseAngle;[>]; - MarkupTagBlock - [36..42) - FullWidth: 6 - MarkupTextLiteral - [36..42) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [36..42)::6 - [] + MarkupTextLiteral - [36..42)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[biz]; CloseAngle;[>]; - MarkupTagBlock - [42..48) - FullWidth: 6 - MarkupTextLiteral - [42..48) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [42..48)::6 - [] + MarkupTextLiteral - [42..48)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TagWithoutCloseAngleDoesNotTerminateBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TagWithoutCloseAngleDoesNotTerminateBlock.stree.txt index 33951fa8b..cc9623a3d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TagWithoutCloseAngleDoesNotTerminateBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TagWithoutCloseAngleDoesNotTerminateBlock.stree.txt @@ -1,6 +1,6 @@ -MarkupBlock - [0..28) - FullWidth: 28 - [< LF ] - MarkupTagBlock - [0..28) - FullWidth: 28 - MarkupTextLiteral - [0..28) - FullWidth: 28 - Gen - SpanEditHandler;Accepts:Any +MarkupBlock - [0..28)::28 - [< LF ] + MarkupTagBlock - [0..28)::28 - [< LF ] + MarkupTextLiteral - [0..28)::28 - [< LF ] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Whitespace;[ ]; NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesAtEOF.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesAtEOF.stree.txt index f2723e76d..6e363fb26 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesAtEOF.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesAtEOF.stree.txt @@ -1,6 +1,6 @@ -MarkupBlock - [0..5) - FullWidth: 5 - [] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..5)::5 - [] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesAtEOFWhenParsingComment.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesAtEOFWhenParsingComment.stree.txt index cead603ae..cf1cb3ed7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesAtEOFWhenParsingComment.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesAtEOFWhenParsingComment.stree.txt @@ -1,5 +1,5 @@ -MarkupBlock - [0..9) - FullWidth: 9 - [-->] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..31)::31 - [-->] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupCommentBlock - [5..22) - FullWidth: 17 - MarkupTextLiteral - [5..9) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + MarkupCommentBlock - [5..22)::17 + MarkupTextLiteral - [5..9)::4 - [] - Gen - SpanEditHandler;Accepts:None DoubleHyphen;[--]; CloseAngle;[>]; - MarkupTextLiteral - [22..25) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [22..25)::3 - [-->] - Gen - SpanEditHandler;Accepts:None DoubleHyphen;[--]; CloseAngle;[>]; - MarkupTagBlock - [25..31) - FullWidth: 6 - MarkupTextLiteral - [25..31) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [25..31)::6 - [] + MarkupTextLiteral - [25..31)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesSGMLDeclarationAtFirstCloseAngle.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesSGMLDeclarationAtFirstCloseAngle.stree.txt index 4c0726942..372a19319 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesSGMLDeclarationAtFirstCloseAngle.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesSGMLDeclarationAtFirstCloseAngle.stree.txt @@ -1,10 +1,10 @@ -MarkupBlock - [0..34) - FullWidth: 34 - [ baz>] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..34)::34 - [ baz>] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTextLiteral - [5..23) - FullWidth: 18 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [5..23)::18 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Bang;[!]; Text;[DOCTYPE]; @@ -13,12 +13,12 @@ MarkupBlock - [0..34) - FullWidth: 34 - [ baz>] Whitespace;[ ]; Text;[bar]; CloseAngle;[>]; - MarkupTextLiteral - [23..28) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [23..28)::5 - [ baz>] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; Text;[baz]; CloseAngle;[>]; - MarkupTagBlock - [28..34) - FullWidth: 6 - MarkupTextLiteral - [28..34) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [28..34)::6 - [] + MarkupTextLiteral - [28..34)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesXMLProcessingInstructionAtQuestionMarkCloseAnglePair.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesXMLProcessingInstructionAtQuestionMarkCloseAnglePair.stree.txt index 37f5276e3..caf96df47 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesXMLProcessingInstructionAtQuestionMarkCloseAnglePair.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TerminatesXMLProcessingInstructionAtQuestionMarkCloseAnglePair.stree.txt @@ -1,10 +1,10 @@ -MarkupBlock - [0..34) - FullWidth: 34 - [ baz] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..34)::34 - [ baz] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTextLiteral - [5..24) - FullWidth: 19 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [5..24)::19 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; QuestionMark;[?]; Text;[xml]; @@ -16,11 +16,11 @@ MarkupBlock - [0..34) - FullWidth: 34 - [ baz] Text;[baz]; QuestionMark;[?]; CloseAngle;[>]; - MarkupTextLiteral - [24..28) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [24..28)::4 - [ baz] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; Text;[baz]; - MarkupTagBlock - [28..34) - FullWidth: 6 - MarkupTextLiteral - [28..34) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [28..34)::6 - [] + MarkupTextLiteral - [28..34)::6 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TreatsMalformedTagsAsContent.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TreatsMalformedTagsAsContent.stree.txt index c0e58394f..3ec892f4b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TreatsMalformedTagsAsContent.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TreatsMalformedTagsAsContent.stree.txt @@ -1,11 +1,11 @@ -MarkupBlock - [0..18) - FullWidth: 18 - [] - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..18)::18 - [] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTagBlock - [5..18) - FullWidth: 13 - MarkupTextLiteral - [5..18) - FullWidth: 13 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [5..18)::13 - [] + MarkupTextLiteral - [5..18)::13 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Bang;[!]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/WithSelfClosingTagJustEmitsTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/WithSelfClosingTagJustEmitsTag.stree.txt index e195d07fb..1e2015375 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/WithSelfClosingTagJustEmitsTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/WithSelfClosingTagJustEmitsTag.stree.txt @@ -1,6 +1,6 @@ -MarkupBlock - [0..7) - FullWidth: 7 - [] - MarkupTagBlock - [0..7) - FullWidth: 7 - MarkupTextLiteral - [0..7) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None +MarkupBlock - [0..7)::7 - [] + MarkupTagBlock - [0..7)::7 - [] + MarkupTextLiteral - [0..7)::7 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[foo]; Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/AcceptsEndTagWithNoMatchingStartTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/AcceptsEndTagWithNoMatchingStartTag.stree.txt index 8bbf95d77..eb62248d2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/AcceptsEndTagWithNoMatchingStartTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/AcceptsEndTagWithNoMatchingStartTag.stree.txt @@ -1,14 +1,14 @@ -RazorDocument - [0..14) - FullWidth: 14 - [Foo Bar] - MarkupBlock - [0..14) - FullWidth: 14 - MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..14)::14 - [Foo Bar] + MarkupBlock - [0..14)::14 + MarkupTextLiteral - [0..4)::4 - [Foo ] - Gen - SpanEditHandler;Accepts:Any Text;[Foo]; Whitespace;[ ]; - MarkupTagBlock - [4..10) - FullWidth: 6 - MarkupTextLiteral - [4..10) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [4..10)::6 - [] + MarkupTextLiteral - [4..10)::6 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; ForwardSlash;[/]; Text;[div]; CloseAngle;[>]; - MarkupTextLiteral - [10..14) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [10..14)::4 - [ Bar] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; Text;[Bar]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/AcceptsSwapTokenAtEndOfFileAndOutputsZeroLengthCodeSpan.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/AcceptsSwapTokenAtEndOfFileAndOutputsZeroLengthCodeSpan.stree.txt index 20b4ad01f..1b3a186cb 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/AcceptsSwapTokenAtEndOfFileAndOutputsZeroLengthCodeSpan.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/AcceptsSwapTokenAtEndOfFileAndOutputsZeroLengthCodeSpan.stree.txt @@ -1,14 +1,14 @@ -RazorDocument - [0..1) - FullWidth: 1 - [@] - MarkupBlock - [0..1) - FullWidth: 1 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..1)::1 - [@] + MarkupBlock - [0..1)::1 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..1) - FullWidth: 1 - CSharpImplicitExpression - [0..1) - FullWidth: 1 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..1)::1 + CSharpImplicitExpression - [0..1)::1 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpImplicitExpressionBody - [1..1) - FullWidth: 0 - CSharpCodeBlock - [1..1) - FullWidth: 0 - CSharpExpressionLiteral - [1..1) - FullWidth: 0 - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + CSharpImplicitExpressionBody - [1..1)::0 + CSharpCodeBlock - [1..1)::0 + CSharpExpressionLiteral - [1..1)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 Marker;[]; - MarkupTextLiteral - [1..1) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [1..1)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/CorrectlyHandlesOddlySpacedHTMLElements.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/CorrectlyHandlesOddlySpacedHTMLElements.stree.txt index 53d2c4599..62726a289 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/CorrectlyHandlesOddlySpacedHTMLElements.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/CorrectlyHandlesOddlySpacedHTMLElements.stree.txt @@ -1,46 +1,46 @@ -RazorDocument - [0..39) - FullWidth: 39 - [

    Foo

    ] - MarkupBlock - [0..39) - FullWidth: 39 - MarkupTagBlock - [0..6) - FullWidth: 6 - MarkupTextLiteral - [0..6) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..39)::39 - [

    Foo

    ] + MarkupBlock - [0..39)::39 + MarkupTagBlock - [0..6)::6 - [
    ] + MarkupTextLiteral - [0..6)::6 - [
    ] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[div]; Whitespace;[ ]; CloseAngle;[>]; - MarkupTagBlock - [6..23) - FullWidth: 17 - MarkupTextLiteral - [6..8) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [6..23)::17 - [

    ] + MarkupTextLiteral - [6..8)::2 - [ - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[p]; - MarkupAttributeBlock - [8..22) - FullWidth: 14 - MarkupTextLiteral - [8..9) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupAttributeBlock - [8..22)::14 - [ class = 'bar'] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - MarkupTextLiteral - [9..14) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any Text;[class]; - MarkupTextLiteral - [14..15) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; Equals;[=]; - MarkupTextLiteral - [16..18) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [16..18)::2 - [ '] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; SingleQuote;[']; - GenericBlock - [18..21) - FullWidth: 3 - MarkupLiteralAttributeValue - [18..21) - FullWidth: 3 - MarkupTextLiteral - [18..21) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + GenericBlock - [18..21)::3 + MarkupLiteralAttributeValue - [18..21)::3 - [bar] + MarkupTextLiteral - [18..21)::3 - [bar] - Gen - SpanEditHandler;Accepts:Any Text;[bar]; - MarkupTextLiteral - [21..22) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [21..22)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; - MarkupTextLiteral - [22..23) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [22..23)::1 - [>] - Gen - SpanEditHandler;Accepts:Any CloseAngle;[>]; - MarkupTextLiteral - [23..28) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [23..28)::5 - [ Foo ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; Text;[Foo]; Whitespace;[ ]; - MarkupTagBlock - [28..32) - FullWidth: 4 - MarkupTextLiteral - [28..32) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [28..32)::4 - [

    ] + MarkupTextLiteral - [28..32)::4 - [

    ] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; ForwardSlash;[/]; Text;[p]; CloseAngle;[>]; - MarkupTagBlock - [32..39) - FullWidth: 7 - MarkupTextLiteral - [32..39) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [32..39)::7 - [
    ] + MarkupTextLiteral - [32..39)::7 - [
    ] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; ForwardSlash;[/]; Text;[div]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/CorrectlyHandlesSingleLineOfMarkupWithEmbeddedStatement.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/CorrectlyHandlesSingleLineOfMarkupWithEmbeddedStatement.stree.txt index 9dc0a4cc4..0822f48a4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/CorrectlyHandlesSingleLineOfMarkupWithEmbeddedStatement.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/CorrectlyHandlesSingleLineOfMarkupWithEmbeddedStatement.stree.txt @@ -1,17 +1,17 @@ -RazorDocument - [0..31) - FullWidth: 31 - [
    Foo @if(true) {} Bar
    ] - MarkupBlock - [0..31) - FullWidth: 31 - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..31)::31 - [
    Foo @if(true) {} Bar
    ] + MarkupBlock - [0..31)::31 + MarkupTagBlock - [0..5)::5 - [
    ] + MarkupTextLiteral - [0..5)::5 - [
    ] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[div]; CloseAngle;[>]; - MarkupTextLiteral - [5..9) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [5..9)::4 - [Foo ] - Gen - SpanEditHandler;Accepts:Any Text;[Foo]; Whitespace;[ ]; - CSharpCodeBlock - [9..21) - FullWidth: 12 - CSharpTransition - [9..10) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [9..21)::12 + CSharpTransition - [9..10)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementLiteral - [10..21) - FullWidth: 11 - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [10..21)::11 - [if(true) {}] - Gen - SpanEditHandler;Accepts:Any Keyword;[if]; LeftParenthesis;[(]; Keyword;[true]; @@ -19,11 +19,11 @@ RazorDocument - [0..31) - FullWidth: 31 - [
    Foo @if(true) {} Bar
    ] Whitespace;[ ]; LeftBrace;[{]; RightBrace;[}]; - MarkupTextLiteral - [21..25) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [21..25)::4 - [ Bar] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; Text;[Bar]; - MarkupTagBlock - [25..31) - FullWidth: 6 - MarkupTextLiteral - [25..31) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [25..31)::6 - [
    ] + MarkupTextLiteral - [25..31)::6 - [
    ] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; ForwardSlash;[/]; Text;[div]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotIgnoreNewLineAtTheEndOfMarkupBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotIgnoreNewLineAtTheEndOfMarkupBlock.stree.txt index d071dfcba..2f8c946bd 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotIgnoreNewLineAtTheEndOfMarkupBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotIgnoreNewLineAtTheEndOfMarkupBlock.stree.txt @@ -1,25 +1,25 @@ -RazorDocument - [0..15) - FullWidth: 15 - [@{LF}LFLF] - MarkupBlock - [0..15) - FullWidth: 15 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..15)::15 - [@{LF}LFLF] + MarkupBlock - [0..15)::15 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..5) - FullWidth: 5 - CSharpStatement - [0..5) - FullWidth: 5 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..5)::5 + CSharpStatement - [0..5)::5 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementBody - [1..5) - FullWidth: 4 - RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpStatementBody - [1..5)::4 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None LeftBrace;[{]; - CSharpCodeBlock - [2..4) - FullWidth: 2 - CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + CSharpCodeBlock - [2..4)::2 + CSharpStatementLiteral - [2..4)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL NewLine;[LF]; - RazorMetaCode - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RazorMetaCode - [4..5)::1 - Gen - SpanEditHandler;Accepts:None RightBrace;[}]; - MarkupEphemeralTextLiteral - [5..7) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + MarkupEphemeralTextLiteral - [5..7)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any NewLine;[LF]; - MarkupTagBlock - [7..13) - FullWidth: 6 - MarkupTextLiteral - [7..13) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [7..13)::6 - [] + MarkupTextLiteral - [7..13)::6 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[html]; CloseAngle;[>]; - MarkupTextLiteral - [13..15) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [13..15)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotIgnoreWhitespaceAtTheEndOfVerbatimBlockIfNoNewlinePresent.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotIgnoreWhitespaceAtTheEndOfVerbatimBlockIfNoNewlinePresent.stree.txt index d92996d54..da3662cee 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotIgnoreWhitespaceAtTheEndOfVerbatimBlockIfNoNewlinePresent.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotIgnoreWhitespaceAtTheEndOfVerbatimBlockIfNoNewlinePresent.stree.txt @@ -1,25 +1,25 @@ -RazorDocument - [0..17) - FullWidth: 17 - [@{LF} LF] - MarkupBlock - [0..17) - FullWidth: 17 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..17)::17 - [@{LF} LF] + MarkupBlock - [0..17)::17 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..5) - FullWidth: 5 - CSharpStatement - [0..5) - FullWidth: 5 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..5)::5 + CSharpStatement - [0..5)::5 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementBody - [1..5) - FullWidth: 4 - RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpStatementBody - [1..5)::4 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None LeftBrace;[{]; - CSharpCodeBlock - [2..4) - FullWidth: 2 - CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + CSharpCodeBlock - [2..4)::2 + CSharpStatementLiteral - [2..4)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL NewLine;[LF]; - RazorMetaCode - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RazorMetaCode - [4..5)::1 - Gen - SpanEditHandler;Accepts:None RightBrace;[}]; - MarkupTextLiteral - [5..9) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [5..9)::4 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - MarkupTagBlock - [9..15) - FullWidth: 6 - MarkupTextLiteral - [9..15) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [9..15)::6 - [] + MarkupTextLiteral - [9..15)::6 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[html]; CloseAngle;[>]; - MarkupTextLiteral - [15..17) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [15..17)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotRenderExtraNewLineAtTheEndOfVerbatimBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotRenderExtraNewLineAtTheEndOfVerbatimBlock.stree.txt index c945360b3..fcbe43d6d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotRenderExtraNewLineAtTheEndOfVerbatimBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotRenderExtraNewLineAtTheEndOfVerbatimBlock.stree.txt @@ -1,23 +1,23 @@ -RazorDocument - [0..13) - FullWidth: 13 - [@{LF}LF] - MarkupBlock - [0..13) - FullWidth: 13 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..13)::13 - [@{LF}LF] + MarkupBlock - [0..13)::13 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..5) - FullWidth: 5 - CSharpStatement - [0..5) - FullWidth: 5 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..5)::5 + CSharpStatement - [0..5)::5 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementBody - [1..5) - FullWidth: 4 - RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpStatementBody - [1..5)::4 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None LeftBrace;[{]; - CSharpCodeBlock - [2..4) - FullWidth: 2 - CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + CSharpCodeBlock - [2..4)::2 + CSharpStatementLiteral - [2..4)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL NewLine;[LF]; - RazorMetaCode - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RazorMetaCode - [4..5)::1 - Gen - SpanEditHandler;Accepts:None RightBrace;[}]; - MarkupEphemeralTextLiteral - [5..7) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + MarkupEphemeralTextLiteral - [5..7)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any NewLine;[LF]; - MarkupTagBlock - [7..13) - FullWidth: 6 - MarkupTextLiteral - [7..13) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [7..13)::6 - [] + MarkupTextLiteral - [7..13)::6 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[html]; CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotRenderExtraWhitespaceAndNewLineAtTheEndOfVerbatimBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotRenderExtraWhitespaceAndNewLineAtTheEndOfVerbatimBlock.stree.txt index c21da1582..446309a65 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotRenderExtraWhitespaceAndNewLineAtTheEndOfVerbatimBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotRenderExtraWhitespaceAndNewLineAtTheEndOfVerbatimBlock.stree.txt @@ -1,24 +1,24 @@ -RazorDocument - [0..15) - FullWidth: 15 - [@{LF} LF] - MarkupBlock - [0..15) - FullWidth: 15 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..15)::15 - [@{LF} LF] + MarkupBlock - [0..15)::15 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..5) - FullWidth: 5 - CSharpStatement - [0..5) - FullWidth: 5 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..5)::5 + CSharpStatement - [0..5)::5 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementBody - [1..5) - FullWidth: 4 - RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpStatementBody - [1..5)::4 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None LeftBrace;[{]; - CSharpCodeBlock - [2..4) - FullWidth: 2 - CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + CSharpCodeBlock - [2..4)::2 + CSharpStatementLiteral - [2..4)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL NewLine;[LF]; - RazorMetaCode - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RazorMetaCode - [4..5)::1 - Gen - SpanEditHandler;Accepts:None RightBrace;[}]; - MarkupEphemeralTextLiteral - [5..9) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupEphemeralTextLiteral - [5..9)::4 - [ LF] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; NewLine;[LF]; - MarkupTagBlock - [9..15) - FullWidth: 6 - MarkupTextLiteral - [9..15) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [9..15)::6 - [] + MarkupTextLiteral - [9..15)::6 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[html]; CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotRenderNewlineAfterTextTagInVerbatimBlockIfFollowedByCSharp.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotRenderNewlineAfterTextTagInVerbatimBlockIfFollowedByCSharp.stree.txt index e7a664c8e..99cd6a1e7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotRenderNewlineAfterTextTagInVerbatimBlockIfFollowedByCSharp.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotRenderNewlineAfterTextTagInVerbatimBlockIfFollowedByCSharp.stree.txt @@ -1,36 +1,36 @@ -RazorDocument - [0..30) - FullWidth: 30 - [@{BlahLFLF}] - MarkupBlock - [0..30) - FullWidth: 30 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..30)::30 - [@{BlahLFLF}] + MarkupBlock - [0..30)::30 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..24) - FullWidth: 24 - CSharpStatement - [0..24) - FullWidth: 24 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..24)::24 + CSharpStatement - [0..24)::24 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementBody - [1..24) - FullWidth: 23 - RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpStatementBody - [1..24)::23 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None LeftBrace;[{]; - CSharpCodeBlock - [2..23) - FullWidth: 21 - MarkupBlock - [2..19) - FullWidth: 17 - MarkupTagBlock - [2..8) - FullWidth: 6 - MarkupTransition - [2..8) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [2..23)::21 + MarkupBlock - [2..19)::17 + MarkupTagBlock - [2..8)::6 - [] + MarkupTransition - [2..8)::6 - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[text]; CloseAngle;[>]; - MarkupTextLiteral - [8..12) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [8..12)::4 - [Blah] - Gen - SpanEditHandler;Accepts:None Text;[Blah]; - MarkupTagBlock - [12..19) - FullWidth: 7 - MarkupTransition - [12..19) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [12..19)::7 - [] + MarkupTransition - [12..19)::7 - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[text]; CloseAngle;[>]; - CSharpStatementLiteral - [19..23) - FullWidth: 4 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + CSharpStatementLiteral - [19..23)::4 - [LFLF] - Gen - SpanEditHandler;Accepts:Any NewLine;[LF]; NewLine;[LF]; - RazorMetaCode - [23..24) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RazorMetaCode - [23..24)::1 - Gen - SpanEditHandler;Accepts:None RightBrace;[}]; - MarkupTagBlock - [24..30) - FullWidth: 6 - MarkupTextLiteral - [24..30) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [24..30)::6 - [] + MarkupTextLiteral - [24..30)::6 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[html]; CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotReturnErrorOnMismatchedTags.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotReturnErrorOnMismatchedTags.stree.txt index 22116b18e..d8bdb6a61 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotReturnErrorOnMismatchedTags.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotReturnErrorOnMismatchedTags.stree.txt @@ -1,30 +1,30 @@ -RazorDocument - [0..24) - FullWidth: 24 - [Foo

    Baz] - MarkupBlock - [0..24) - FullWidth: 24 - MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..24)::24 - [Foo

    Baz] + MarkupBlock - [0..24)::24 + MarkupTextLiteral - [0..4)::4 - [Foo ] - Gen - SpanEditHandler;Accepts:Any Text;[Foo]; Whitespace;[ ]; - MarkupTagBlock - [4..9) - FullWidth: 5 - MarkupTextLiteral - [4..9) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [4..9)::5 - [
    ] + MarkupTextLiteral - [4..9)::5 - [
    ] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[div]; CloseAngle;[>]; - MarkupTagBlock - [9..12) - FullWidth: 3 - MarkupTextLiteral - [9..12) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [9..12)::3 - [

    ] + MarkupTextLiteral - [9..12)::3 - [

    ] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[p]; CloseAngle;[>]; - MarkupTagBlock - [12..16) - FullWidth: 4 - MarkupTextLiteral - [12..16) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [12..16)::4 - [

    ] + MarkupTextLiteral - [12..16)::4 - [

    ] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; ForwardSlash;[/]; Text;[p]; CloseAngle;[>]; - MarkupTagBlock - [16..20) - FullWidth: 4 - MarkupTextLiteral - [16..20) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [16..20)::4 - [

    ] + MarkupTextLiteral - [16..20)::4 - [

    ] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; ForwardSlash;[/]; Text;[p]; CloseAngle;[>]; - MarkupTextLiteral - [20..24) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [20..24)::4 - [ Baz] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; Text;[Baz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotSwitchToCodeOnEmailAddressInAttribute.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotSwitchToCodeOnEmailAddressInAttribute.stree.txt index 49cec6e08..a5bfee0c7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotSwitchToCodeOnEmailAddressInAttribute.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/DoesNotSwitchToCodeOnEmailAddressInAttribute.stree.txt @@ -1,31 +1,31 @@ -RazorDocument - [0..51) - FullWidth: 51 - [Email me] - MarkupBlock - [0..51) - FullWidth: 51 - MarkupTagBlock - [0..39) - FullWidth: 39 - MarkupTextLiteral - [0..2) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..51)::51 - [Email me] + MarkupBlock - [0..51)::51 + MarkupTagBlock - [0..39)::39 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[a]; - MarkupAttributeBlock - [2..38) - FullWidth: 36 - MarkupTextLiteral - [2..3) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupAttributeBlock - [2..38)::36 - [ href="mailto:example@microsoft.com"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - MarkupTextLiteral - [3..7) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [3..7)::4 - [href] - Gen - SpanEditHandler;Accepts:Any Text;[href]; Equals;[=]; - MarkupTextLiteral - [8..9) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [8..9)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; - GenericBlock - [9..37) - FullWidth: 28 - MarkupLiteralAttributeValue - [9..37) - FullWidth: 28 - MarkupTextLiteral - [9..37) - FullWidth: 28 - Gen - SpanEditHandler;Accepts:Any + GenericBlock - [9..37)::28 + MarkupLiteralAttributeValue - [9..37)::28 - [mailto:example@microsoft.com] + MarkupTextLiteral - [9..37)::28 - [mailto:example@microsoft.com] - Gen - SpanEditHandler;Accepts:Any Text;[mailto:example@microsoft.com]; - MarkupTextLiteral - [37..38) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [37..38)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; - MarkupTextLiteral - [38..39) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [38..39)::1 - [>] - Gen - SpanEditHandler;Accepts:Any CloseAngle;[>]; - MarkupTextLiteral - [39..47) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [39..47)::8 - [Email me] - Gen - SpanEditHandler;Accepts:Any Text;[Email]; Whitespace;[ ]; Text;[me]; - MarkupTagBlock - [47..51) - FullWidth: 4 - MarkupTextLiteral - [47..51) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [47..51)::4 - [] + MarkupTextLiteral - [47..51)::4 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; ForwardSlash;[/]; Text;[a]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/EmitsAtSignAsMarkupIfAtEndOfFile.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/EmitsAtSignAsMarkupIfAtEndOfFile.stree.txt index 4ed0a4357..5f52cafeb 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/EmitsAtSignAsMarkupIfAtEndOfFile.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/EmitsAtSignAsMarkupIfAtEndOfFile.stree.txt @@ -1,15 +1,15 @@ -RazorDocument - [0..5) - FullWidth: 5 - [foo @] - MarkupBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..5)::5 - [foo @] + MarkupBlock - [0..5)::5 + MarkupTextLiteral - [0..4)::4 - [foo ] - Gen - SpanEditHandler;Accepts:Any Text;[foo]; Whitespace;[ ]; - CSharpCodeBlock - [4..5) - FullWidth: 1 - CSharpImplicitExpression - [4..5) - FullWidth: 1 - CSharpTransition - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [4..5)::1 + CSharpImplicitExpression - [4..5)::1 + CSharpTransition - [4..5)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpImplicitExpressionBody - [5..5) - FullWidth: 0 - CSharpCodeBlock - [5..5) - FullWidth: 0 - CSharpExpressionLiteral - [5..5) - FullWidth: 0 - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + CSharpImplicitExpressionBody - [5..5)::0 + CSharpCodeBlock - [5..5)::0 + CSharpExpressionLiteral - [5..5)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 Marker;[]; - MarkupTextLiteral - [5..5) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [5..5)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/EmitsCodeBlockIfFirstCharacterIsSwapCharacter.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/EmitsCodeBlockIfFirstCharacterIsSwapCharacter.stree.txt index 1a167eded..14decc375 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/EmitsCodeBlockIfFirstCharacterIsSwapCharacter.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/EmitsCodeBlockIfFirstCharacterIsSwapCharacter.stree.txt @@ -1,14 +1,14 @@ -RazorDocument - [0..4) - FullWidth: 4 - [@bar] - MarkupBlock - [0..4) - FullWidth: 4 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..4)::4 - [@bar] + MarkupBlock - [0..4)::4 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..4) - FullWidth: 4 - CSharpImplicitExpression - [0..4) - FullWidth: 4 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..4)::4 + CSharpImplicitExpression - [0..4)::4 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpImplicitExpressionBody - [1..4) - FullWidth: 3 - CSharpCodeBlock - [1..4) - FullWidth: 3 - CSharpExpressionLiteral - [1..4) - FullWidth: 3 - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + CSharpImplicitExpressionBody - [1..4)::3 + CSharpCodeBlock - [1..4)::3 + CSharpExpressionLiteral - [1..4)::3 - [bar] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 Identifier;[bar]; - MarkupTextLiteral - [4..4) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [4..4)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandlesExtraNewLineBeforeMarkupInNestedBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandlesExtraNewLineBeforeMarkupInNestedBlock.stree.txt index a9ee36507..be711bcf2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandlesExtraNewLineBeforeMarkupInNestedBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandlesExtraNewLineBeforeMarkupInNestedBlock.stree.txt @@ -1,21 +1,21 @@ -RazorDocument - [0..37) - FullWidth: 37 - [@{LF@if(true){LF} LF LF}] - MarkupBlock - [0..37) - FullWidth: 37 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..37)::37 - [@{LF@if(true){LF} LF LF}] + MarkupBlock - [0..37)::37 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..31) - FullWidth: 31 - CSharpStatement - [0..31) - FullWidth: 31 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..31)::31 + CSharpStatement - [0..31)::31 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementBody - [1..31) - FullWidth: 30 - RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpStatementBody - [1..31)::30 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None LeftBrace;[{]; - CSharpCodeBlock - [2..30) - FullWidth: 28 - CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + CSharpCodeBlock - [2..30)::28 + CSharpStatementLiteral - [2..4)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL NewLine;[LF]; - CSharpCodeBlock - [4..17) - FullWidth: 13 - CSharpTransition - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [4..17)::13 + CSharpTransition - [4..5)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementLiteral - [5..17) - FullWidth: 12 - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [5..17)::12 - [if(true){LF}] - Gen - SpanEditHandler;Accepts:Any Keyword;[if]; LeftParenthesis;[(]; Keyword;[true]; @@ -23,24 +23,24 @@ RazorDocument - [0..37) - FullWidth: 37 - [@{LF@if(true){LF} LF LF} LeftBrace;[{]; NewLine;[LF]; RightBrace;[}]; - CSharpStatementLiteral - [17..20) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [17..20)::3 - [ LF] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; NewLine;[LF]; - MarkupBlock - [20..30) - FullWidth: 10 - MarkupTagBlock - [20..27) - FullWidth: 7 - MarkupTextLiteral - [20..27) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + MarkupBlock - [20..30)::10 + MarkupTagBlock - [20..27)::7 - [] + MarkupTextLiteral - [20..27)::7 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[input]; CloseAngle;[>]; - MarkupTextLiteral - [27..30) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [27..30)::3 - [ LF] - Gen - SpanEditHandler;Accepts:None Whitespace;[ ]; NewLine;[LF]; - CSharpStatementLiteral - [30..30) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [30..30)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - RazorMetaCode - [30..31) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RazorMetaCode - [30..31)::1 - Gen - SpanEditHandler;Accepts:None RightBrace;[}]; - MarkupTagBlock - [31..37) - FullWidth: 6 - MarkupTextLiteral - [31..37) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [31..37)::6 - [] + MarkupTextLiteral - [31..37)::6 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[html]; CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandlesNewLineAndMarkupInNestedBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandlesNewLineAndMarkupInNestedBlock.stree.txt index 68310ce10..b1462eaf2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandlesNewLineAndMarkupInNestedBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandlesNewLineAndMarkupInNestedBlock.stree.txt @@ -1,21 +1,21 @@ -RazorDocument - [0..27) - FullWidth: 27 - [@{LF@if(true){LF} }] - MarkupBlock - [0..27) - FullWidth: 27 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..27)::27 - [@{LF@if(true){LF} }] + MarkupBlock - [0..27)::27 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..27) - FullWidth: 27 - CSharpStatement - [0..27) - FullWidth: 27 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..27)::27 + CSharpStatement - [0..27)::27 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementBody - [1..27) - FullWidth: 26 - RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpStatementBody - [1..27)::26 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None LeftBrace;[{]; - CSharpCodeBlock - [2..26) - FullWidth: 24 - CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + CSharpCodeBlock - [2..26)::24 + CSharpStatementLiteral - [2..4)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL NewLine;[LF]; - CSharpCodeBlock - [4..17) - FullWidth: 13 - CSharpTransition - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [4..17)::13 + CSharpTransition - [4..5)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementLiteral - [5..17) - FullWidth: 12 - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [5..17)::12 - [if(true){LF}] - Gen - SpanEditHandler;Accepts:Any Keyword;[if]; LeftParenthesis;[(]; Keyword;[true]; @@ -23,19 +23,19 @@ RazorDocument - [0..27) - FullWidth: 27 - [@{LF@if(true){LF} }] LeftBrace;[{]; NewLine;[LF]; RightBrace;[}]; - MarkupBlock - [17..26) - FullWidth: 9 - MarkupTextLiteral - [17..18) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupBlock - [17..26)::9 + MarkupTextLiteral - [17..18)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - MarkupTagBlock - [18..25) - FullWidth: 7 - MarkupTextLiteral - [18..25) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [18..25)::7 - [] + MarkupTextLiteral - [18..25)::7 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[input]; CloseAngle;[>]; - MarkupTextLiteral - [25..26) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:None Whitespace;[ ]; - CSharpStatementLiteral - [26..26) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [26..26)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - RazorMetaCode - [26..27) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RazorMetaCode - [26..27)::1 - Gen - SpanEditHandler;Accepts:None RightBrace;[}]; - MarkupTextLiteral - [27..27) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [27..27)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandlesNewLineInNestedBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandlesNewLineInNestedBlock.stree.txt index dbc7c2092..8a7ee3056 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandlesNewLineInNestedBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandlesNewLineInNestedBlock.stree.txt @@ -1,21 +1,21 @@ -RazorDocument - [0..29) - FullWidth: 29 - [@{LF@if(true){LF} LF}LF] - MarkupBlock - [0..29) - FullWidth: 29 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..29)::29 - [@{LF@if(true){LF} LF}LF] + MarkupBlock - [0..29)::29 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..21) - FullWidth: 21 - CSharpStatement - [0..21) - FullWidth: 21 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..21)::21 + CSharpStatement - [0..21)::21 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementBody - [1..21) - FullWidth: 20 - RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpStatementBody - [1..21)::20 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None LeftBrace;[{]; - CSharpCodeBlock - [2..20) - FullWidth: 18 - CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + CSharpCodeBlock - [2..20)::18 + CSharpStatementLiteral - [2..4)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL NewLine;[LF]; - CSharpCodeBlock - [4..17) - FullWidth: 13 - CSharpTransition - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [4..17)::13 + CSharpTransition - [4..5)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementLiteral - [5..17) - FullWidth: 12 - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [5..17)::12 - [if(true){LF}] - Gen - SpanEditHandler;Accepts:Any Keyword;[if]; LeftParenthesis;[(]; Keyword;[true]; @@ -23,15 +23,15 @@ RazorDocument - [0..29) - FullWidth: 29 - [@{LF@if(true){LF} LF}LF] LeftBrace;[{]; NewLine;[LF]; RightBrace;[}]; - CSharpStatementLiteral - [17..20) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [17..20)::3 - [ LF] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; NewLine;[LF]; - RazorMetaCode - [20..21) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RazorMetaCode - [20..21)::1 - Gen - SpanEditHandler;Accepts:None RightBrace;[}]; - MarkupEphemeralTextLiteral - [21..23) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + MarkupEphemeralTextLiteral - [21..23)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any NewLine;[LF]; - MarkupTagBlock - [23..29) - FullWidth: 6 - MarkupTextLiteral - [23..29) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [23..29)::6 - [] + MarkupTextLiteral - [23..29)::6 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[html]; CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandsParsingOverToCodeParserWhenAtSignEncounteredAndEmitsOutput.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandsParsingOverToCodeParserWhenAtSignEncounteredAndEmitsOutput.stree.txt index df3820603..112b5dc46 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandsParsingOverToCodeParserWhenAtSignEncounteredAndEmitsOutput.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandsParsingOverToCodeParserWhenAtSignEncounteredAndEmitsOutput.stree.txt @@ -1,16 +1,16 @@ -RazorDocument - [0..12) - FullWidth: 12 - [foo @bar baz] - MarkupBlock - [0..12) - FullWidth: 12 - MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..12)::12 - [foo @bar baz] + MarkupBlock - [0..12)::12 + MarkupTextLiteral - [0..4)::4 - [foo ] - Gen - SpanEditHandler;Accepts:Any Text;[foo]; Whitespace;[ ]; - CSharpCodeBlock - [4..8) - FullWidth: 4 - CSharpImplicitExpression - [4..8) - FullWidth: 4 - CSharpTransition - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [4..8)::4 + CSharpImplicitExpression - [4..8)::4 + CSharpTransition - [4..5)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpImplicitExpressionBody - [5..8) - FullWidth: 3 - CSharpCodeBlock - [5..8) - FullWidth: 3 - CSharpExpressionLiteral - [5..8) - FullWidth: 3 - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + CSharpImplicitExpressionBody - [5..8)::3 + CSharpCodeBlock - [5..8)::3 + CSharpExpressionLiteral - [5..8)::3 - [bar] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 Identifier;[bar]; - MarkupTextLiteral - [8..12) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [8..12)::4 - [ baz] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; Text;[baz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/IgnoresTagsInContentsOfScriptTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/IgnoresTagsInContentsOfScriptTag.stree.txt index ad213bb56..697d3e5c8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/IgnoresTagsInContentsOfScriptTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/IgnoresTagsInContentsOfScriptTag.stree.txt @@ -1,11 +1,11 @@ -RazorDocument - [0..36) - FullWidth: 36 - [] - MarkupBlock - [0..36) - FullWidth: 36 - MarkupTagBlock - [0..8) - FullWidth: 8 - MarkupTextLiteral - [0..8) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..36)::36 - [] + MarkupBlock - [0..36)::36 + MarkupTagBlock - [0..8)::8 - [] Text;[baz]; Equals;[=]; SingleQuote;[']; - CSharpCodeBlock - [21..25) - FullWidth: 4 - CSharpImplicitExpression - [21..25) - FullWidth: 4 - CSharpTransition - [21..22) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [21..25)::4 + CSharpImplicitExpression - [21..25)::4 + CSharpTransition - [21..22)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpImplicitExpressionBody - [22..25) - FullWidth: 3 - CSharpCodeBlock - [22..25) - FullWidth: 3 - CSharpExpressionLiteral - [22..25) - FullWidth: 3 - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + CSharpImplicitExpressionBody - [22..25)::3 + CSharpCodeBlock - [22..25)::3 + CSharpExpressionLiteral - [22..25)::3 - [boz] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 Identifier;[boz]; - MarkupTextLiteral - [25..27) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [25..27)::2 - ['>] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; CloseAngle;[>]; - MarkupTagBlock - [27..36) - FullWidth: 9 - MarkupTextLiteral - [27..36) - FullWidth: 9 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [27..36)::9 - [] + MarkupTextLiteral - [27..36)::9 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; ForwardSlash;[/]; Text;[script]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/NestedCodeBlockWithMarkupSetsDotAsMarkup.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/NestedCodeBlockWithMarkupSetsDotAsMarkup.stree.txt index 6450d7ca8..ce225dd4a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/NestedCodeBlockWithMarkupSetsDotAsMarkup.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/NestedCodeBlockWithMarkupSetsDotAsMarkup.stree.txt @@ -1,11 +1,11 @@ -RazorDocument - [0..52) - FullWidth: 52 - [@if (true) { @if(false) {
    @something.
    } }] - MarkupBlock - [0..52) - FullWidth: 52 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..52)::52 - [@if (true) { @if(false) {
    @something.
    } }] + MarkupBlock - [0..52)::52 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..52) - FullWidth: 52 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..52)::52 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementLiteral - [1..13) - FullWidth: 12 - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [1..13)::12 - [if (true) { ] - Gen - SpanEditHandler;Accepts:Any Keyword;[if]; Whitespace;[ ]; LeftParenthesis;[(]; @@ -14,46 +14,46 @@ RazorDocument - [0..52) - FullWidth: 52 - [@if (true) { @if(false) {
    @somet Whitespace;[ ]; LeftBrace;[{]; Whitespace;[ ]; - CSharpCodeBlock - [13..50) - FullWidth: 37 - CSharpTransition - [13..14) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [13..50)::37 + CSharpTransition - [13..14)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementLiteral - [14..25) - FullWidth: 11 - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [14..25)::11 - [if(false) {] - Gen - SpanEditHandler;Accepts:Any Keyword;[if]; LeftParenthesis;[(]; Keyword;[false]; RightParenthesis;[)]; Whitespace;[ ]; LeftBrace;[{]; - MarkupBlock - [25..49) - FullWidth: 24 - MarkupTextLiteral - [25..26) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupBlock - [25..49)::24 + MarkupTextLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - MarkupTagBlock - [26..31) - FullWidth: 5 - MarkupTextLiteral - [26..31) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [26..31)::5 - [
    ] + MarkupTextLiteral - [26..31)::5 - [
    ] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[div]; CloseAngle;[>]; - MarkupTextLiteral - [31..31) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [31..31)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [31..41) - FullWidth: 10 - CSharpImplicitExpression - [31..41) - FullWidth: 10 - CSharpTransition - [31..32) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [31..41)::10 + CSharpImplicitExpression - [31..41)::10 + CSharpTransition - [31..32)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpImplicitExpressionBody - [32..41) - FullWidth: 9 - CSharpCodeBlock - [32..41) - FullWidth: 9 - CSharpExpressionLiteral - [32..41) - FullWidth: 9 - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + CSharpImplicitExpressionBody - [32..41)::9 + CSharpCodeBlock - [32..41)::9 + CSharpExpressionLiteral - [32..41)::9 - [something] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 Identifier;[something]; - MarkupTextLiteral - [41..42) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [41..42)::1 - [.] - Gen - SpanEditHandler;Accepts:Any Text;[.]; - MarkupTagBlock - [42..48) - FullWidth: 6 - MarkupTextLiteral - [42..48) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [42..48)::6 - [
    ] + MarkupTextLiteral - [42..48)::6 - [
    ] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[div]; CloseAngle;[>]; - MarkupTextLiteral - [48..49) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [48..49)::1 - [ ] - Gen - SpanEditHandler;Accepts:None Whitespace;[ ]; - CSharpStatementLiteral - [49..50) - FullWidth: 1 - Gen - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 + CSharpStatementLiteral - [49..50)::1 - [}] - Gen - SpanEditHandler;Accepts:Any RightBrace;[}]; - CSharpStatementLiteral - [50..52) - FullWidth: 2 - Gen - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[ATD];K14 + CSharpStatementLiteral - [50..52)::2 - [ }] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/NoLongerSupportsDollarOpenBraceCombination.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/NoLongerSupportsDollarOpenBraceCombination.stree.txt index 2923e610c..83a58c80e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/NoLongerSupportsDollarOpenBraceCombination.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/NoLongerSupportsDollarOpenBraceCombination.stree.txt @@ -1,14 +1,14 @@ -RazorDocument - [0..17) - FullWidth: 17 - [${bar}] - MarkupBlock - [0..17) - FullWidth: 17 - MarkupTagBlock - [0..5) - FullWidth: 5 - MarkupTextLiteral - [0..5) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..17)::17 - [${bar}] + MarkupBlock - [0..17)::17 + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[foo]; CloseAngle;[>]; - MarkupTextLiteral - [5..11) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [5..11)::6 - [${bar}] - Gen - SpanEditHandler;Accepts:Any Text;[${bar}]; - MarkupTagBlock - [11..17) - FullWidth: 6 - MarkupTextLiteral - [11..17) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [11..17)::6 - [] + MarkupTextLiteral - [11..17)::6 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; ForwardSlash;[/]; Text;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/OutputsEmptyBlockWithEmptyMarkupSpanIfContentIsEmptyString.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/OutputsEmptyBlockWithEmptyMarkupSpanIfContentIsEmptyString.stree.txt index 4e3000082..dcd6e3091 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/OutputsEmptyBlockWithEmptyMarkupSpanIfContentIsEmptyString.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/OutputsEmptyBlockWithEmptyMarkupSpanIfContentIsEmptyString.stree.txt @@ -1,4 +1,4 @@ -RazorDocument - [0..0) - FullWidth: 0 - [] - MarkupBlock - [0..0) - FullWidth: 0 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..0)::0 - [] + MarkupBlock - [0..0)::0 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/OutputsWhitespaceOnlyContentAsSingleWhitespaceMarkupSpan.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/OutputsWhitespaceOnlyContentAsSingleWhitespaceMarkupSpan.stree.txt index f51e794b2..8ba87c13e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/OutputsWhitespaceOnlyContentAsSingleWhitespaceMarkupSpan.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/OutputsWhitespaceOnlyContentAsSingleWhitespaceMarkupSpan.stree.txt @@ -1,4 +1,4 @@ -RazorDocument - [0..10) - FullWidth: 10 - [ ] - MarkupBlock - [0..10) - FullWidth: 10 - MarkupTextLiteral - [0..10) - FullWidth: 10 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..10)::10 - [ ] + MarkupBlock - [0..10)::10 + MarkupTextLiteral - [0..10)::10 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParseDocumentDoesNotSwitchToCodeOnEmailAddressInText.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParseDocumentDoesNotSwitchToCodeOnEmailAddressInText.stree.txt index b40a8668c..d745d5216 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParseDocumentDoesNotSwitchToCodeOnEmailAddressInText.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParseDocumentDoesNotSwitchToCodeOnEmailAddressInText.stree.txt @@ -1,4 +1,4 @@ -RazorDocument - [0..21) - FullWidth: 21 - [example@microsoft.com] - MarkupBlock - [0..21) - FullWidth: 21 - MarkupTextLiteral - [0..21) - FullWidth: 21 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..21)::21 - [example@microsoft.com] + MarkupBlock - [0..21)::21 + MarkupTextLiteral - [0..21)::21 - [example@microsoft.com] - Gen - SpanEditHandler;Accepts:Any Text;[example@microsoft.com]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParseSectionIgnoresTagsInContentsOfScriptTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParseSectionIgnoresTagsInContentsOfScriptTag.stree.txt index 255197a72..df6cc2b45 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParseSectionIgnoresTagsInContentsOfScriptTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParseSectionIgnoresTagsInContentsOfScriptTag.stree.txt @@ -1,32 +1,32 @@ -RazorDocument - [0..53) - FullWidth: 53 - [@section Foo { }] - MarkupBlock - [0..53) - FullWidth: 53 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..53)::53 - [@section Foo { }] + MarkupBlock - [0..53)::53 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..53) - FullWidth: 53 - RazorDirective - [0..53) - FullWidth: 53 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..53)::53 + RazorDirective - [0..53)::53 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - RazorDirectiveBody - [1..53) - FullWidth: 52 - RazorMetaCode - [1..8) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + RazorDirectiveBody - [1..53)::52 + RazorMetaCode - [1..8)::7 - Gen - SpanEditHandler;Accepts:None Identifier;[section]; - CSharpCodeBlock - [8..53) - FullWidth: 45 - CSharpStatementLiteral - [8..9) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Whitespace + CSharpCodeBlock - [8..53)::45 + CSharpStatementLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace Whitespace;[ ]; - CSharpStatementLiteral - [9..12) - FullWidth: 3 - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + CSharpStatementLiteral - [9..12)::3 - [Foo] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace Identifier;[Foo]; - MarkupTextLiteral - [12..13) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:AllWhitespace + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:AllWhitespace Whitespace;[ ]; - RazorMetaCode - [13..14) - FullWidth: 1 - Gen - AutoCompleteEditHandler;Accepts:None,AutoComplete:[];AtEnd + RazorMetaCode - [13..14)::1 - Gen - AutoCompleteEditHandler;Accepts:None,AutoComplete:[];AtEnd LeftBrace;[{]; - MarkupBlock - [14..52) - FullWidth: 38 - MarkupTextLiteral - [14..15) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupBlock - [14..52)::38 + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - MarkupTagBlock - [15..23) - FullWidth: 8 - MarkupTextLiteral - [15..23) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [15..23)::8 - [] + MarkupTextLiteral - [42..51)::9 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; ForwardSlash;[/]; Text;[script]; CloseAngle;[>]; - MarkupTextLiteral - [51..52) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [51..52)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - RazorMetaCode - [52..53) - FullWidth: 1 - Gen - ImplicitExpressionEditHandler;Accepts:None;ImplicitExpression[RTD];K15 + RazorMetaCode - [52..53)::1 - Gen - SpanEditHandler;Accepts:None RightBrace;[}]; - MarkupTextLiteral - [53..53) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [53..53)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParsesWholeContentAsOneSpanIfNoSwapCharacterEncountered.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParsesWholeContentAsOneSpanIfNoSwapCharacterEncountered.stree.txt index b8fbb1060..30659bb00 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParsesWholeContentAsOneSpanIfNoSwapCharacterEncountered.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ParsesWholeContentAsOneSpanIfNoSwapCharacterEncountered.stree.txt @@ -1,6 +1,6 @@ -RazorDocument - [0..7) - FullWidth: 7 - [foo baz] - MarkupBlock - [0..7) - FullWidth: 7 - MarkupTextLiteral - [0..7) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..7)::7 - [foo baz] + MarkupBlock - [0..7)::7 + MarkupTextLiteral - [0..7)::7 - [foo baz] - Gen - SpanEditHandler;Accepts:Any Text;[foo]; Whitespace;[ ]; Text;[baz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersExtraNewlineAtTheEndTextTagInVerbatimBlockIfFollowedByHtml.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersExtraNewlineAtTheEndTextTagInVerbatimBlockIfFollowedByHtml.stree.txt index 3f6aa2076..5d23cceb4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersExtraNewlineAtTheEndTextTagInVerbatimBlockIfFollowedByHtml.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersExtraNewlineAtTheEndTextTagInVerbatimBlockIfFollowedByHtml.stree.txt @@ -1,46 +1,46 @@ -RazorDocument - [0..38) - FullWidth: 38 - [@{BlahLFLF}] - MarkupBlock - [0..38) - FullWidth: 38 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..38)::38 - [@{BlahLFLF}] + MarkupBlock - [0..38)::38 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..32) - FullWidth: 32 - CSharpStatement - [0..32) - FullWidth: 32 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..32)::32 + CSharpStatement - [0..32)::32 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementBody - [1..32) - FullWidth: 31 - RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpStatementBody - [1..32)::31 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None LeftBrace;[{]; - CSharpCodeBlock - [2..31) - FullWidth: 29 - MarkupBlock - [2..21) - FullWidth: 19 - MarkupTagBlock - [2..8) - FullWidth: 6 - MarkupTransition - [2..8) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [2..31)::29 + MarkupBlock - [2..21)::19 + MarkupTagBlock - [2..8)::6 - [] + MarkupTransition - [2..8)::6 - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[text]; CloseAngle;[>]; - MarkupTextLiteral - [8..12) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [8..12)::4 - [Blah] - Gen - SpanEditHandler;Accepts:None Text;[Blah]; - MarkupTagBlock - [12..19) - FullWidth: 7 - MarkupTransition - [12..19) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [12..19)::7 - [] + MarkupTransition - [12..19)::7 - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[text]; CloseAngle;[>]; - MarkupTextLiteral - [19..21) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [19..21)::2 - [LF] - Gen - SpanEditHandler;Accepts:None NewLine;[LF]; - MarkupBlock - [21..31) - FullWidth: 10 - MarkupTagBlock - [21..29) - FullWidth: 8 - MarkupTextLiteral - [21..29) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:None + MarkupBlock - [21..31)::10 + MarkupTagBlock - [21..29)::8 - [] + MarkupTextLiteral - [21..29)::8 - [] - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[input]; ForwardSlash;[/]; CloseAngle;[>]; - MarkupTextLiteral - [29..31) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [29..31)::2 - [LF] - Gen - SpanEditHandler;Accepts:None NewLine;[LF]; - CSharpStatementLiteral - [31..31) - FullWidth: 0 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + CSharpStatementLiteral - [31..31)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - RazorMetaCode - [31..32) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RazorMetaCode - [31..32)::1 - Gen - SpanEditHandler;Accepts:None RightBrace;[}]; - MarkupTagBlock - [32..38) - FullWidth: 6 - MarkupTextLiteral - [32..38) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [32..38)::6 - [] + MarkupTextLiteral - [32..38)::6 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[html]; CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersNewlineAfterTextTagInVerbatimBlockIfFollowedByMarkupTransition.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersNewlineAfterTextTagInVerbatimBlockIfFollowedByMarkupTransition.stree.txt index eb8bd65f2..08a171980 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersNewlineAfterTextTagInVerbatimBlockIfFollowedByMarkupTransition.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersNewlineAfterTextTagInVerbatimBlockIfFollowedByMarkupTransition.stree.txt @@ -1,46 +1,46 @@ -RazorDocument - [0..37) - FullWidth: 37 - [@{BlahLF@: BlehLF}] - MarkupBlock - [0..37) - FullWidth: 37 - MarkupTextLiteral - [0..0) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..37)::37 - [@{BlahLF@: BlehLF}] + MarkupBlock - [0..37)::37 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - CSharpCodeBlock - [0..31) - FullWidth: 31 - CSharpStatement - [0..31) - FullWidth: 31 - CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [0..31)::31 + CSharpStatement - [0..31)::31 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - CSharpStatementBody - [1..31) - FullWidth: 30 - RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + CSharpStatementBody - [1..31)::30 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None LeftBrace;[{]; - CSharpCodeBlock - [2..30) - FullWidth: 28 - MarkupBlock - [2..21) - FullWidth: 19 - MarkupTagBlock - [2..8) - FullWidth: 6 - MarkupTransition - [2..8) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:None + CSharpCodeBlock - [2..30)::28 + MarkupBlock - [2..21)::19 + MarkupTagBlock - [2..8)::6 - [] + MarkupTransition - [2..8)::6 - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; Text;[text]; CloseAngle;[>]; - MarkupTextLiteral - [8..12) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [8..12)::4 - [Blah] - Gen - SpanEditHandler;Accepts:None Text;[Blah]; - MarkupTagBlock - [12..19) - FullWidth: 7 - MarkupTransition - [12..19) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + MarkupTagBlock - [12..19)::7 - [] + MarkupTransition - [12..19)::7 - Gen - SpanEditHandler;Accepts:None OpenAngle;[<]; ForwardSlash;[/]; Text;[text]; CloseAngle;[>]; - MarkupTextLiteral - [19..21) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [19..21)::2 - [LF] - Gen - SpanEditHandler;Accepts:None NewLine;[LF]; - MarkupBlock - [21..30) - FullWidth: 9 - MarkupTransition - [21..22) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + MarkupBlock - [21..30)::9 + MarkupTransition - [21..22)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; - RazorMetaCode - [22..23) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + RazorMetaCode - [22..23)::1 - Gen - SpanEditHandler;Accepts:Any Colon;[:]; - MarkupTextLiteral - [23..30) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + MarkupTextLiteral - [23..30)::7 - [ BlehLF] - Gen - SpanEditHandler;Accepts:None Whitespace;[ ]; Text;[Bleh]; NewLine;[LF]; - CSharpStatementLiteral - [30..30) - FullWidth: 0 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + CSharpStatementLiteral - [30..30)::0 - [] - Gen - SpanEditHandler;Accepts:Any Marker;[]; - RazorMetaCode - [30..31) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RazorMetaCode - [30..31)::1 - Gen - SpanEditHandler;Accepts:None RightBrace;[}]; - MarkupTagBlock - [31..37) - FullWidth: 6 - MarkupTextLiteral - [31..37) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [31..37)::6 - [] + MarkupTextLiteral - [31..37)::6 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[html]; CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersTextPseudoTagAsMarkup.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersTextPseudoTagAsMarkup.stree.txt index 77e5a0492..760960d47 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersTextPseudoTagAsMarkup.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/RendersTextPseudoTagAsMarkup.stree.txt @@ -1,17 +1,17 @@ -RazorDocument - [0..20) - FullWidth: 20 - [Foo Foo] - MarkupBlock - [0..20) - FullWidth: 20 - MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any +RazorDocument - [0..20)::20 - [Foo Foo] + MarkupBlock - [0..20)::20 + MarkupTextLiteral - [0..4)::4 - [Foo ] - Gen - SpanEditHandler;Accepts:Any Text;[Foo]; Whitespace;[ ]; - MarkupTagBlock - [4..10) - FullWidth: 6 - MarkupTextLiteral - [4..10) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [4..10)::6 - [] + MarkupTextLiteral - [4..10)::6 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; Text;[text]; CloseAngle;[>]; - MarkupTextLiteral - [10..13) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [10..13)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any Text;[Foo]; - MarkupTagBlock - [13..20) - FullWidth: 7 - MarkupTextLiteral - [13..20) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:Any + MarkupTagBlock - [13..20)::7 - [] + MarkupTextLiteral - [13..20)::7 - [] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; ForwardSlash;[/]; Text;[text]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ReturnsOneMarkupSegmentIfNoCodeBlocksEncountered.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ReturnsOneMarkupSegmentIfNoCodeBlocksEncountered.stree.txt index 53ac9fc97..e9fd31b94 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ReturnsOneMarkupSegmentIfNoCodeBlocksEncountered.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/ReturnsOneMarkupSegmentIfNoCodeBlocksEncountered.stree.txt @@ -1,22 +1,22 @@ -RazorDocument - [0..30) - FullWidth: 30 - [Foo BazBarBar] - Gen - SpanEditHandler;Accepts:None DoubleHyphen;[--]; CloseAngle;[>]; - MarkupTextLiteral - [17..20) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [17..20)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any Text;[Bar]; - MarkupTextLiteral - [20..30) - FullWidth: 10 - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [20..30)::10 - [] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (18:0,18) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (18:0,18) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..24)::24 - [] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupCommentBlock - [5..18)::13 + MarkupTextLiteral - [5..9)::4 - [] - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTagBlock - [18..24)::6 - [] + MarkupTextLiteral - [18..24)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SupportsCodeWithinSGMLDeclaration.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SupportsCodeWithinSGMLDeclaration.stree.txt index db637d4d8..71abdc043 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SupportsCodeWithinSGMLDeclaration.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SupportsCodeWithinSGMLDeclaration.stree.txt @@ -1,28 +1,31 @@ -Markup block - Gen - 34 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ - 4 - (19:0,19) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (19:0,19) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [bar] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (20:0,20) - Tokens:1 - SyntaxKind.Identifier;[bar]; - Markup span - Gen - [ baz>] - SpanEditHandler;Accepts:None - (23:0,23) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[baz]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (28:0,28) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (28:0,28) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..34)::34 - [] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [5..19)::14 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Bang;[!]; + Text;[DOCTYPE]; + Whitespace;[ ]; + Text;[foo]; + Whitespace;[ ]; + CSharpCodeBlock - [19..23)::4 + CSharpImplicitExpression - [19..23)::4 + CSharpTransition - [19..20)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [20..23)::3 + CSharpCodeBlock - [20..23)::3 + CSharpExpressionLiteral - [20..23)::3 - [bar] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[bar]; + MarkupTextLiteral - [23..28)::5 - [ baz>] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Text;[baz]; + CloseAngle;[>]; + MarkupTagBlock - [28..34)::6 - [] + MarkupTextLiteral - [28..34)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SupportsCodeWithinXMLProcessingInstruction.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SupportsCodeWithinXMLProcessingInstruction.stree.txt index ad0ff2da8..7944430ce 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SupportsCodeWithinXMLProcessingInstruction.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SupportsCodeWithinXMLProcessingInstruction.stree.txt @@ -1,29 +1,32 @@ -Markup block - Gen - 31 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ - 4 - (15:0,15) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [bar] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (16:0,16) - Tokens:1 - SyntaxKind.Identifier;[bar]; - Markup span - Gen - [ baz?>] - SpanEditHandler;Accepts:None - (19:0,19) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[baz]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (25:0,25) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (25:0,25) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..31)::31 - [] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [5..15)::10 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + QuestionMark;[?]; + Text;[xml]; + Whitespace;[ ]; + Text;[foo]; + Whitespace;[ ]; + CSharpCodeBlock - [15..19)::4 + CSharpImplicitExpression - [15..19)::4 + CSharpTransition - [15..16)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [16..19)::3 + CSharpCodeBlock - [16..19)::3 + CSharpExpressionLiteral - [16..19)::3 - [bar] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[bar]; + MarkupTextLiteral - [19..25)::6 - [ baz?>] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Text;[baz]; + QuestionMark;[?]; + CloseAngle;[>]; + MarkupTagBlock - [25..31)::6 - [] + MarkupTextLiteral - [25..31)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SwitchesToCodeWhenSwapCharacterEncounteredInAttributeValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SwitchesToCodeWhenSwapCharacterEncounteredInAttributeValue.stree.txt index 1bdcbd4a0..d4fddc9dd 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SwitchesToCodeWhenSwapCharacterEncounteredInAttributeValue.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SwitchesToCodeWhenSwapCharacterEncounteredInAttributeValue.stree.txt @@ -1,23 +1,30 @@ -Markup block - Gen - 18 - (0:0,0) - Tag block - Gen - 18 - (0:0,0) - Markup span - Gen - [ - 11 - (4:0,4) - Markup span - Gen - [ bar="] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bar]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup block - Gen - 4 - (10:0,10) - Expression block - Gen - 4 - (10:0,10) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [baz] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (11:0,11) - Tokens:1 - SyntaxKind.Identifier;[baz]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..18)::18 - [] + MarkupTagBlock - [0..18)::18 - [] + MarkupTextLiteral - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[foo]; + MarkupAttributeBlock - [4..15)::11 - [ bar="@baz"] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..8)::3 - [bar] - Gen - SpanEditHandler;Accepts:Any + Text;[bar]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [10..14)::4 + MarkupDynamicAttributeValue - [10..14)::4 - [@baz] + GenericBlock - [10..14)::4 + CSharpCodeBlock - [10..14)::4 + CSharpImplicitExpression - [10..14)::4 + CSharpTransition - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [11..14)::3 + CSharpCodeBlock - [11..14)::3 + CSharpExpressionLiteral - [11..14)::3 - [baz] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[baz]; + MarkupTextLiteral - [14..15)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [15..18)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SwitchesToCodeWhenSwapCharacterEncounteredInTagContent.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SwitchesToCodeWhenSwapCharacterEncounteredInTagContent.stree.txt index 176427add..f690ae4f8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SwitchesToCodeWhenSwapCharacterEncounteredInTagContent.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SwitchesToCodeWhenSwapCharacterEncounteredInTagContent.stree.txt @@ -1,37 +1,43 @@ -Markup block - Gen - 30 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:1 - SyntaxKind.Unknown;[]; - Expression block - Gen - 4 - (5:0,5) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (5:0,5) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [bar] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (6:0,6) - Tokens:1 - SyntaxKind.Identifier;[bar]; - Tag block - Gen - 5 - (9:0,9) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[baz]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.Unknown;[]; - Expression block - Gen - 4 - (14:0,14) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (14:0,14) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [boz] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (15:0,15) - Tokens:1 - SyntaxKind.Identifier;[boz]; - Tag block - Gen - 6 - (18:0,18) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (18:0,18) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[baz]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (24:0,24) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..30)::30 - [@bar@boz] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [5..5)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [5..9)::4 + CSharpImplicitExpression - [5..9)::4 + CSharpTransition - [5..6)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [6..9)::3 + CSharpCodeBlock - [6..9)::3 + CSharpExpressionLiteral - [6..9)::3 - [bar] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[bar]; + MarkupTagBlock - [9..14)::5 - [] + MarkupTextLiteral - [9..14)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[baz]; + CloseAngle;[>]; + MarkupTextLiteral - [14..14)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [14..18)::4 + CSharpImplicitExpression - [14..18)::4 + CSharpTransition - [14..15)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [15..18)::3 + CSharpCodeBlock - [15..18)::3 + CSharpExpressionLiteral - [15..18)::3 - [boz] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[boz]; + MarkupTagBlock - [18..24)::6 - [] + MarkupTextLiteral - [18..24)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[baz]; + CloseAngle;[>]; + MarkupTagBlock - [24..30)::6 - [] + MarkupTextLiteral - [24..30)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SwitchesToCodeWhenSwapCharacterEncounteredMidTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SwitchesToCodeWhenSwapCharacterEncounteredMidTag.stree.txt index 862c2bc35..7b3fe6acc 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SwitchesToCodeWhenSwapCharacterEncounteredMidTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SwitchesToCodeWhenSwapCharacterEncounteredMidTag.stree.txt @@ -1,15 +1,18 @@ -Markup block - Gen - 12 - (0:0,0) - Tag block - Gen - 12 - (0:0,0) - Markup span - Gen - [ - 4 - (5:0,5) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (5:0,5) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [bar] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (6:0,6) - Tokens:1 - SyntaxKind.Identifier;[bar]; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..12)::12 - [] + MarkupTagBlock - [0..12)::12 - [] + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[foo]; + Whitespace;[ ]; + CSharpCodeBlock - [5..9)::4 + CSharpImplicitExpression - [5..9)::4 + CSharpTransition - [5..6)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [6..9)::3 + CSharpCodeBlock - [6..9)::3 + CSharpExpressionLiteral - [6..9)::3 - [bar] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[bar]; + MarkupTextLiteral - [9..12)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SwitchesWhenCharacterBeforeSwapIsNonAlphanumeric.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SwitchesWhenCharacterBeforeSwapIsNonAlphanumeric.stree.txt index 737ef38f0..2e38b7849 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SwitchesWhenCharacterBeforeSwapIsNonAlphanumeric.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/SwitchesWhenCharacterBeforeSwapIsNonAlphanumeric.stree.txt @@ -1,19 +1,22 @@ -Markup block - Gen - 13 - (0:0,0) - Tag block - Gen - 3 - (0:0,0) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [foo#] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:1 - SyntaxKind.Text;[foo#]; - Expression block - Gen - 2 - (7:0,7) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (7:0,7) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [i] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (8:0,8) - Tokens:1 - SyntaxKind.Identifier;[i]; - Tag block - Gen - 4 - (9:0,9) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..13)::13 - [

    foo#@i

    ] + MarkupTagBlock - [0..3)::3 - [

    ] + MarkupTextLiteral - [0..3)::3 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..7)::4 - [foo#] - Gen - SpanEditHandler;Accepts:Any + Text;[foo#]; + CSharpCodeBlock - [7..9)::2 + CSharpImplicitExpression - [7..9)::2 + CSharpTransition - [7..8)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [8..9)::1 + CSharpCodeBlock - [8..9)::1 + CSharpExpressionLiteral - [8..9)::1 - [i] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[i]; + MarkupTagBlock - [9..13)::4 - [

    ] + MarkupTextLiteral - [9..13)::4 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/TreatsPairsOfAtSignsAsEscapeSequence.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/TreatsPairsOfAtSignsAsEscapeSequence.stree.txt index 1aa4b37fa..5d662de02 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/TreatsPairsOfAtSignsAsEscapeSequence.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/TreatsPairsOfAtSignsAsEscapeSequence.stree.txt @@ -1,25 +1,28 @@ -Markup block - Gen - 19 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:Any - (7:0,7) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:1 - SyntaxKind.Transition;[@]; - Expression block - Gen - 4 - (9:0,9) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [bar] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (10:0,10) - Tokens:1 - SyntaxKind.Identifier;[bar]; - Tag block - Gen - 6 - (13:0,13) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..19)::19 - [@@@@@bar] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupEphemeralTextLiteral - [5..6)::1 - [@] - Gen - SpanEditHandler;Accepts:Any + Transition;[@]; + MarkupTextLiteral - [6..7)::1 - [@] - Gen - SpanEditHandler;Accepts:Any + Transition;[@]; + MarkupEphemeralTextLiteral - [7..8)::1 - [@] - Gen - SpanEditHandler;Accepts:Any + Transition;[@]; + MarkupTextLiteral - [8..9)::1 - [@] - Gen - SpanEditHandler;Accepts:Any + Transition;[@]; + CSharpCodeBlock - [9..13)::4 + CSharpImplicitExpression - [9..13)::4 + CSharpTransition - [9..10)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [10..13)::3 + CSharpCodeBlock - [10..13)::3 + CSharpExpressionLiteral - [10..13)::3 - [bar] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[bar]; + MarkupTagBlock - [13..19)::6 - [] + MarkupTextLiteral - [13..19)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/TreatsTwoAtSignsAsEscapeSequence.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/TreatsTwoAtSignsAsEscapeSequence.stree.txt index ddf76b2d1..0b73d7843 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/TreatsTwoAtSignsAsEscapeSequence.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlToCodeSwitchTest/TreatsTwoAtSignsAsEscapeSequence.stree.txt @@ -1,17 +1,17 @@ -Markup block - Gen - 16 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@bar] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:2 - SyntaxKind.Transition;[@]; - SyntaxKind.Text;[bar]; - Tag block - Gen - 6 - (10:0,10) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..16)::16 - [@@bar] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupEphemeralTextLiteral - [5..6)::1 - [@] - Gen - SpanEditHandler;Accepts:Any + Transition;[@]; + MarkupTextLiteral - [6..10)::4 - [@bar] - Gen - SpanEditHandler;Accepts:Any + Transition;[@]; + Text;[bar]; + MarkupTagBlock - [10..16)::6 - [] + MarkupTextLiteral - [10..16)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; From 97978c45ff6ccc856676f89e98ce87c2cf9886a2 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Wed, 26 Sep 2018 11:36:49 -0700 Subject: [PATCH 09/23] New baselines for HtmlAttributesTest --- .../Legacy/HtmlAttributeTest.cs | 9 ++- ...DisabledForDataAttributesInBlock.stree.txt | 58 +++++++------ ...abledForDataAttributesInDocument.stree.txt | 59 ++++++++------ ...taAttributesWithExperimentalFlag.stree.txt | 61 +++++++------- ...DisabledForDataAttributesInBlock.stree.txt | 63 ++++++++------- ...abledForDataAttributesInDocument.stree.txt | 54 +++++++------ .../DoubleQuotedLiteralAttribute.stree.txt | 58 +++++++------ ...eWithWhitespaceSurroundingEquals.stree.txt | 62 +++++++------- .../MultiPartLiteralAttribute.stree.txt | 58 +++++++------ .../MultiValueExpressionAttribute.stree.txt | 81 +++++++++++-------- .../NewLineBetweenAttributes.stree.txt | 66 ++++++++------- .../NewLinePrecedingAttribute.stree.txt | 42 +++++----- .../SimpleExpressionAttribute.stree.txt | 53 ++++++------ .../SimpleLiteralAttribute.stree.txt | 42 +++++----- ...eWithWhitespaceSurroundingEquals.stree.txt | 51 ++++++------ .../SymbolBoundAttributes1.stree.txt | 46 ++++++----- .../SymbolBoundAttributes2.stree.txt | 44 +++++----- .../SymbolBoundAttributes3.stree.txt | 42 +++++----- .../SymbolBoundAttributes4.stree.txt | 42 +++++----- .../SymbolBoundAttributes5.stree.txt | 42 +++++----- .../SymbolBoundAttributes6.stree.txt | 42 +++++----- ...ttributes_BeforeEqualWhitespace1.stree.txt | 79 ++++++++++-------- ...ttributes_BeforeEqualWhitespace2.stree.txt | 75 +++++++++-------- ...ttributes_BeforeEqualWhitespace3.stree.txt | 71 +++++++++------- ...ttributes_BeforeEqualWhitespace4.stree.txt | 71 +++++++++------- ...ttributes_BeforeEqualWhitespace5.stree.txt | 71 +++++++++------- ...ttributes_BeforeEqualWhitespace6.stree.txt | 71 +++++++++------- ...ymbolBoundAttributes_Whitespace1.stree.txt | 80 +++++++++--------- ...ymbolBoundAttributes_Whitespace2.stree.txt | 76 +++++++++-------- ...ymbolBoundAttributes_Whitespace3.stree.txt | 72 +++++++++-------- ...ymbolBoundAttributes_Whitespace4.stree.txt | 72 +++++++++-------- ...ymbolBoundAttributes_Whitespace5.stree.txt | 72 +++++++++-------- ...ymbolBoundAttributes_Whitespace6.stree.txt | 72 +++++++++-------- ...tributeWithCodeWithSpacesInBlock.stree.txt | 46 ++++++----- ...buteWithCodeWithSpacesInDocument.stree.txt | 47 ++++++----- .../UnquotedLiteralAttribute.stree.txt | 53 ++++++------ ...tesWorkWithConditionalAttributes.stree.txt | 69 +++++++++------- ...paceAndNewLinePrecedingAttribute.stree.txt | 44 +++++----- 38 files changed, 1238 insertions(+), 978 deletions(-) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlAttributeTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlAttributeTest.cs index 3cc5b958c..36c58c483 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlAttributeTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlAttributeTest.cs @@ -9,6 +9,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { public class HtmlAttributeTest : CsHtmlMarkupParserTestBase { + public HtmlAttributeTest() + { + UseNewSyntaxTree = true; + } + [Fact] public void SymbolBoundAttributes_BeforeEqualWhitespace1() { @@ -219,7 +224,7 @@ public void UnquotedAttributeWithCodeWithSpacesInDocument() ParseDocumentTest(""); } - [Fact] + [Fact(Skip = "ConditionalAttributeCollapser doesn't exist in the new tree")] public void ConditionalAttributeCollapserDoesNotRewriteEscapedTransitions() { // Act @@ -231,7 +236,7 @@ public void ConditionalAttributeCollapserDoesNotRewriteEscapedTransitions() BaselineTest(rewritten); } - [Fact] + [Fact(Skip = "ConditionalAttributeCollapser doesn't exist in the new tree")] public void ConditionalAttributesDoNotCreateExtraDataForEntirelyLiteralAttribute() { // Arrange diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreDisabledForDataAttributesInBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreDisabledForDataAttributesInBlock.stree.txt index 37c2ff8df..970628a5c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreDisabledForDataAttributesInBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreDisabledForDataAttributesInBlock.stree.txt @@ -1,26 +1,32 @@ -Markup block - Gen - 29 - (0:0,0) - Tag block - Gen - 22 - (0:0,0) - Markup span - Gen - [ - 16 - (5:0,5) - Markup span - Gen - [ data-foo='] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[data-foo]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Expression block - Gen - 4 - (16:0,16) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (17:0,17) - Tokens:1 - SyntaxKind.Identifier;[foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (22:0,22) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (22:0,22) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[span]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..29)::29 - [] + MarkupTagBlock - [0..22)::22 - [] + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[span]; + MarkupAttributeBlock - [5..21)::16 - [ data-foo='@foo'] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..14)::8 - [data-foo] - Gen - SpanEditHandler;Accepts:Any + Text;[data-foo]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [16..20)::4 + CSharpCodeBlock - [16..20)::4 + CSharpImplicitExpression - [16..20)::4 + CSharpTransition - [16..17)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [17..20)::3 + CSharpCodeBlock - [17..20)::3 + CSharpExpressionLiteral - [17..20)::3 - [foo] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[foo]; + MarkupTextLiteral - [20..21)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [21..22)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagBlock - [22..29)::7 - [] + MarkupTextLiteral - [22..29)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[span]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreDisabledForDataAttributesInDocument.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreDisabledForDataAttributesInDocument.stree.txt index 5adc548d2..34d6b8bcc 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreDisabledForDataAttributesInDocument.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreDisabledForDataAttributesInDocument.stree.txt @@ -1,26 +1,33 @@ -Markup block - Gen - 29 - (0:0,0) - Tag block - Gen - 22 - (0:0,0) - Markup span - Gen - [ - 16 - (5:0,5) - Markup span - Gen - [ data-foo='] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[data-foo]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Expression block - Gen - 4 - (16:0,16) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (17:0,17) - Tokens:1 - SyntaxKind.Identifier;[foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (22:0,22) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[span]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..29)::29 - [] + MarkupBlock - [0..29)::29 + MarkupTagBlock - [0..22)::22 - [] + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[span]; + MarkupAttributeBlock - [5..21)::16 - [ data-foo='@foo'] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..14)::8 - [data-foo] - Gen - SpanEditHandler;Accepts:Any + Text;[data-foo]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [16..20)::4 + CSharpCodeBlock - [16..20)::4 + CSharpImplicitExpression - [16..20)::4 + CSharpTransition - [16..17)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [17..20)::3 + CSharpCodeBlock - [17..20)::3 + CSharpExpressionLiteral - [17..20)::3 - [foo] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[foo]; + MarkupTextLiteral - [20..21)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [21..22)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [22..29)::7 - [] + MarkupTextLiteral - [22..29)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[span]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreEnabledForDataAttributesWithExperimentalFlag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreEnabledForDataAttributesWithExperimentalFlag.stree.txt index 82c2aa671..8f1e3285d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreEnabledForDataAttributesWithExperimentalFlag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreEnabledForDataAttributesWithExperimentalFlag.stree.txt @@ -1,27 +1,34 @@ -Markup block - Gen - 29 - (0:0,0) - Tag block - Gen - 22 - (0:0,0) - Markup span - Gen - [ - 16 - (5:0,5) - Markup span - Gen - [ data-foo='] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[data-foo]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 4 - (16:0,16) - Expression block - Gen - 4 - (16:0,16) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (17:0,17) - Tokens:1 - SyntaxKind.Identifier;[foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (22:0,22) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (22:0,22) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[span]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..29)::29 - [] + MarkupTagBlock - [0..22)::22 - [] + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[span]; + MarkupAttributeBlock - [5..21)::16 - [ data-foo='@foo'] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..14)::8 - [data-foo] - Gen - SpanEditHandler;Accepts:Any + Text;[data-foo]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [16..20)::4 + MarkupDynamicAttributeValue - [16..20)::4 - [@foo] + GenericBlock - [16..20)::4 + CSharpCodeBlock - [16..20)::4 + CSharpImplicitExpression - [16..20)::4 + CSharpTransition - [16..17)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [17..20)::3 + CSharpCodeBlock - [17..20)::3 + CSharpExpressionLiteral - [17..20)::3 - [foo] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[foo]; + MarkupTextLiteral - [20..21)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [21..22)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagBlock - [22..29)::7 - [] + MarkupTextLiteral - [22..29)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[span]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInBlock.stree.txt index eb16428c4..e9b567d97 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInBlock.stree.txt @@ -1,28 +1,35 @@ -Markup block - Gen - 33 - (0:0,0) - Tag block - Gen - 26 - (0:0,0) - Markup span - Gen - [ - 20 - (5:0,5) - Markup span - Gen - [ data-foo = '] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:6 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[data-foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.SingleQuote;[']; - Expression block - Gen - 4 - (20:0,20) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (21:0,21) - Tokens:1 - SyntaxKind.Identifier;[foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (25:0,25) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (26:0,26) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (26:0,26) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[span]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..33)::33 - [] + MarkupTagBlock - [0..26)::26 - [] + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[span]; + MarkupAttributeBlock - [5..25)::20 - [ data-foo = '@foo'] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..14)::8 - [data-foo] - Gen - SpanEditHandler;Accepts:Any + Text;[data-foo]; + MarkupTextLiteral - [14..16)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Equals;[=]; + MarkupTextLiteral - [17..20)::3 - [ '] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + SingleQuote;[']; + GenericBlock - [20..24)::4 + CSharpCodeBlock - [20..24)::4 + CSharpImplicitExpression - [20..24)::4 + CSharpTransition - [20..21)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [21..24)::3 + CSharpCodeBlock - [21..24)::3 + CSharpExpressionLiteral - [21..24)::3 - [foo] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[foo]; + MarkupTextLiteral - [24..25)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [25..26)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagBlock - [26..33)::7 - [] + MarkupTextLiteral - [26..33)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[span]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInDocument.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInDocument.stree.txt index 5a7555fb1..50c1dc3a5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInDocument.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInDocument.stree.txt @@ -1,24 +1,30 @@ -Markup block - Gen - 28 - (0:0,0) - Tag block - Gen - 21 - (0:0,0) - Markup span - Gen - [ - 14 - (5:0,5) - Markup span - Gen - [ data-foo=] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[data-foo]; - SyntaxKind.Equals;[=]; - Expression block - Gen - 4 - (15:0,15) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (16:0,16) - Tokens:1 - SyntaxKind.Identifier;[foo]; - Markup span - Gen - [ >] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (21:0,21) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[span]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..28)::28 - [] + MarkupBlock - [0..28)::28 + MarkupTagBlock - [0..21)::21 - [] + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[span]; + MarkupAttributeBlock - [5..19)::14 - [ data-foo=@foo] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..14)::8 - [data-foo] - Gen - SpanEditHandler;Accepts:Any + Text;[data-foo]; + Equals;[=]; + GenericBlock - [15..19)::4 + CSharpCodeBlock - [15..19)::4 + CSharpImplicitExpression - [15..19)::4 + CSharpTransition - [15..16)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [16..19)::3 + CSharpCodeBlock - [16..19)::3 + CSharpExpressionLiteral - [16..19)::3 - [foo] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[foo]; + MarkupTextLiteral - [19..21)::2 - [ >] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTagBlock - [21..28)::7 - [] + MarkupTextLiteral - [21..28)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[span]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/DoubleQuotedLiteralAttribute.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/DoubleQuotedLiteralAttribute.stree.txt index 670df8e54..69f99cdc5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/DoubleQuotedLiteralAttribute.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/DoubleQuotedLiteralAttribute.stree.txt @@ -1,25 +1,33 @@ -Markup block - Gen - 24 - (0:0,0) - Tag block - Gen - 24 - (0:0,0) - Markup span - Gen - [ - 19 - (2:0,2) - Markup span - Gen - [ href="] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[href]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - [ Bar] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Bar]; - Markup span - Gen - [ Baz] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Baz]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..24)::24 - [] + MarkupTagBlock - [0..24)::24 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..21)::19 - [ href="Foo Bar Baz"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..7)::4 - [href] - Gen - SpanEditHandler;Accepts:Any + Text;[href]; + Equals;[=]; + MarkupTextLiteral - [8..9)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [9..20)::11 + MarkupLiteralAttributeValue - [9..12)::3 - [Foo] + MarkupTextLiteral - [9..12)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupLiteralAttributeValue - [12..16)::4 - [ Bar] + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [13..16)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupLiteralAttributeValue - [16..20)::4 - [ Baz] + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [17..20)::3 - [Baz] - Gen - SpanEditHandler;Accepts:Any + Text;[Baz]; + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [21..24)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/DynamicAttributeWithWhitespaceSurroundingEquals.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/DynamicAttributeWithWhitespaceSurroundingEquals.stree.txt index 1dd50619e..7d07f6a07 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/DynamicAttributeWithWhitespaceSurroundingEquals.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/DynamicAttributeWithWhitespaceSurroundingEquals.stree.txt @@ -1,27 +1,35 @@ -Markup block - Gen - 23 - (0:0,0) - Tag block - Gen - 23 - (0:0,0) - Markup span - Gen - [ - 18 - (2:0,2) - Markup span - Gen - [ href LF= LF'] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:8 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[href]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 4 - (15:2,1) - Expression block - Gen - 4 - (15:2,1) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (15:2,1) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [Foo] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (16:2,2) - Tokens:1 - SyntaxKind.Identifier;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (19:2,5) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (20:2,6) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..23)::23 - [] + MarkupTagBlock - [0..23)::23 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..20)::18 - [ href LF= LF'@Foo'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..7)::4 - [href] - Gen - SpanEditHandler;Accepts:Any + Text;[href]; + MarkupTextLiteral - [7..10)::3 - [ LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + Equals;[=]; + MarkupTextLiteral - [11..15)::4 - [ LF'] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + SingleQuote;[']; + GenericBlock - [15..19)::4 + MarkupDynamicAttributeValue - [15..19)::4 - [@Foo] + GenericBlock - [15..19)::4 + CSharpCodeBlock - [15..19)::4 + CSharpImplicitExpression - [15..19)::4 + CSharpTransition - [15..16)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [16..19)::3 + CSharpCodeBlock - [16..19)::3 + CSharpExpressionLiteral - [16..19)::3 - [Foo] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[Foo]; + MarkupTextLiteral - [19..20)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [20..23)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/MultiPartLiteralAttribute.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/MultiPartLiteralAttribute.stree.txt index a9bf10bf5..ac550a06f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/MultiPartLiteralAttribute.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/MultiPartLiteralAttribute.stree.txt @@ -1,25 +1,33 @@ -Markup block - Gen - 24 - (0:0,0) - Tag block - Gen - 24 - (0:0,0) - Markup span - Gen - [ - 19 - (2:0,2) - Markup span - Gen - [ href='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[href]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - [ Bar] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Bar]; - Markup span - Gen - [ Baz] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Baz]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..24)::24 - [] + MarkupTagBlock - [0..24)::24 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..21)::19 - [ href='Foo Bar Baz'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..7)::4 - [href] - Gen - SpanEditHandler;Accepts:Any + Text;[href]; + Equals;[=]; + MarkupTextLiteral - [8..9)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [9..20)::11 + MarkupLiteralAttributeValue - [9..12)::3 - [Foo] + MarkupTextLiteral - [9..12)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupLiteralAttributeValue - [12..16)::4 - [ Bar] + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [13..16)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupLiteralAttributeValue - [16..20)::4 - [ Baz] + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [17..20)::3 - [Baz] - Gen - SpanEditHandler;Accepts:Any + Text;[Baz]; + MarkupTextLiteral - [20..21)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [21..24)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/MultiValueExpressionAttribute.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/MultiValueExpressionAttribute.stree.txt index 0c546fb06..7ca933a84 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/MultiValueExpressionAttribute.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/MultiValueExpressionAttribute.stree.txt @@ -1,34 +1,47 @@ -Markup block - Gen - 26 - (0:0,0) - Tag block - Gen - 26 - (0:0,0) - Markup span - Gen - [ - 21 - (2:0,2) - Markup span - Gen - [ href='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[href]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 4 - (9:0,9) - Expression block - Gen - 4 - (9:0,9) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (10:0,10) - Tokens:1 - SyntaxKind.Identifier;[foo]; - Markup span - Gen - [ bar] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bar]; - Markup block - Gen - 5 - (17:0,17) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 4 - (18:0,18) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (18:0,18) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [baz] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (19:0,19) - Tokens:1 - SyntaxKind.Identifier;[baz]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (23:0,23) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..26)::26 - [] + MarkupTagBlock - [0..26)::26 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..23)::21 - [ href='@foo bar @baz'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..7)::4 - [href] - Gen - SpanEditHandler;Accepts:Any + Text;[href]; + Equals;[=]; + MarkupTextLiteral - [8..9)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [9..22)::13 + MarkupDynamicAttributeValue - [9..13)::4 - [@foo] + GenericBlock - [9..13)::4 + CSharpCodeBlock - [9..13)::4 + CSharpImplicitExpression - [9..13)::4 + CSharpTransition - [9..10)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [10..13)::3 + CSharpCodeBlock - [10..13)::3 + CSharpExpressionLiteral - [10..13)::3 - [foo] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[foo]; + MarkupLiteralAttributeValue - [13..17)::4 - [ bar] + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [14..17)::3 - [bar] - Gen - SpanEditHandler;Accepts:Any + Text;[bar]; + MarkupDynamicAttributeValue - [17..22)::5 - [ @baz] + MarkupTextLiteral - [17..18)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + GenericBlock - [18..22)::4 + CSharpCodeBlock - [18..22)::4 + CSharpImplicitExpression - [18..22)::4 + CSharpTransition - [18..19)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [19..22)::3 + CSharpCodeBlock - [19..22)::3 + CSharpExpressionLiteral - [19..22)::3 - [baz] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[baz]; + MarkupTextLiteral - [22..23)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [23..26)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/NewLineBetweenAttributes.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/NewLineBetweenAttributes.stree.txt index e49e317c0..6de9860c9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/NewLineBetweenAttributes.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/NewLineBetweenAttributes.stree.txt @@ -1,29 +1,37 @@ -Markup block - Gen - 29 - (0:0,0) - Tag block - Gen - 29 - (0:0,0) - Markup span - Gen - [ - 12 - (2:0,2) - Markup span - Gen - [LFhref='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:4 - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[href]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (10:1,6) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (13:1,9) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 12 - (14:1,10) - Markup span - Gen - [LFabcd='] - SpanEditHandler;Accepts:Any - (14:1,10) - Tokens:4 - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[abcd]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (22:2,6) - Tokens:1 - SyntaxKind.Text;[Bar]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (25:2,9) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (26:2,10) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..29)::29 - [] + MarkupTagBlock - [0..29)::29 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..14)::12 - [LFhref='Foo'] + MarkupTextLiteral - [2..4)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupTextLiteral - [4..8)::4 - [href] - Gen - SpanEditHandler;Accepts:Any + Text;[href]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [Foo] + MarkupTextLiteral - [10..13)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [14..26)::12 - [LFabcd='Bar'] + MarkupTextLiteral - [14..16)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupTextLiteral - [16..20)::4 - [abcd] - Gen - SpanEditHandler;Accepts:Any + Text;[abcd]; + Equals;[=]; + MarkupTextLiteral - [21..22)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [22..25)::3 + MarkupLiteralAttributeValue - [22..25)::3 - [Bar] + MarkupTextLiteral - [22..25)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupTextLiteral - [25..26)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [26..29)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/NewLinePrecedingAttribute.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/NewLinePrecedingAttribute.stree.txt index 2ac8dd5c6..d3f3368f3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/NewLinePrecedingAttribute.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/NewLinePrecedingAttribute.stree.txt @@ -1,19 +1,23 @@ -Markup block - Gen - 17 - (0:0,0) - Tag block - Gen - 17 - (0:0,0) - Markup span - Gen - [ - 12 - (2:0,2) - Markup span - Gen - [LFhref='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:4 - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[href]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (10:1,6) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (13:1,9) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (14:1,10) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..17)::17 - [] + MarkupTagBlock - [0..17)::17 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..14)::12 - [LFhref='Foo'] + MarkupTextLiteral - [2..4)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupTextLiteral - [4..8)::4 - [href] - Gen - SpanEditHandler;Accepts:Any + Text;[href]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [Foo] + MarkupTextLiteral - [10..13)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [14..17)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleExpressionAttribute.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleExpressionAttribute.stree.txt index 794f60520..4c788d316 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleExpressionAttribute.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleExpressionAttribute.stree.txt @@ -1,23 +1,30 @@ -Markup block - Gen - 17 - (0:0,0) - Tag block - Gen - 17 - (0:0,0) - Markup span - Gen - [ - 12 - (2:0,2) - Markup span - Gen - [ href='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[href]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 4 - (9:0,9) - Expression block - Gen - 4 - (9:0,9) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (10:0,10) - Tokens:1 - SyntaxKind.Identifier;[foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (14:0,14) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..17)::17 - [] + MarkupTagBlock - [0..17)::17 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..14)::12 - [ href='@foo'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..7)::4 - [href] - Gen - SpanEditHandler;Accepts:Any + Text;[href]; + Equals;[=]; + MarkupTextLiteral - [8..9)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [9..13)::4 + MarkupDynamicAttributeValue - [9..13)::4 - [@foo] + GenericBlock - [9..13)::4 + CSharpCodeBlock - [9..13)::4 + CSharpImplicitExpression - [9..13)::4 + CSharpTransition - [9..10)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [10..13)::3 + CSharpCodeBlock - [10..13)::3 + CSharpExpressionLiteral - [10..13)::3 - [foo] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[foo]; + MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [14..17)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleLiteralAttribute.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleLiteralAttribute.stree.txt index 9b93dc3b2..5226e007d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleLiteralAttribute.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleLiteralAttribute.stree.txt @@ -1,19 +1,23 @@ -Markup block - Gen - 16 - (0:0,0) - Tag block - Gen - 16 - (0:0,0) - Markup span - Gen - [ - 11 - (2:0,2) - Markup span - Gen - [ href='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[href]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..16)::16 - [] + MarkupTagBlock - [0..16)::16 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..13)::11 - [ href='Foo'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..7)::4 - [href] - Gen - SpanEditHandler;Accepts:Any + Text;[href]; + Equals;[=]; + MarkupTextLiteral - [8..9)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [9..12)::3 + MarkupLiteralAttributeValue - [9..12)::3 - [Foo] + MarkupTextLiteral - [9..12)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [13..16)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleLiteralAttributeWithWhitespaceSurroundingEquals.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleLiteralAttributeWithWhitespaceSurroundingEquals.stree.txt index 53a5a17d2..150eab145 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleLiteralAttributeWithWhitespaceSurroundingEquals.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleLiteralAttributeWithWhitespaceSurroundingEquals.stree.txt @@ -1,23 +1,28 @@ -Markup block - Gen - 24 - (0:0,0) - Tag block - Gen - 24 - (0:0,0) - Markup span - Gen - [ - 19 - (2:0,2) - Markup span - Gen - [ href LF= LF'] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:8 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[href]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (17:2,1) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (20:2,4) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (21:2,5) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..24)::24 - [] + MarkupTagBlock - [0..24)::24 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..21)::19 - [ href LF= LF'Foo'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..7)::4 - [href] - Gen - SpanEditHandler;Accepts:Any + Text;[href]; + MarkupTextLiteral - [7..11)::4 - [ LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + Equals;[=]; + MarkupTextLiteral - [12..17)::5 - [ LF'] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + SingleQuote;[']; + GenericBlock - [17..20)::3 + MarkupLiteralAttributeValue - [17..20)::3 - [Foo] + MarkupTextLiteral - [17..20)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [20..21)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [21..24)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes1.stree.txt index e423902d0..644d279c6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes1.stree.txt @@ -1,21 +1,25 @@ -Markup block - Gen - 18 - (0:0,0) - Tag block - Gen - 18 - (0:0,0) - Markup span - Gen - [ - 13 - (2:0,2) - Markup span - Gen - [ [item]='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:6 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[item]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..18)::18 - [] + MarkupTagBlock - [0..18)::18 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..15)::13 - [ [item]='Foo'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..9)::6 - [[item]] - Gen - SpanEditHandler;Accepts:Any + LeftBracket;[[]; + Text;[item]; + RightBracket;[]]; + Equals;[=]; + MarkupTextLiteral - [10..11)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [11..14)::3 + MarkupLiteralAttributeValue - [11..14)::3 - [Foo] + MarkupTextLiteral - [11..14)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [14..15)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [15..18)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes2.stree.txt index af52c4136..34a56480b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes2.stree.txt @@ -1,20 +1,24 @@ -Markup block - Gen - 19 - (0:0,0) - Tag block - Gen - 19 - (0:0,0) - Markup span - Gen - [ - 14 - (2:0,2) - Markup span - Gen - [ [(item,='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:5 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[(item,]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..19)::19 - [] + MarkupTagBlock - [0..19)::19 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..16)::14 - [ [(item,='Foo'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..10)::7 - [[(item,] - Gen - SpanEditHandler;Accepts:Any + LeftBracket;[[]; + Text;[(item,]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [12..15)::3 + MarkupLiteralAttributeValue - [12..15)::3 - [Foo] + MarkupTextLiteral - [12..15)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [16..19)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes3.stree.txt index 7a5f7a0b5..8362be761 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes3.stree.txt @@ -1,19 +1,23 @@ -Markup block - Gen - 19 - (0:0,0) - Tag block - Gen - 19 - (0:0,0) - Markup span - Gen - [ - 14 - (2:0,2) - Markup span - Gen - [ (click)='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[(click)]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..19)::19 - [] + MarkupTagBlock - [0..19)::19 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..16)::14 - [ (click)='Foo'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..10)::7 - [(click)] - Gen - SpanEditHandler;Accepts:Any + Text;[(click)]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [12..15)::3 + MarkupLiteralAttributeValue - [12..15)::3 - [Foo] + MarkupTextLiteral - [12..15)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [16..19)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes4.stree.txt index 378afa31d..e8b4c737a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes4.stree.txt @@ -1,19 +1,23 @@ -Markup block - Gen - 20 - (0:0,0) - Tag block - Gen - 20 - (0:0,0) - Markup span - Gen - [ - 15 - (2:0,2) - Markup span - Gen - [ (^click)='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[(^click)]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (17:0,17) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..20)::20 - [] + MarkupTagBlock - [0..20)::20 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..17)::15 - [ (^click)='Foo'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..11)::8 - [(^click)] - Gen - SpanEditHandler;Accepts:Any + Text;[(^click)]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [13..16)::3 + MarkupLiteralAttributeValue - [13..16)::3 - [Foo] + MarkupTextLiteral - [13..16)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [16..17)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [17..20)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes5.stree.txt index 5412976c4..a90b0eb21 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes5.stree.txt @@ -1,19 +1,23 @@ -Markup block - Gen - 22 - (0:0,0) - Tag block - Gen - 22 - (0:0,0) - Markup span - Gen - [ - 17 - (2:0,2) - Markup span - Gen - [ *something='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[*something]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (19:0,19) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..22)::22 - [] + MarkupTagBlock - [0..22)::22 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..19)::17 - [ *something='Foo'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..13)::10 - [*something] - Gen - SpanEditHandler;Accepts:Any + Text;[*something]; + Equals;[=]; + MarkupTextLiteral - [14..15)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [15..18)::3 + MarkupLiteralAttributeValue - [15..18)::3 - [Foo] + MarkupTextLiteral - [15..18)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [18..19)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [19..22)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes6.stree.txt index 27b6e848f..c42222769 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes6.stree.txt @@ -1,19 +1,23 @@ -Markup block - Gen - 18 - (0:0,0) - Tag block - Gen - 18 - (0:0,0) - Markup span - Gen - [ - 13 - (2:0,2) - Markup span - Gen - [ #local='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[#local]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..18)::18 - [] + MarkupTagBlock - [0..18)::18 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..15)::13 - [ #local='Foo'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..9)::6 - [#local] - Gen - SpanEditHandler;Accepts:Any + Text;[#local]; + Equals;[=]; + MarkupTextLiteral - [10..11)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [11..14)::3 + MarkupLiteralAttributeValue - [11..14)::3 - [Foo] + MarkupTextLiteral - [11..14)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [14..15)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [15..18)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace1.stree.txt index b260467ac..ed90ad5f4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace1.stree.txt @@ -1,35 +1,44 @@ -Markup block - Gen - 35 - (0:0,0) - Tag block - Gen - 35 - (0:0,0) - Markup span - Gen - [ - 15 - (2:0,2) - Markup span - Gen - [ [item]LF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:7 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[item]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (13:1,2) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (16:1,5) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 15 - (17:1,6) - Markup span - Gen - [ [item]=LF'] - SpanEditHandler;Accepts:Any - (17:1,6) - Tokens:7 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[item]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.Equals;[=]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (28:2,1) - Tokens:1 - SyntaxKind.Text;[Bar]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (31:2,4) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (32:2,5) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..35)::35 - [] + MarkupTagBlock - [0..35)::35 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..17)::15 - [ [item]LF='Foo'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..9)::6 - [[item]] - Gen - SpanEditHandler;Accepts:Any + LeftBracket;[[]; + Text;[item]; + RightBracket;[]]; + MarkupTextLiteral - [9..11)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [13..16)::3 + MarkupLiteralAttributeValue - [13..16)::3 - [Foo] + MarkupTextLiteral - [13..16)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [16..17)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [17..32)::15 - [ [item]=LF'Bar'] + MarkupTextLiteral - [17..18)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [18..24)::6 - [[item]] - Gen - SpanEditHandler;Accepts:Any + LeftBracket;[[]; + Text;[item]; + RightBracket;[]]; + Equals;[=]; + MarkupTextLiteral - [25..28)::3 - [LF'] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + SingleQuote;[']; + GenericBlock - [28..31)::3 + MarkupLiteralAttributeValue - [28..31)::3 - [Bar] + MarkupTextLiteral - [28..31)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupTextLiteral - [31..32)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [32..35)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace2.stree.txt index 67c099ce8..154e149e7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace2.stree.txt @@ -1,33 +1,42 @@ -Markup block - Gen - 37 - (0:0,0) - Tag block - Gen - 37 - (0:0,0) - Markup span - Gen - [ - 16 - (2:0,2) - Markup span - Gen - [ [(item,LF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:6 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[(item,]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (14:1,2) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (17:1,5) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 16 - (18:1,6) - Markup span - Gen - [ [(item,=LF'] - SpanEditHandler;Accepts:Any - (18:1,6) - Tokens:6 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[(item,]; - SyntaxKind.Equals;[=]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (30:2,1) - Tokens:1 - SyntaxKind.Text;[Bar]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (33:2,4) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (34:2,5) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..37)::37 - [] + MarkupTagBlock - [0..37)::37 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..18)::16 - [ [(item,LF='Foo'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..10)::7 - [[(item,] - Gen - SpanEditHandler;Accepts:Any + LeftBracket;[[]; + Text;[(item,]; + MarkupTextLiteral - [10..12)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Equals;[=]; + MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [14..17)::3 + MarkupLiteralAttributeValue - [14..17)::3 - [Foo] + MarkupTextLiteral - [14..17)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [17..18)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [18..34)::16 - [ [(item,=LF'Bar'] + MarkupTextLiteral - [18..19)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [19..26)::7 - [[(item,] - Gen - SpanEditHandler;Accepts:Any + LeftBracket;[[]; + Text;[(item,]; + Equals;[=]; + MarkupTextLiteral - [27..30)::3 - [LF'] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + SingleQuote;[']; + GenericBlock - [30..33)::3 + MarkupLiteralAttributeValue - [30..33)::3 - [Bar] + MarkupTextLiteral - [30..33)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupTextLiteral - [33..34)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [34..37)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace3.stree.txt index 935a48269..32cdc36a1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace3.stree.txt @@ -1,31 +1,40 @@ -Markup block - Gen - 37 - (0:0,0) - Tag block - Gen - 37 - (0:0,0) - Markup span - Gen - [ - 16 - (2:0,2) - Markup span - Gen - [ (click)LF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:5 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[(click)]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (14:1,2) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (17:1,5) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 16 - (18:1,6) - Markup span - Gen - [ (click)=LF'] - SpanEditHandler;Accepts:Any - (18:1,6) - Tokens:5 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[(click)]; - SyntaxKind.Equals;[=]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (30:2,1) - Tokens:1 - SyntaxKind.Text;[Bar]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (33:2,4) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (34:2,5) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..37)::37 - [] + MarkupTagBlock - [0..37)::37 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..18)::16 - [ (click)LF='Foo'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..10)::7 - [(click)] - Gen - SpanEditHandler;Accepts:Any + Text;[(click)]; + MarkupTextLiteral - [10..12)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Equals;[=]; + MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [14..17)::3 + MarkupLiteralAttributeValue - [14..17)::3 - [Foo] + MarkupTextLiteral - [14..17)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [17..18)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [18..34)::16 - [ (click)=LF'Bar'] + MarkupTextLiteral - [18..19)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [19..26)::7 - [(click)] - Gen - SpanEditHandler;Accepts:Any + Text;[(click)]; + Equals;[=]; + MarkupTextLiteral - [27..30)::3 - [LF'] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + SingleQuote;[']; + GenericBlock - [30..33)::3 + MarkupLiteralAttributeValue - [30..33)::3 - [Bar] + MarkupTextLiteral - [30..33)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupTextLiteral - [33..34)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [34..37)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace4.stree.txt index fa6690848..24a507557 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace4.stree.txt @@ -1,31 +1,40 @@ -Markup block - Gen - 39 - (0:0,0) - Tag block - Gen - 39 - (0:0,0) - Markup span - Gen - [ - 17 - (2:0,2) - Markup span - Gen - [ (^click)LF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:5 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[(^click)]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (15:1,2) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (18:1,5) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 17 - (19:1,6) - Markup span - Gen - [ (^click)=LF'] - SpanEditHandler;Accepts:Any - (19:1,6) - Tokens:5 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[(^click)]; - SyntaxKind.Equals;[=]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (32:2,1) - Tokens:1 - SyntaxKind.Text;[Bar]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (35:2,4) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (36:2,5) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..39)::39 - [] + MarkupTagBlock - [0..39)::39 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..19)::17 - [ (^click)LF='Foo'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..11)::8 - [(^click)] - Gen - SpanEditHandler;Accepts:Any + Text;[(^click)]; + MarkupTextLiteral - [11..13)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Equals;[=]; + MarkupTextLiteral - [14..15)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [15..18)::3 + MarkupLiteralAttributeValue - [15..18)::3 - [Foo] + MarkupTextLiteral - [15..18)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [18..19)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [19..36)::17 - [ (^click)=LF'Bar'] + MarkupTextLiteral - [19..20)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [20..28)::8 - [(^click)] - Gen - SpanEditHandler;Accepts:Any + Text;[(^click)]; + Equals;[=]; + MarkupTextLiteral - [29..32)::3 - [LF'] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + SingleQuote;[']; + GenericBlock - [32..35)::3 + MarkupLiteralAttributeValue - [32..35)::3 - [Bar] + MarkupTextLiteral - [32..35)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupTextLiteral - [35..36)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [36..39)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace5.stree.txt index 40ebd0e6c..e25c7154e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace5.stree.txt @@ -1,31 +1,40 @@ -Markup block - Gen - 43 - (0:0,0) - Tag block - Gen - 43 - (0:0,0) - Markup span - Gen - [ - 19 - (2:0,2) - Markup span - Gen - [ *somethingLF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:5 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[*something]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (17:1,2) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (20:1,5) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 19 - (21:1,6) - Markup span - Gen - [ *something=LF'] - SpanEditHandler;Accepts:Any - (21:1,6) - Tokens:5 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[*something]; - SyntaxKind.Equals;[=]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (36:2,1) - Tokens:1 - SyntaxKind.Text;[Bar]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (39:2,4) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (40:2,5) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..43)::43 - [] + MarkupTagBlock - [0..43)::43 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..21)::19 - [ *somethingLF='Foo'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..13)::10 - [*something] - Gen - SpanEditHandler;Accepts:Any + Text;[*something]; + MarkupTextLiteral - [13..15)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Equals;[=]; + MarkupTextLiteral - [16..17)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [17..20)::3 + MarkupLiteralAttributeValue - [17..20)::3 - [Foo] + MarkupTextLiteral - [17..20)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [20..21)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [21..40)::19 - [ *something=LF'Bar'] + MarkupTextLiteral - [21..22)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [22..32)::10 - [*something] - Gen - SpanEditHandler;Accepts:Any + Text;[*something]; + Equals;[=]; + MarkupTextLiteral - [33..36)::3 - [LF'] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + SingleQuote;[']; + GenericBlock - [36..39)::3 + MarkupLiteralAttributeValue - [36..39)::3 - [Bar] + MarkupTextLiteral - [36..39)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupTextLiteral - [39..40)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [40..43)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace6.stree.txt index 33cd85dc5..bbef8bcd5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace6.stree.txt @@ -1,31 +1,40 @@ -Markup block - Gen - 35 - (0:0,0) - Tag block - Gen - 35 - (0:0,0) - Markup span - Gen - [ - 15 - (2:0,2) - Markup span - Gen - [ #localLF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:5 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[#local]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (13:1,2) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (16:1,5) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 15 - (17:1,6) - Markup span - Gen - [ #local=LF'] - SpanEditHandler;Accepts:Any - (17:1,6) - Tokens:5 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[#local]; - SyntaxKind.Equals;[=]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (28:2,1) - Tokens:1 - SyntaxKind.Text;[Bar]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (31:2,4) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (32:2,5) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..35)::35 - [] + MarkupTagBlock - [0..35)::35 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..17)::15 - [ #localLF='Foo'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..9)::6 - [#local] - Gen - SpanEditHandler;Accepts:Any + Text;[#local]; + MarkupTextLiteral - [9..11)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [13..16)::3 + MarkupLiteralAttributeValue - [13..16)::3 - [Foo] + MarkupTextLiteral - [13..16)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [16..17)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [17..32)::15 - [ #local=LF'Bar'] + MarkupTextLiteral - [17..18)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [18..24)::6 - [#local] - Gen - SpanEditHandler;Accepts:Any + Text;[#local]; + Equals;[=]; + MarkupTextLiteral - [25..28)::3 - [LF'] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + SingleQuote;[']; + GenericBlock - [28..31)::3 + MarkupLiteralAttributeValue - [28..31)::3 - [Bar] + MarkupTextLiteral - [28..31)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupTextLiteral - [31..32)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [32..35)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace1.stree.txt index c2dc3941e..992fccc9d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace1.stree.txt @@ -1,36 +1,44 @@ -Markup block - Gen - 37 - (0:0,0) - Tag block - Gen - 37 - (0:0,0) - Markup span - Gen - [ - 17 - (2:0,2) - Markup span - Gen - [ LF [item]='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:8 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[item]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (15:1,10) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (18:1,13) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 15 - (19:1,14) - Markup span - Gen - [ LF[item]='] - SpanEditHandler;Accepts:Any - (19:1,14) - Tokens:7 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[item]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (30:2,8) - Tokens:1 - SyntaxKind.Text;[Bar]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (33:2,11) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (34:2,12) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..37)::37 - [] + MarkupTagBlock - [0..37)::37 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..19)::17 - [ LF [item]='Foo'] + MarkupTextLiteral - [2..7)::5 - [ LF ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + Whitespace;[ ]; + MarkupTextLiteral - [7..13)::6 - [[item]] - Gen - SpanEditHandler;Accepts:Any + LeftBracket;[[]; + Text;[item]; + RightBracket;[]]; + Equals;[=]; + MarkupTextLiteral - [14..15)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [15..18)::3 + MarkupLiteralAttributeValue - [15..18)::3 - [Foo] + MarkupTextLiteral - [15..18)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [18..19)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [19..34)::15 - [ LF[item]='Bar'] + MarkupTextLiteral - [19..22)::3 - [ LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + MarkupTextLiteral - [22..28)::6 - [[item]] - Gen - SpanEditHandler;Accepts:Any + LeftBracket;[[]; + Text;[item]; + RightBracket;[]]; + Equals;[=]; + MarkupTextLiteral - [29..30)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [30..33)::3 + MarkupLiteralAttributeValue - [30..33)::3 - [Bar] + MarkupTextLiteral - [30..33)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupTextLiteral - [33..34)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [34..37)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace2.stree.txt index d1d5158fb..19f24c26f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace2.stree.txt @@ -1,34 +1,42 @@ -Markup block - Gen - 39 - (0:0,0) - Tag block - Gen - 39 - (0:0,0) - Markup span - Gen - [ - 18 - (2:0,2) - Markup span - Gen - [ LF [(item,='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:7 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[(item,]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (16:1,11) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (19:1,14) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 16 - (20:1,15) - Markup span - Gen - [ LF[(item,='] - SpanEditHandler;Accepts:Any - (20:1,15) - Tokens:6 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[(item,]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (32:2,9) - Tokens:1 - SyntaxKind.Text;[Bar]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (35:2,12) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (36:2,13) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..39)::39 - [] + MarkupTagBlock - [0..39)::39 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..20)::18 - [ LF [(item,='Foo'] + MarkupTextLiteral - [2..7)::5 - [ LF ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + Whitespace;[ ]; + MarkupTextLiteral - [7..14)::7 - [[(item,] - Gen - SpanEditHandler;Accepts:Any + LeftBracket;[[]; + Text;[(item,]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [16..19)::3 + MarkupLiteralAttributeValue - [16..19)::3 - [Foo] + MarkupTextLiteral - [16..19)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [19..20)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [20..36)::16 - [ LF[(item,='Bar'] + MarkupTextLiteral - [20..23)::3 - [ LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + MarkupTextLiteral - [23..30)::7 - [[(item,] - Gen - SpanEditHandler;Accepts:Any + LeftBracket;[[]; + Text;[(item,]; + Equals;[=]; + MarkupTextLiteral - [31..32)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [32..35)::3 + MarkupLiteralAttributeValue - [32..35)::3 - [Bar] + MarkupTextLiteral - [32..35)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupTextLiteral - [35..36)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [36..39)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace3.stree.txt index 27315992e..b540ce71e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace3.stree.txt @@ -1,32 +1,40 @@ -Markup block - Gen - 39 - (0:0,0) - Tag block - Gen - 39 - (0:0,0) - Markup span - Gen - [ - 18 - (2:0,2) - Markup span - Gen - [ LF (click)='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:6 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[(click)]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (16:1,11) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (19:1,14) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 16 - (20:1,15) - Markup span - Gen - [ LF(click)='] - SpanEditHandler;Accepts:Any - (20:1,15) - Tokens:5 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[(click)]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (32:2,9) - Tokens:1 - SyntaxKind.Text;[Bar]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (35:2,12) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (36:2,13) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..39)::39 - [] + MarkupTagBlock - [0..39)::39 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..20)::18 - [ LF (click)='Foo'] + MarkupTextLiteral - [2..7)::5 - [ LF ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + Whitespace;[ ]; + MarkupTextLiteral - [7..14)::7 - [(click)] - Gen - SpanEditHandler;Accepts:Any + Text;[(click)]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [16..19)::3 + MarkupLiteralAttributeValue - [16..19)::3 - [Foo] + MarkupTextLiteral - [16..19)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [19..20)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [20..36)::16 - [ LF(click)='Bar'] + MarkupTextLiteral - [20..23)::3 - [ LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + MarkupTextLiteral - [23..30)::7 - [(click)] - Gen - SpanEditHandler;Accepts:Any + Text;[(click)]; + Equals;[=]; + MarkupTextLiteral - [31..32)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [32..35)::3 + MarkupLiteralAttributeValue - [32..35)::3 - [Bar] + MarkupTextLiteral - [32..35)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupTextLiteral - [35..36)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [36..39)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace4.stree.txt index 77d6fd916..e1492b44e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace4.stree.txt @@ -1,32 +1,40 @@ -Markup block - Gen - 41 - (0:0,0) - Tag block - Gen - 41 - (0:0,0) - Markup span - Gen - [ - 19 - (2:0,2) - Markup span - Gen - [ LF (^click)='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:6 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[(^click)]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (17:1,12) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (20:1,15) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 17 - (21:1,16) - Markup span - Gen - [ LF(^click)='] - SpanEditHandler;Accepts:Any - (21:1,16) - Tokens:5 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[(^click)]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (34:2,10) - Tokens:1 - SyntaxKind.Text;[Bar]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (37:2,13) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (38:2,14) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..41)::41 - [] + MarkupTagBlock - [0..41)::41 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..21)::19 - [ LF (^click)='Foo'] + MarkupTextLiteral - [2..7)::5 - [ LF ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + Whitespace;[ ]; + MarkupTextLiteral - [7..15)::8 - [(^click)] - Gen - SpanEditHandler;Accepts:Any + Text;[(^click)]; + Equals;[=]; + MarkupTextLiteral - [16..17)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [17..20)::3 + MarkupLiteralAttributeValue - [17..20)::3 - [Foo] + MarkupTextLiteral - [17..20)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [20..21)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [21..38)::17 - [ LF(^click)='Bar'] + MarkupTextLiteral - [21..24)::3 - [ LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + MarkupTextLiteral - [24..32)::8 - [(^click)] - Gen - SpanEditHandler;Accepts:Any + Text;[(^click)]; + Equals;[=]; + MarkupTextLiteral - [33..34)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [34..37)::3 + MarkupLiteralAttributeValue - [34..37)::3 - [Bar] + MarkupTextLiteral - [34..37)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupTextLiteral - [37..38)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [38..41)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace5.stree.txt index 079889443..d227e0fe2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace5.stree.txt @@ -1,32 +1,40 @@ -Markup block - Gen - 45 - (0:0,0) - Tag block - Gen - 45 - (0:0,0) - Markup span - Gen - [ - 21 - (2:0,2) - Markup span - Gen - [ LF *something='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:6 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[*something]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (19:1,14) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (22:1,17) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 19 - (23:1,18) - Markup span - Gen - [ LF*something='] - SpanEditHandler;Accepts:Any - (23:1,18) - Tokens:5 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[*something]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (38:2,12) - Tokens:1 - SyntaxKind.Text;[Bar]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (41:2,15) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (42:2,16) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..45)::45 - [] + MarkupTagBlock - [0..45)::45 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..23)::21 - [ LF *something='Foo'] + MarkupTextLiteral - [2..7)::5 - [ LF ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + Whitespace;[ ]; + MarkupTextLiteral - [7..17)::10 - [*something] - Gen - SpanEditHandler;Accepts:Any + Text;[*something]; + Equals;[=]; + MarkupTextLiteral - [18..19)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [19..22)::3 + MarkupLiteralAttributeValue - [19..22)::3 - [Foo] + MarkupTextLiteral - [19..22)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [22..23)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [23..42)::19 - [ LF*something='Bar'] + MarkupTextLiteral - [23..26)::3 - [ LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + MarkupTextLiteral - [26..36)::10 - [*something] - Gen - SpanEditHandler;Accepts:Any + Text;[*something]; + Equals;[=]; + MarkupTextLiteral - [37..38)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [38..41)::3 + MarkupLiteralAttributeValue - [38..41)::3 - [Bar] + MarkupTextLiteral - [38..41)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupTextLiteral - [41..42)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [42..45)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace6.stree.txt index 959aba13f..c5195535f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace6.stree.txt @@ -1,32 +1,40 @@ -Markup block - Gen - 37 - (0:0,0) - Tag block - Gen - 37 - (0:0,0) - Markup span - Gen - [ - 17 - (2:0,2) - Markup span - Gen - [ LF #local='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:6 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[#local]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (15:1,10) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (18:1,13) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 15 - (19:1,14) - Markup span - Gen - [ LF#local='] - SpanEditHandler;Accepts:Any - (19:1,14) - Tokens:5 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[#local]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (30:2,8) - Tokens:1 - SyntaxKind.Text;[Bar]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (33:2,11) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (34:2,12) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..37)::37 - [] + MarkupTagBlock - [0..37)::37 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..19)::17 - [ LF #local='Foo'] + MarkupTextLiteral - [2..7)::5 - [ LF ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + Whitespace;[ ]; + MarkupTextLiteral - [7..13)::6 - [#local] - Gen - SpanEditHandler;Accepts:Any + Text;[#local]; + Equals;[=]; + MarkupTextLiteral - [14..15)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [15..18)::3 + MarkupLiteralAttributeValue - [15..18)::3 - [Foo] + MarkupTextLiteral - [15..18)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [18..19)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [19..34)::15 - [ LF#local='Bar'] + MarkupTextLiteral - [19..22)::3 - [ LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + MarkupTextLiteral - [22..28)::6 - [#local] - Gen - SpanEditHandler;Accepts:Any + Text;[#local]; + Equals;[=]; + MarkupTextLiteral - [29..30)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [30..33)::3 + MarkupLiteralAttributeValue - [30..33)::3 - [Bar] + MarkupTextLiteral - [30..33)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupTextLiteral - [33..34)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [34..37)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedAttributeWithCodeWithSpacesInBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedAttributeWithCodeWithSpacesInBlock.stree.txt index 67e293a5e..d040f4101 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedAttributeWithCodeWithSpacesInBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedAttributeWithCodeWithSpacesInBlock.stree.txt @@ -1,20 +1,26 @@ -Markup block - Gen - 20 - (0:0,0) - Tag block - Gen - 20 - (0:0,0) - Markup span - Gen - [ - 11 - (6:0,6) - Markup span - Gen - [ value=] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[value]; - SyntaxKind.Equals;[=]; - Markup block - Gen - 4 - (13:0,13) - Expression block - Gen - 4 - (13:0,13) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (14:0,14) - Tokens:1 - SyntaxKind.Identifier;[foo]; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (17:0,17) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..20)::20 - [] + MarkupTagBlock - [0..20)::20 - [] + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupAttributeBlock - [6..17)::11 - [ value=@foo] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..12)::5 - [value] - Gen - SpanEditHandler;Accepts:Any + Text;[value]; + Equals;[=]; + GenericBlock - [13..17)::4 + MarkupDynamicAttributeValue - [13..17)::4 - [@foo] + GenericBlock - [13..17)::4 + CSharpCodeBlock - [13..17)::4 + CSharpImplicitExpression - [13..17)::4 + CSharpTransition - [13..14)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [14..17)::3 + CSharpCodeBlock - [14..17)::3 + CSharpExpressionLiteral - [14..17)::3 - [foo] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[foo]; + MarkupTextLiteral - [17..20)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedAttributeWithCodeWithSpacesInDocument.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedAttributeWithCodeWithSpacesInDocument.stree.txt index 9024b4e6f..98799bc17 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedAttributeWithCodeWithSpacesInDocument.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedAttributeWithCodeWithSpacesInDocument.stree.txt @@ -1,20 +1,27 @@ -Markup block - Gen - 20 - (0:0,0) - Tag block - Gen - 20 - (0:0,0) - Markup span - Gen - [ - 11 - (6:0,6) - Markup span - Gen - [ value=] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[value]; - SyntaxKind.Equals;[=]; - Markup block - Gen - 4 - (13:0,13) - Expression block - Gen - 4 - (13:0,13) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (14:0,14) - Tokens:1 - SyntaxKind.Identifier;[foo]; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..20)::20 - [] + MarkupBlock - [0..20)::20 + MarkupTagBlock - [0..20)::20 - [] + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupAttributeBlock - [6..17)::11 - [ value=@foo] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..12)::5 - [value] - Gen - SpanEditHandler;Accepts:Any + Text;[value]; + Equals;[=]; + GenericBlock - [13..17)::4 + MarkupDynamicAttributeValue - [13..17)::4 - [@foo] + GenericBlock - [13..17)::4 + CSharpCodeBlock - [13..17)::4 + CSharpImplicitExpression - [13..17)::4 + CSharpTransition - [13..14)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [14..17)::3 + CSharpCodeBlock - [14..17)::3 + CSharpExpressionLiteral - [14..17)::3 - [foo] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[foo]; + MarkupTextLiteral - [17..20)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedLiteralAttribute.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedLiteralAttribute.stree.txt index 15358c8fe..7d8ed2ebb 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedLiteralAttribute.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedLiteralAttribute.stree.txt @@ -1,24 +1,29 @@ -Markup block - Gen - 22 - (0:0,0) - Tag block - Gen - 22 - (0:0,0) - Markup span - Gen - [ - 9 - (2:0,2) - Markup span - Gen - [ href=] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[href]; - SyntaxKind.Equals;[=]; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup block - Gen - 4 - (11:0,11) - Markup span - Gen - [ Bar] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Bar]; - Markup block - Gen - 4 - (15:0,15) - Markup span - Gen - [ Baz] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Baz]; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (19:0,19) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..22)::22 - [] + MarkupTagBlock - [0..22)::22 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..11)::9 - [ href=Foo] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..7)::4 - [href] - Gen - SpanEditHandler;Accepts:Any + Text;[href]; + Equals;[=]; + GenericBlock - [8..11)::3 + MarkupLiteralAttributeValue - [8..11)::3 - [Foo] + MarkupTextLiteral - [8..11)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupMinimizedAttributeBlock - [11..15)::4 - [ Bar] + MarkupTextLiteral - [11..12)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [12..15)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupMinimizedAttributeBlock - [15..19)::4 - [ Baz] + MarkupTextLiteral - [15..16)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [16..19)::3 - [Baz] - Gen - SpanEditHandler;Accepts:Any + Text;[Baz]; + MarkupTextLiteral - [19..22)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/VirtualPathAttributesWorkWithConditionalAttributes.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/VirtualPathAttributesWorkWithConditionalAttributes.stree.txt index a6b6e38b3..389babea5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/VirtualPathAttributesWorkWithConditionalAttributes.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/VirtualPathAttributesWorkWithConditionalAttributes.stree.txt @@ -1,30 +1,39 @@ -Markup block - Gen - 27 - (0:0,0) - Tag block - Gen - 27 - (0:0,0) - Markup span - Gen - [ - 22 - (2:0,2) - Markup span - Gen - [ href='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[href]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 4 - (9:0,9) - Expression block - Gen - 4 - (9:0,9) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (10:0,10) - Tokens:1 - SyntaxKind.Identifier;[foo]; - Markup span - Gen - [ ~/Foo/Bar] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:6 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[~]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[Foo]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[Bar]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..27)::27 - [] + MarkupTagBlock - [0..27)::27 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..24)::22 - [ href='@foo ~/Foo/Bar'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..7)::4 - [href] - Gen - SpanEditHandler;Accepts:Any + Text;[href]; + Equals;[=]; + MarkupTextLiteral - [8..9)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [9..23)::14 + MarkupDynamicAttributeValue - [9..13)::4 - [@foo] + GenericBlock - [9..13)::4 + CSharpCodeBlock - [9..13)::4 + CSharpImplicitExpression - [9..13)::4 + CSharpTransition - [9..10)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [10..13)::3 + CSharpCodeBlock - [10..13)::3 + CSharpExpressionLiteral - [10..13)::3 - [foo] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[foo]; + MarkupLiteralAttributeValue - [13..23)::10 - [ ~/Foo/Bar] + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [14..23)::9 - [~/Foo/Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[~]; + ForwardSlash;[/]; + Text;[Foo]; + ForwardSlash;[/]; + Text;[Bar]; + MarkupTextLiteral - [23..24)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [24..27)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/WhitespaceAndNewLinePrecedingAttribute.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/WhitespaceAndNewLinePrecedingAttribute.stree.txt index 6f18fa974..142355d4d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/WhitespaceAndNewLinePrecedingAttribute.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/WhitespaceAndNewLinePrecedingAttribute.stree.txt @@ -1,20 +1,24 @@ -Markup block - Gen - 19 - (0:0,0) - Tag block - Gen - 19 - (0:0,0) - Markup span - Gen - [ - 14 - (2:0,2) - Markup span - Gen - [ LFhref='] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:5 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[href]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (12:1,6) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (15:1,9) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (16:1,10) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..19)::19 - [] + MarkupTagBlock - [0..19)::19 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..16)::14 - [ LFhref='Foo'] + MarkupTextLiteral - [2..6)::4 - [ LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + MarkupTextLiteral - [6..10)::4 - [href] - Gen - SpanEditHandler;Accepts:Any + Text;[href]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [12..15)::3 + MarkupLiteralAttributeValue - [12..15)::3 - [Foo] + MarkupTextLiteral - [12..15)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [16..19)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; From c0ada2d10c53a7b84cfced0da1dd8d34942e0fce Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Wed, 26 Sep 2018 13:29:12 -0700 Subject: [PATCH 10/23] fix newlines crossplat --- .../Language/Legacy/SyntaxNodeWriter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeWriter.cs b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeWriter.cs index 72d8eec90..b9f804512 100644 --- a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeWriter.cs +++ b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeWriter.cs @@ -117,7 +117,7 @@ protected void Write(object value) { if (value is string stringValue) { - stringValue = stringValue.Replace(Environment.NewLine, "LF"); + stringValue = stringValue.Replace("\r\n", "LF"); _writer.Write(stringValue); return; } From a6f6755ab1c29a1dcc2a33eadead099eb461302c Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Wed, 26 Sep 2018 12:41:36 -0700 Subject: [PATCH 11/23] New baselines for HtmlTagTest and HtmlErrorTest --- .../Legacy/HtmlErrorTest.cs | 5 + .../Legacy/HtmlTagsTest.cs | 5 + ...sAsLongAsParserCanIdentifyEndTag.stree.txt | 28 +- ...OutputsMarkupSegmentAndEndsBlock.stree.txt | 18 +- ...fEndTextTagContainsTextAfterName.stree.txt | 32 +- ...tartTextTagContainsTextAfterName.stree.txt | 32 +- ...eptionIfBlockDoesNotStartWithTag.stree.txt | 2 +- ...tEOFThrowsMissingEndTagException.stree.txt | 32 +- ...lTagThrowsOnOutermostUnclosedTag.stree.txt | 34 +- ...tEOFThrowsIncompleteTagException.stree.txt | 27 +- .../HtmlTagsTest/CDataTag.stree.txt | 26 +- .../HtmlTagsTest/CommentTag.stree.txt | 26 +- .../HtmlTagsTest/DocTypeTag.stree.txt | 20 +- .../HtmlTagsTest/ElementTags.stree.txt | 32 +- .../HtmlTagsTest/EmptyTag.stree.txt | 24 +- .../EmptyTagNestsLikeNormalTag.stree.txt | 26 +- .../IncompleteVoidElementEndTag.stree.txt | 564 ++++---- .../ProcessingInstructionTag.stree.txt | 32 +- .../HtmlTagsTest/ScriptTag.stree.txt | 57 +- .../ScriptTag_WithNestedBeginTag.stree.txt | 33 +- .../ScriptTag_WithNestedEndTag.stree.txt | 35 +- ...ScriptTag_WithNestedMalformedTag.stree.txt | 59 +- .../ScriptTag_WithNestedTag.stree.txt | 41 +- .../HtmlTagsTest/TextTags.stree.txt | 28 +- .../VoidElementFollowedByCloseTag.stree.txt | 1175 +++++++++-------- .../VoidElementFollowedByContent.stree.txt | 919 +++++++------ .../VoidElementFollowedByOtherTag.stree.txt | 788 ++++++----- 27 files changed, 2104 insertions(+), 1996 deletions(-) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlErrorTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlErrorTest.cs index 7a998ff0b..6f6a1c6dd 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlErrorTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlErrorTest.cs @@ -7,6 +7,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { public class HtmlErrorTest : CsHtmlMarkupParserTestBase { + public HtmlErrorTest() + { + UseNewSyntaxTree = true; + } + [Fact] public void AllowsInvalidTagNamesAsLongAsParserCanIdentifyEndTag() { diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlTagsTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlTagsTest.cs index 4b200db19..b9814e0ae 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlTagsTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlTagsTest.cs @@ -8,6 +8,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { public class HtmlTagsTest : CsHtmlMarkupParserTestBase { + public HtmlTagsTest() + { + UseNewSyntaxTree = true; + } + private static readonly string[] VoidElementNames = new[] { "area", diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/AllowsInvalidTagNamesAsLongAsParserCanIdentifyEndTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/AllowsInvalidTagNamesAsLongAsParserCanIdentifyEndTag.stree.txt index acdaed83d..dfe21ba58 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/AllowsInvalidTagNamesAsLongAsParserCanIdentifyEndTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/AllowsInvalidTagNamesAsLongAsParserCanIdentifyEndTag.stree.txt @@ -1,14 +1,14 @@ -Markup block - Gen - 26 - (0:0,0) - Tag block - Gen - 11 - (0:0,0) - Markup span - Gen - [<1-foo+bar>] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[1-foo+bar]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:1 - SyntaxKind.Text;[foo]; - Tag block - Gen - 12 - (14:0,14) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (14:0,14) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[1-foo+bar]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..26)::26 - [<1-foo+bar>foo] + MarkupTagBlock - [0..11)::11 - [<1-foo+bar>] + MarkupTextLiteral - [0..11)::11 - [<1-foo+bar>] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[1-foo+bar]; + CloseAngle;[>]; + MarkupTextLiteral - [11..14)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTagBlock - [14..26)::12 - [] + MarkupTextLiteral - [14..26)::12 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[1-foo+bar]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/StartingWithEndTagErrorsThenOutputsMarkupSegmentAndEndsBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/StartingWithEndTagErrorsThenOutputsMarkupSegmentAndEndsBlock.stree.txt index 251c70fc8..9ed9c1099 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/StartingWithEndTagErrorsThenOutputsMarkupSegmentAndEndsBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/StartingWithEndTagErrorsThenOutputsMarkupSegmentAndEndsBlock.stree.txt @@ -1,9 +1,9 @@ -Markup block - Gen - 7 - (0:0,0) - Tag block - Gen - 6 - (0:0,0) - Markup span - Gen - [
    ] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (6:0,6) - Tokens:1 - SyntaxKind.Whitespace;[ ]; +MarkupBlock - [0..7)::7 - [
    ] + MarkupTagBlock - [0..6)::6 - [
    ] + MarkupTextLiteral - [0..6)::6 - [
    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/ThrowsErrorIfEndTextTagContainsTextAfterName.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/ThrowsErrorIfEndTextTagContainsTextAfterName.stree.txt index 1eae2e650..d69632231 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/ThrowsErrorIfEndTextTagContainsTextAfterName.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/ThrowsErrorIfEndTextTagContainsTextAfterName.stree.txt @@ -1,16 +1,16 @@ -Markup block - Gen - 21 - (0:0,0) - Tag block - Gen - 6 - (0:0,0) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 15 - (6:0,6) - Transition span - Gen - [] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:8 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bar]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..21)::21 - [] + MarkupTagBlock - [0..6)::6 - [] + MarkupTransition - [0..6)::6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTagBlock - [6..21)::15 - [] + MarkupTransition - [6..21)::15 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + Whitespace;[ ]; + Text;[foo]; + Whitespace;[ ]; + Text;[bar]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/ThrowsErrorIfStartTextTagContainsTextAfterName.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/ThrowsErrorIfStartTextTagContainsTextAfterName.stree.txt index 1594281e3..f8f40edfb 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/ThrowsErrorIfStartTextTagContainsTextAfterName.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/ThrowsErrorIfStartTextTagContainsTextAfterName.stree.txt @@ -1,16 +1,16 @@ -Markup block - Gen - 21 - (0:0,0) - Tag block - Gen - 14 - (0:0,0) - Transition span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:7 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bar]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (14:0,14) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (14:0,14) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..21)::21 - [] + MarkupTagBlock - [0..14)::14 - [] + MarkupTransition - [0..14)::14 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[text]; + Whitespace;[ ]; + Text;[foo]; + Whitespace;[ ]; + Text;[bar]; + CloseAngle;[>]; + MarkupTagBlock - [14..21)::7 - [] + MarkupTransition - [14..21)::7 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/ThrowsExceptionIfBlockDoesNotStartWithTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/ThrowsExceptionIfBlockDoesNotStartWithTag.stree.txt index 2817f3030..a2e682734 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/ThrowsExceptionIfBlockDoesNotStartWithTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/ThrowsExceptionIfBlockDoesNotStartWithTag.stree.txt @@ -1 +1 @@ -Markup block - Gen - 0 - (0:0,0) +MarkupBlock - [0..0)::0 - [] diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/WithUnclosedTagAtEOFThrowsMissingEndTagException.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/WithUnclosedTagAtEOFThrowsMissingEndTagException.stree.txt index a2b30a268..94982bdc6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/WithUnclosedTagAtEOFThrowsMissingEndTagException.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/WithUnclosedTagAtEOFThrowsMissingEndTagException.stree.txt @@ -1,16 +1,16 @@ -Markup block - Gen - 29 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [blah blah blah blah blah] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:9 - SyntaxKind.Text;[blah]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[blah]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[blah]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[blah]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[blah]; +MarkupBlock - [0..29)::29 - [blah blah blah blah blah] + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [5..29)::24 - [blah blah blah blah blah] - Gen - SpanEditHandler;Accepts:Any + Text;[blah]; + Whitespace;[ ]; + Text;[blah]; + Whitespace;[ ]; + Text;[blah]; + Whitespace;[ ]; + Text;[blah]; + Whitespace;[ ]; + Text;[blah]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/WithUnclosedTopLevelTagThrowsOnOutermostUnclosedTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/WithUnclosedTopLevelTagThrowsOnOutermostUnclosedTag.stree.txt index 3c729cd88..891cb8a91 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/WithUnclosedTopLevelTagThrowsOnOutermostUnclosedTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/WithUnclosedTopLevelTagThrowsOnOutermostUnclosedTag.stree.txt @@ -1,17 +1,17 @@ -Markup block - Gen - 14 - (0:0,0) - Tag block - Gen - 3 - (0:0,0) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (3:0,3) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (8:0,8) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (8:0,8) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[bar]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..14)::14 - [

    ] + MarkupTagBlock - [0..3)::3 - [

    ] + MarkupTextLiteral - [0..3)::3 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..8)::5 - [] + MarkupTextLiteral - [3..8)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTagBlock - [8..14)::6 - [] + MarkupTextLiteral - [8..14)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[bar]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/WithUnfinishedTagAtEOFThrowsIncompleteTagException.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/WithUnfinishedTagAtEOFThrowsIncompleteTagException.stree.txt index ff8733cb8..0ccf897e9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/WithUnfinishedTagAtEOFThrowsIncompleteTagException.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlErrorTest/WithUnfinishedTagAtEOFThrowsIncompleteTagException.stree.txt @@ -1,12 +1,15 @@ -Markup block - Gen - 12 - (0:0,0) - Tag block - Gen - 12 - (0:0,0) - Markup span - Gen - [ - 8 - (4:0,4) - Markup span - Gen - [ bar=] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bar]; - SyntaxKind.Equals;[=]; - Markup span - Gen - [baz] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[baz]; +MarkupBlock - [0..12)::12 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[foo]; + MarkupAttributeBlock - [4..12)::8 - [ bar=baz] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..8)::3 - [bar] - Gen - SpanEditHandler;Accepts:Any + Text;[bar]; + Equals;[=]; + GenericBlock - [9..12)::3 + MarkupLiteralAttributeValue - [9..12)::3 - [baz] + MarkupTextLiteral - [9..12)::3 - [baz] - Gen - SpanEditHandler;Accepts:Any + Text;[baz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/CDataTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/CDataTag.stree.txt index 81445b018..6bb87cce3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/CDataTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/CDataTag.stree.txt @@ -1,13 +1,13 @@ -Markup block - Gen - 16 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:9 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Bang;[!]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[CDATA]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[Foo]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1 - SyntaxKind.Whitespace;[ ]; +MarkupBlock - [0..16)::16 - [ ] + MarkupTextLiteral - [0..15)::15 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Bang;[!]; + LeftBracket;[[]; + Text;[CDATA]; + LeftBracket;[[]; + Text;[Foo]; + RightBracket;[]]; + RightBracket;[]]; + CloseAngle;[>]; + MarkupTextLiteral - [15..16)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/CommentTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/CommentTag.stree.txt index 621dbb980..3b8b28953 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/CommentTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/CommentTag.stree.txt @@ -1,13 +1,13 @@ -Markup block - Gen - 11 - (0:0,0) - HtmlComment block - Gen - 10 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (7:0,7) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Whitespace;[ ]; +MarkupBlock - [0..11)::11 - [ ] + MarkupCommentBlock - [0..10)::10 + MarkupTextLiteral - [0..4)::4 - [] - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTextLiteral - [10..11)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/DocTypeTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/DocTypeTag.stree.txt index 32f7fa877..c2e81cdca 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/DocTypeTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/DocTypeTag.stree.txt @@ -1,10 +1,10 @@ -Markup block - Gen - 16 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:6 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Bang;[!]; - SyntaxKind.Text;[DOCTYPE]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[html]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1 - SyntaxKind.Whitespace;[ ]; +MarkupBlock - [0..16)::16 - [ ] + MarkupTextLiteral - [0..15)::15 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Bang;[!]; + Text;[DOCTYPE]; + Whitespace;[ ]; + Text;[html]; + CloseAngle;[>]; + MarkupTextLiteral - [15..16)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ElementTags.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ElementTags.stree.txt index 58655a02b..595d9b844 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ElementTags.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ElementTags.stree.txt @@ -1,16 +1,16 @@ -Markup block - Gen - 11 - (0:0,0) - Tag block - Gen - 3 - (0:0,0) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:1 - SyntaxKind.Text;[Foo]; - Tag block - Gen - 4 - (6:0,6) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (6:0,6) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Whitespace;[ ]; +MarkupBlock - [0..11)::11 - [

    Foo

    ] + MarkupTagBlock - [0..3)::3 - [

    ] + MarkupTextLiteral - [0..3)::3 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..6)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTagBlock - [6..10)::4 - [

    ] + MarkupTextLiteral - [6..10)::4 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [10..11)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/EmptyTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/EmptyTag.stree.txt index baf0d6663..54c9c3aaa 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/EmptyTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/EmptyTag.stree.txt @@ -1,12 +1,12 @@ -Markup block - Gen - 6 - (0:0,0) - Tag block - Gen - 2 - (0:0,0) - Markup span - Gen - [<>] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:2 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 3 - (2:0,2) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (2:0,2) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (5:0,5) - Tokens:1 - SyntaxKind.Whitespace;[ ]; +MarkupBlock - [0..6)::6 - [<> ] + MarkupTagBlock - [0..2)::2 - [<>] + MarkupTextLiteral - [0..2)::2 - [<>] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + CloseAngle;[>]; + MarkupTagBlock - [2..5)::3 - [] + MarkupTextLiteral - [2..5)::3 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/EmptyTagNestsLikeNormalTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/EmptyTagNestsLikeNormalTag.stree.txt index a67b6a15f..10e4bae77 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/EmptyTagNestsLikeNormalTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/EmptyTagNestsLikeNormalTag.stree.txt @@ -1,13 +1,13 @@ -Markup block - Gen - 7 - (0:0,0) - Tag block - Gen - 3 - (0:0,0) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 3 - (3:0,3) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (6:0,6) - Tokens:1 - SyntaxKind.Whitespace;[ ]; +MarkupBlock - [0..7)::7 - [

    ] + MarkupTagBlock - [0..3)::3 - [

    ] + MarkupTextLiteral - [0..3)::3 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..6)::3 - [] + MarkupTextLiteral - [3..6)::3 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/IncompleteVoidElementEndTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/IncompleteVoidElementEndTag.stree.txt index e0fac8062..19dd914fa 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/IncompleteVoidElementEndTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/IncompleteVoidElementEndTag.stree.txt @@ -1,279 +1,285 @@ -Markup block - Gen - 344 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 344 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[}];AtEOL - (2:0,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 21 - (4:1,0) - Tag block - Gen - 6 - (4:1,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (4:1,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[area]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 15 - (10:1,6) - Markup span - Gen - [ - 21 - (25:4,0) - Tag block - Gen - 6 - (25:4,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (25:4,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[base]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 15 - (31:4,6) - Markup span - Gen - [ - 17 - (46:7,0) - Tag block - Gen - 4 - (46:7,0) - Markup span - Gen - [
    ] - SpanEditHandler;Accepts:None - (46:7,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[br]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 13 - (50:7,4) - Markup span - Gen - [ - 19 - (63:10,0) - Tag block - Gen - 5 - (63:10,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (63:10,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[col]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 14 - (68:10,5) - Markup span - Gen - [ - 27 - (82:13,0) - Tag block - Gen - 9 - (82:13,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (82:13,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[command]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 18 - (91:13,9) - Markup span - Gen - [ - 23 - (109:16,0) - Tag block - Gen - 7 - (109:16,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (109:16,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[embed]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 16 - (116:16,7) - Markup span - Gen - [ - 17 - (132:19,0) - Tag block - Gen - 4 - (132:19,0) - Markup span - Gen - [


    ] - SpanEditHandler;Accepts:None - (132:19,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[hr]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 13 - (136:19,4) - Markup span - Gen - [ - 19 - (149:22,0) - Tag block - Gen - 5 - (149:22,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (149:22,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[img]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 14 - (154:22,5) - Markup span - Gen - [ - 23 - (168:25,0) - Tag block - Gen - 7 - (168:25,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (168:25,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[input]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 16 - (175:25,7) - Markup span - Gen - [ - 25 - (191:28,0) - Tag block - Gen - 8 - (191:28,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (191:28,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[keygen]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 17 - (199:28,8) - Markup span - Gen - [ - 21 - (216:31,0) - Tag block - Gen - 6 - (216:31,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (216:31,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[link]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 15 - (222:31,6) - Markup span - Gen - [ - 21 - (237:34,0) - Tag block - Gen - 6 - (237:34,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (237:34,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[meta]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 15 - (243:34,6) - Markup span - Gen - [ - 23 - (258:37,0) - Tag block - Gen - 7 - (258:37,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (258:37,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[param]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 16 - (265:37,7) - Markup span - Gen - [ - 25 - (281:40,0) - Tag block - Gen - 8 - (281:40,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (281:40,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[source]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 17 - (289:40,8) - Markup span - Gen - [ - 23 - (306:43,0) - Tag block - Gen - 7 - (306:43,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (306:43,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[track]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 16 - (313:43,7) - Markup span - Gen - [ - 15 - (329:46,0) - Tag block - Gen - 5 - (329:46,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (329:46,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[wbr]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 10 - (334:46,5) - Markup span - Gen - [ - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..344)::344 + CSharpStatement - [0..344)::344 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..344)::343 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..344)::342 + CSharpStatementLiteral - [2..4)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[}];AtEOL + NewLine;[LF]; + MarkupBlock - [4..25)::21 + MarkupTagBlock - [4..10)::6 - [] + MarkupTextLiteral - [4..10)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[area]; + CloseAngle;[>]; + MarkupTagBlock - [10..25)::15 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[area]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Transition;[@]; + Text;[{]; + NewLine;[LF]; + MarkupBlock - [25..46)::21 + MarkupTagBlock - [25..31)::6 - [] + MarkupTextLiteral - [25..31)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[base]; + CloseAngle;[>]; + MarkupTagBlock - [31..46)::15 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[base]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Transition;[@]; + Text;[{]; + NewLine;[LF]; + MarkupBlock - [46..63)::17 + MarkupTagBlock - [46..50)::4 - [
    ] + MarkupTextLiteral - [46..50)::4 - [
    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[br]; + CloseAngle;[>]; + MarkupTagBlock - [50..63)::13 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[br]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Transition;[@]; + Text;[{]; + NewLine;[LF]; + MarkupBlock - [63..82)::19 + MarkupTagBlock - [63..68)::5 - [] + MarkupTextLiteral - [63..68)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[col]; + CloseAngle;[>]; + MarkupTagBlock - [68..82)::14 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[col]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Transition;[@]; + Text;[{]; + NewLine;[LF]; + MarkupBlock - [82..109)::27 + MarkupTagBlock - [82..91)::9 - [] + MarkupTextLiteral - [82..91)::9 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[command]; + CloseAngle;[>]; + MarkupTagBlock - [91..109)::18 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[command]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Transition;[@]; + Text;[{]; + NewLine;[LF]; + MarkupBlock - [109..132)::23 + MarkupTagBlock - [109..116)::7 - [] + MarkupTextLiteral - [109..116)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[embed]; + CloseAngle;[>]; + MarkupTagBlock - [116..132)::16 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[embed]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Transition;[@]; + Text;[{]; + NewLine;[LF]; + MarkupBlock - [132..149)::17 + MarkupTagBlock - [132..136)::4 - [
    ] + MarkupTextLiteral - [132..136)::4 - [
    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[hr]; + CloseAngle;[>]; + MarkupTagBlock - [136..149)::13 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[hr]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Transition;[@]; + Text;[{]; + NewLine;[LF]; + MarkupBlock - [149..168)::19 + MarkupTagBlock - [149..154)::5 - [] + MarkupTextLiteral - [149..154)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[img]; + CloseAngle;[>]; + MarkupTagBlock - [154..168)::14 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[img]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Transition;[@]; + Text;[{]; + NewLine;[LF]; + MarkupBlock - [168..191)::23 + MarkupTagBlock - [168..175)::7 - [] + MarkupTextLiteral - [168..175)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; + MarkupTagBlock - [175..191)::16 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[input]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Transition;[@]; + Text;[{]; + NewLine;[LF]; + MarkupBlock - [191..216)::25 + MarkupTagBlock - [191..199)::8 - [] + MarkupTextLiteral - [191..199)::8 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[keygen]; + CloseAngle;[>]; + MarkupTagBlock - [199..216)::17 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[keygen]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Transition;[@]; + Text;[{]; + NewLine;[LF]; + MarkupBlock - [216..237)::21 + MarkupTagBlock - [216..222)::6 - [] + MarkupTextLiteral - [216..222)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[link]; + CloseAngle;[>]; + MarkupTagBlock - [222..237)::15 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[link]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Transition;[@]; + Text;[{]; + NewLine;[LF]; + MarkupBlock - [237..258)::21 + MarkupTagBlock - [237..243)::6 - [] + MarkupTextLiteral - [237..243)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[meta]; + CloseAngle;[>]; + MarkupTagBlock - [243..258)::15 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[meta]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Transition;[@]; + Text;[{]; + NewLine;[LF]; + MarkupBlock - [258..281)::23 + MarkupTagBlock - [258..265)::7 - [] + MarkupTextLiteral - [258..265)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[param]; + CloseAngle;[>]; + MarkupTagBlock - [265..281)::16 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[param]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Transition;[@]; + Text;[{]; + NewLine;[LF]; + MarkupBlock - [281..306)::25 + MarkupTagBlock - [281..289)::8 - [] + MarkupTextLiteral - [281..289)::8 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[source]; + CloseAngle;[>]; + MarkupTagBlock - [289..306)::17 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[source]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Transition;[@]; + Text;[{]; + NewLine;[LF]; + MarkupBlock - [306..329)::23 + MarkupTagBlock - [306..313)::7 - [] + MarkupTextLiteral - [306..313)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[track]; + CloseAngle;[>]; + MarkupTagBlock - [313..329)::16 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[track]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Transition;[@]; + Text;[{]; + NewLine;[LF]; + MarkupBlock - [329..344)::15 + MarkupTagBlock - [329..334)::5 - [] + MarkupTextLiteral - [329..334)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[wbr]; + CloseAngle;[>]; + MarkupTagBlock - [334..344)::10 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[wbr]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + RazorMetaCode - [344..344)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ProcessingInstructionTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ProcessingInstructionTag.stree.txt index dddadc8c9..e239ffba0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ProcessingInstructionTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ProcessingInstructionTag.stree.txt @@ -1,16 +1,16 @@ -Markup block - Gen - 23 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:12 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.Text;[xml]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[version]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - SyntaxKind.Text;[1.0]; - SyntaxKind.DoubleQuote;["]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (22:0,22) - Tokens:1 - SyntaxKind.Whitespace;[ ]; +MarkupBlock - [0..23)::23 - [ ] + MarkupTextLiteral - [0..22)::22 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + QuestionMark;[?]; + Text;[xml]; + Whitespace;[ ]; + Text;[version]; + Equals;[=]; + DoubleQuote;["]; + Text;[1.0]; + DoubleQuote;["]; + Whitespace;[ ]; + QuestionMark;[?]; + CloseAngle;[>]; + MarkupTextLiteral - [22..23)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag.stree.txt index ec50996e1..7f99f00f9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag.stree.txt @@ -1,28 +1,29 @@ -Markup block - Gen - 68 - (0:0,0) - Tag block - Gen - 8 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (59:0,59) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..68)::68 - [] + MarkupBlock - [0..68)::68 + MarkupTagBlock - [0..8)::8 - [] + MarkupTextLiteral - [59..68)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag_WithNestedBeginTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag_WithNestedBeginTag.stree.txt index 0875523d1..56d08090e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag_WithNestedBeginTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag_WithNestedBeginTag.stree.txt @@ -1,16 +1,17 @@ -Markup block - Gen - 20 - (0:0,0) - Tag block - Gen - 8 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..20)::20 - [] + MarkupBlock - [0..20)::20 + MarkupTagBlock - [0..8)::8 - [] + MarkupTextLiteral - [11..20)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag_WithNestedEndTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag_WithNestedEndTag.stree.txt index b567fc17c..24eda177d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag_WithNestedEndTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag_WithNestedEndTag.stree.txt @@ -1,17 +1,18 @@ -Markup block - Gen - 21 - (0:0,0) - Tag block - Gen - 8 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..21)::21 - [] + MarkupBlock - [0..21)::21 + MarkupTagBlock - [0..8)::8 - [] + MarkupTextLiteral - [12..21)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag_WithNestedMalformedTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag_WithNestedMalformedTag.stree.txt index 8239da199..9652a8ea7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag_WithNestedMalformedTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag_WithNestedMalformedTag.stree.txt @@ -1,29 +1,30 @@ -Markup block - Gen - 39 - (0:0,0) - Tag block - Gen - 8 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..39)::39 - [] + MarkupBlock - [0..39)::39 + MarkupTagBlock - [0..8)::8 - [] + MarkupTextLiteral - [30..39)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag_WithNestedTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag_WithNestedTag.stree.txt index e8cc72350..161404efd 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag_WithNestedTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/ScriptTag_WithNestedTag.stree.txt @@ -1,20 +1,21 @@ -Markup block - Gen - 24 - (0:0,0) - Tag block - Gen - 8 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..24)::24 - [] + MarkupBlock - [0..24)::24 + MarkupTagBlock - [0..8)::8 - [] + MarkupTextLiteral - [15..24)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/TextTags.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/TextTags.stree.txt index 0448c3594..7c6e8f6fd 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/TextTags.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/TextTags.stree.txt @@ -1,14 +1,14 @@ -Markup block - Gen - 16 - (0:0,0) - Tag block - Gen - 6 - (0:0,0) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:None - (6:0,6) - Tokens:1 - SyntaxKind.Text;[Foo]; - Tag block - Gen - 7 - (9:0,9) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; +MarkupBlock - [0..16)::16 - [Foo] + MarkupTagBlock - [0..6)::6 - [] + MarkupTransition - [0..6)::6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [6..9)::3 - [Foo] - Gen - SpanEditHandler;Accepts:None + Text;[Foo]; + MarkupTagBlock - [9..16)::7 - [] + MarkupTransition - [9..16)::7 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/VoidElementFollowedByCloseTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/VoidElementFollowedByCloseTag.stree.txt index 11b37fa43..205e42d6a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/VoidElementFollowedByCloseTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/VoidElementFollowedByCloseTag.stree.txt @@ -1,563 +1,612 @@ -Markup block - Gen - 584 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 34 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (2:0,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 14 - (4:1,0) - Tag block - Gen - 6 - (4:1,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (4:1,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[area]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (10:1,6) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 7 - (11:1,7) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (11:1,7) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[area]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (18:1,14) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (33:2,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (34:2,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 34 - (36:3,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (36:3,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (37:3,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (38:3,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 14 - (40:4,0) - Tag block - Gen - 6 - (40:4,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (40:4,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[base]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (46:4,6) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 7 - (47:4,7) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (47:4,7) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[base]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (54:4,14) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (69:5,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (70:5,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 30 - (72:6,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (72:6,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (73:6,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (74:6,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 10 - (76:7,0) - Tag block - Gen - 4 - (76:7,0) - Markup span - Gen - [
    ] - SpanEditHandler;Accepts:None - (76:7,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[br]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (80:7,4) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 5 - (81:7,5) - Markup span - Gen - [
    ] - SpanEditHandler;Accepts:None - (81:7,5) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[br]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (86:7,10) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (101:8,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (102:8,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 32 - (104:9,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (104:9,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (105:9,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (106:9,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 12 - (108:10,0) - Tag block - Gen - 5 - (108:10,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (108:10,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[col]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (113:10,5) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 6 - (114:10,6) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (114:10,6) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[col]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (120:10,12) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (135:11,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (136:11,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 40 - (138:12,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (138:12,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (139:12,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (140:12,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 20 - (142:13,0) - Tag block - Gen - 9 - (142:13,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (142:13,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[command]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (151:13,9) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 10 - (152:13,10) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (152:13,10) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[command]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (162:13,20) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (177:14,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (178:14,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 36 - (180:15,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (180:15,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (181:15,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (182:15,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 16 - (184:16,0) - Tag block - Gen - 7 - (184:16,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (184:16,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[embed]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (191:16,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 8 - (192:16,8) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (192:16,8) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[embed]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (200:16,16) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (215:17,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (216:17,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 30 - (218:18,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (218:18,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (219:18,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (220:18,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 10 - (222:19,0) - Tag block - Gen - 4 - (222:19,0) - Markup span - Gen - [
    ] - SpanEditHandler;Accepts:None - (222:19,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[hr]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (226:19,4) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 5 - (227:19,5) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (227:19,5) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[hr]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (232:19,10) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (247:20,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (248:20,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 32 - (250:21,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (250:21,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (251:21,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (252:21,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 12 - (254:22,0) - Tag block - Gen - 5 - (254:22,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (254:22,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[img]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (259:22,5) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 6 - (260:22,6) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (260:22,6) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[img]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (266:22,12) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (281:23,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (282:23,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 36 - (284:24,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (284:24,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (285:24,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (286:24,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 16 - (288:25,0) - Tag block - Gen - 7 - (288:25,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (288:25,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[input]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (295:25,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 8 - (296:25,8) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (296:25,8) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[input]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (304:25,16) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (319:26,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (320:26,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 38 - (322:27,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (322:27,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (323:27,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (324:27,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 18 - (326:28,0) - Tag block - Gen - 8 - (326:28,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (326:28,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[keygen]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (334:28,8) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 9 - (335:28,9) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (335:28,9) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[keygen]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (344:28,18) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (359:29,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (360:29,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 34 - (362:30,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (362:30,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (363:30,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (364:30,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 14 - (366:31,0) - Tag block - Gen - 6 - (366:31,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (366:31,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[link]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (372:31,6) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 7 - (373:31,7) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (373:31,7) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[link]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (380:31,14) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (395:32,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (396:32,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 34 - (398:33,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (398:33,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (399:33,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (400:33,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 14 - (402:34,0) - Tag block - Gen - 6 - (402:34,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (402:34,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[meta]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (408:34,6) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 7 - (409:34,7) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (409:34,7) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[meta]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (416:34,14) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (431:35,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (432:35,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 36 - (434:36,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (434:36,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (435:36,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (436:36,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 16 - (438:37,0) - Tag block - Gen - 7 - (438:37,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (438:37,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[param]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (445:37,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 8 - (446:37,8) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (446:37,8) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[param]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (454:37,16) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (469:38,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (470:38,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 38 - (472:39,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (472:39,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (473:39,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (474:39,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 18 - (476:40,0) - Tag block - Gen - 8 - (476:40,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (476:40,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[source]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (484:40,8) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 9 - (485:40,9) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (485:40,9) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[source]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (494:40,18) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (509:41,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (510:41,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 36 - (512:42,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (512:42,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (513:42,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (514:42,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 16 - (516:43,0) - Tag block - Gen - 7 - (516:43,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (516:43,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[track]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (523:43,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 8 - (524:43,8) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (524:43,8) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[track]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (532:43,16) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (547:44,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (548:44,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 32 - (550:45,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (550:45,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (551:45,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (552:45,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 12 - (554:46,0) - Tag block - Gen - 5 - (554:46,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (554:46,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[wbr]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (559:46,5) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 6 - (560:46,6) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (560:46,6) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[wbr]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (566:46,12) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (581:47,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (582:47,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; +RazorDocument - [0..584)::584 - [@{LF var x = true;LF}LF@{LF var x = true;LF}LF@{LF

    var x = true;LF}LF@{LF var x = true;LF}LF@{LF var x = true;LF}LF@{LF var x = true;LF}LF@{LF
    var x = true;LF}LF@{LF var x = true;LF}LF@{LF var x = true;LF}LF@{LF var x = true;LF}LF@{LF var x = true;LF}LF@{LF var x = true;LF}LF@{LF var x = true;LF}LF@{LF var x = true;LF}LF@{LF var x = true;LF}LF@{LF var x = true;LF}LF] + MarkupBlock - [0..584)::584 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..34)::34 + CSharpStatement - [0..34)::34 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..34)::33 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..33)::31 + CSharpStatementLiteral - [2..4)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [4..18)::14 + MarkupTagBlock - [4..10)::6 - [] + MarkupTextLiteral - [4..10)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[area]; + CloseAngle;[>]; + MarkupTextLiteral - [10..11)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [11..18)::7 - [] + MarkupTextLiteral - [11..18)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[area]; + CloseAngle;[>]; + CSharpStatementLiteral - [18..33)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [33..34)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [34..36)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [36..70)::34 + CSharpStatement - [36..70)::34 + CSharpTransition - [36..37)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [37..70)::33 + RazorMetaCode - [37..38)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [38..69)::31 + CSharpStatementLiteral - [38..40)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [40..54)::14 + MarkupTagBlock - [40..46)::6 - [] + MarkupTextLiteral - [40..46)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[base]; + CloseAngle;[>]; + MarkupTextLiteral - [46..47)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [47..54)::7 - [] + MarkupTextLiteral - [47..54)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[base]; + CloseAngle;[>]; + CSharpStatementLiteral - [54..69)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [69..70)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [70..72)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [72..102)::30 + CSharpStatement - [72..102)::30 + CSharpTransition - [72..73)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [73..102)::29 + RazorMetaCode - [73..74)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [74..101)::27 + CSharpStatementLiteral - [74..76)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [76..86)::10 + MarkupTagBlock - [76..80)::4 - [
    ] + MarkupTextLiteral - [76..80)::4 - [
    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[br]; + CloseAngle;[>]; + MarkupTextLiteral - [80..81)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [81..86)::5 - [
    ] + MarkupTextLiteral - [81..86)::5 - [
    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[br]; + CloseAngle;[>]; + CSharpStatementLiteral - [86..101)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [101..102)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [102..104)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [104..136)::32 + CSharpStatement - [104..136)::32 + CSharpTransition - [104..105)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [105..136)::31 + RazorMetaCode - [105..106)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [106..135)::29 + CSharpStatementLiteral - [106..108)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [108..120)::12 + MarkupTagBlock - [108..113)::5 - [] + MarkupTextLiteral - [108..113)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[col]; + CloseAngle;[>]; + MarkupTextLiteral - [113..114)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [114..120)::6 - [] + MarkupTextLiteral - [114..120)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[col]; + CloseAngle;[>]; + CSharpStatementLiteral - [120..135)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [135..136)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [136..138)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [138..178)::40 + CSharpStatement - [138..178)::40 + CSharpTransition - [138..139)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [139..178)::39 + RazorMetaCode - [139..140)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [140..177)::37 + CSharpStatementLiteral - [140..142)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [142..162)::20 + MarkupTagBlock - [142..151)::9 - [] + MarkupTextLiteral - [142..151)::9 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[command]; + CloseAngle;[>]; + MarkupTextLiteral - [151..152)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [152..162)::10 - [] + MarkupTextLiteral - [152..162)::10 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[command]; + CloseAngle;[>]; + CSharpStatementLiteral - [162..177)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [177..178)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [178..180)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [180..216)::36 + CSharpStatement - [180..216)::36 + CSharpTransition - [180..181)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [181..216)::35 + RazorMetaCode - [181..182)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [182..215)::33 + CSharpStatementLiteral - [182..184)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [184..200)::16 + MarkupTagBlock - [184..191)::7 - [] + MarkupTextLiteral - [184..191)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[embed]; + CloseAngle;[>]; + MarkupTextLiteral - [191..192)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [192..200)::8 - [] + MarkupTextLiteral - [192..200)::8 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[embed]; + CloseAngle;[>]; + CSharpStatementLiteral - [200..215)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [215..216)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [216..218)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [218..248)::30 + CSharpStatement - [218..248)::30 + CSharpTransition - [218..219)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [219..248)::29 + RazorMetaCode - [219..220)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [220..247)::27 + CSharpStatementLiteral - [220..222)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [222..232)::10 + MarkupTagBlock - [222..226)::4 - [
    ] + MarkupTextLiteral - [222..226)::4 - [
    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[hr]; + CloseAngle;[>]; + MarkupTextLiteral - [226..227)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [227..232)::5 - [] + MarkupTextLiteral - [227..232)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[hr]; + CloseAngle;[>]; + CSharpStatementLiteral - [232..247)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [247..248)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [248..250)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [250..282)::32 + CSharpStatement - [250..282)::32 + CSharpTransition - [250..251)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [251..282)::31 + RazorMetaCode - [251..252)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [252..281)::29 + CSharpStatementLiteral - [252..254)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [254..266)::12 + MarkupTagBlock - [254..259)::5 - [] + MarkupTextLiteral - [254..259)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[img]; + CloseAngle;[>]; + MarkupTextLiteral - [259..260)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [260..266)::6 - [] + MarkupTextLiteral - [260..266)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[img]; + CloseAngle;[>]; + CSharpStatementLiteral - [266..281)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [281..282)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [282..284)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [284..320)::36 + CSharpStatement - [284..320)::36 + CSharpTransition - [284..285)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [285..320)::35 + RazorMetaCode - [285..286)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [286..319)::33 + CSharpStatementLiteral - [286..288)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [288..304)::16 + MarkupTagBlock - [288..295)::7 - [] + MarkupTextLiteral - [288..295)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; + MarkupTextLiteral - [295..296)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [296..304)::8 - [] + MarkupTextLiteral - [296..304)::8 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[input]; + CloseAngle;[>]; + CSharpStatementLiteral - [304..319)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [319..320)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [320..322)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [322..360)::38 + CSharpStatement - [322..360)::38 + CSharpTransition - [322..323)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [323..360)::37 + RazorMetaCode - [323..324)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [324..359)::35 + CSharpStatementLiteral - [324..326)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [326..344)::18 + MarkupTagBlock - [326..334)::8 - [] + MarkupTextLiteral - [326..334)::8 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[keygen]; + CloseAngle;[>]; + MarkupTextLiteral - [334..335)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [335..344)::9 - [] + MarkupTextLiteral - [335..344)::9 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[keygen]; + CloseAngle;[>]; + CSharpStatementLiteral - [344..359)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [359..360)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [360..362)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [362..396)::34 + CSharpStatement - [362..396)::34 + CSharpTransition - [362..363)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [363..396)::33 + RazorMetaCode - [363..364)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [364..395)::31 + CSharpStatementLiteral - [364..366)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [366..380)::14 + MarkupTagBlock - [366..372)::6 - [] + MarkupTextLiteral - [366..372)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[link]; + CloseAngle;[>]; + MarkupTextLiteral - [372..373)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [373..380)::7 - [] + MarkupTextLiteral - [373..380)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[link]; + CloseAngle;[>]; + CSharpStatementLiteral - [380..395)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [395..396)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [396..398)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [398..432)::34 + CSharpStatement - [398..432)::34 + CSharpTransition - [398..399)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [399..432)::33 + RazorMetaCode - [399..400)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [400..431)::31 + CSharpStatementLiteral - [400..402)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [402..416)::14 + MarkupTagBlock - [402..408)::6 - [] + MarkupTextLiteral - [402..408)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[meta]; + CloseAngle;[>]; + MarkupTextLiteral - [408..409)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [409..416)::7 - [] + MarkupTextLiteral - [409..416)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[meta]; + CloseAngle;[>]; + CSharpStatementLiteral - [416..431)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [431..432)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [432..434)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [434..470)::36 + CSharpStatement - [434..470)::36 + CSharpTransition - [434..435)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [435..470)::35 + RazorMetaCode - [435..436)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [436..469)::33 + CSharpStatementLiteral - [436..438)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [438..454)::16 + MarkupTagBlock - [438..445)::7 - [] + MarkupTextLiteral - [438..445)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[param]; + CloseAngle;[>]; + MarkupTextLiteral - [445..446)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [446..454)::8 - [] + MarkupTextLiteral - [446..454)::8 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[param]; + CloseAngle;[>]; + CSharpStatementLiteral - [454..469)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [469..470)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [470..472)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [472..510)::38 + CSharpStatement - [472..510)::38 + CSharpTransition - [472..473)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [473..510)::37 + RazorMetaCode - [473..474)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [474..509)::35 + CSharpStatementLiteral - [474..476)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [476..494)::18 + MarkupTagBlock - [476..484)::8 - [] + MarkupTextLiteral - [476..484)::8 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[source]; + CloseAngle;[>]; + MarkupTextLiteral - [484..485)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [485..494)::9 - [] + MarkupTextLiteral - [485..494)::9 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[source]; + CloseAngle;[>]; + CSharpStatementLiteral - [494..509)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [509..510)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [510..512)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [512..548)::36 + CSharpStatement - [512..548)::36 + CSharpTransition - [512..513)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [513..548)::35 + RazorMetaCode - [513..514)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [514..547)::33 + CSharpStatementLiteral - [514..516)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [516..532)::16 + MarkupTagBlock - [516..523)::7 - [] + MarkupTextLiteral - [516..523)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[track]; + CloseAngle;[>]; + MarkupTextLiteral - [523..524)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [524..532)::8 - [] + MarkupTextLiteral - [524..532)::8 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[track]; + CloseAngle;[>]; + CSharpStatementLiteral - [532..547)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [547..548)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [548..550)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [550..582)::32 + CSharpStatement - [550..582)::32 + CSharpTransition - [550..551)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [551..582)::31 + RazorMetaCode - [551..552)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [552..581)::29 + CSharpStatementLiteral - [552..554)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [554..566)::12 + MarkupTagBlock - [554..559)::5 - [] + MarkupTextLiteral - [554..559)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[wbr]; + CloseAngle;[>]; + MarkupTextLiteral - [559..560)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [560..566)::6 - [] + MarkupTextLiteral - [560..566)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[wbr]; + CloseAngle;[>]; + CSharpStatementLiteral - [566..581)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [581..582)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [582..584)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/VoidElementFollowedByContent.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/VoidElementFollowedByContent.stree.txt index c0f108246..216fe622f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/VoidElementFollowedByContent.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/VoidElementFollowedByContent.stree.txt @@ -1,435 +1,484 @@ -Markup block - Gen - 452 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 26 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (2:0,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 6 - (4:1,0) - Tag block - Gen - 6 - (4:1,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (4:1,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[area]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (10:1,6) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (25:2,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (26:2,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 26 - (28:3,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (28:3,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (29:3,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (30:3,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 6 - (32:4,0) - Tag block - Gen - 6 - (32:4,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (32:4,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[base]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (38:4,6) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (53:5,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (54:5,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 24 - (56:6,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (56:6,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (57:6,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (58:6,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 4 - (60:7,0) - Tag block - Gen - 4 - (60:7,0) - Markup span - Gen - [
    ] - SpanEditHandler;Accepts:None - (60:7,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[br]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (64:7,4) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (79:8,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (80:8,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 25 - (82:9,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (82:9,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (83:9,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (84:9,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 5 - (86:10,0) - Tag block - Gen - 5 - (86:10,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (86:10,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[col]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (91:10,5) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (106:11,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (107:11,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 29 - (109:12,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (109:12,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (110:12,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (111:12,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 9 - (113:13,0) - Tag block - Gen - 9 - (113:13,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (113:13,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[command]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (122:13,9) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (137:14,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (138:14,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 27 - (140:15,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (140:15,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (141:15,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (142:15,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 7 - (144:16,0) - Tag block - Gen - 7 - (144:16,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (144:16,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[embed]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (151:16,7) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (166:17,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (167:17,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 24 - (169:18,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (169:18,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (170:18,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (171:18,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 4 - (173:19,0) - Tag block - Gen - 4 - (173:19,0) - Markup span - Gen - [
    ] - SpanEditHandler;Accepts:None - (173:19,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[hr]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (177:19,4) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (192:20,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (193:20,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 25 - (195:21,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (195:21,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (196:21,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (197:21,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 5 - (199:22,0) - Tag block - Gen - 5 - (199:22,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (199:22,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[img]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (204:22,5) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (219:23,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (220:23,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 27 - (222:24,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (222:24,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (223:24,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (224:24,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 7 - (226:25,0) - Tag block - Gen - 7 - (226:25,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (226:25,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[input]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (233:25,7) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (248:26,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (249:26,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 28 - (251:27,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (251:27,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (252:27,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (253:27,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 8 - (255:28,0) - Tag block - Gen - 8 - (255:28,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (255:28,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[keygen]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (263:28,8) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (278:29,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (279:29,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 26 - (281:30,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (281:30,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (282:30,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (283:30,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 6 - (285:31,0) - Tag block - Gen - 6 - (285:31,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (285:31,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[link]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (291:31,6) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (306:32,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (307:32,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 26 - (309:33,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (309:33,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (310:33,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (311:33,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 6 - (313:34,0) - Tag block - Gen - 6 - (313:34,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (313:34,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[meta]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (319:34,6) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (334:35,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (335:35,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 27 - (337:36,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (337:36,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (338:36,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (339:36,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 7 - (341:37,0) - Tag block - Gen - 7 - (341:37,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (341:37,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[param]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (348:37,7) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (363:38,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (364:38,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 28 - (366:39,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (366:39,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (367:39,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (368:39,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 8 - (370:40,0) - Tag block - Gen - 8 - (370:40,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (370:40,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[source]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (378:40,8) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (393:41,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (394:41,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 27 - (396:42,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (396:42,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (397:42,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (398:42,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 7 - (400:43,0) - Tag block - Gen - 7 - (400:43,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (400:43,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[track]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (407:43,7) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (422:44,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (423:44,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 25 - (425:45,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (425:45,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (426:45,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (427:45,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 5 - (429:46,0) - Tag block - Gen - 5 - (429:46,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (429:46,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[wbr]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [var x = true;LF] - SpanEditHandler;Accepts:Any - (434:46,5) - Tokens:9 - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[true]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (449:47,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (450:47,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; +RazorDocument - [0..452)::452 - [@{LFvar x = true;LF}LF@{LFvar x = true;LF}LF@{LF
    var x = true;LF}LF@{LFvar x = true;LF}LF@{LFvar x = true;LF}LF@{LFvar x = true;LF}LF@{LF
    var x = true;LF}LF@{LFvar x = true;LF}LF@{LFvar x = true;LF}LF@{LFvar x = true;LF}LF@{LFvar x = true;LF}LF@{LFvar x = true;LF}LF@{LFvar x = true;LF}LF@{LFvar x = true;LF}LF@{LFvar x = true;LF}LF@{LFvar x = true;LF}LF] + MarkupBlock - [0..452)::452 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..26)::26 + CSharpStatement - [0..26)::26 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..26)::25 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..25)::23 + CSharpStatementLiteral - [2..4)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [4..10)::6 + MarkupTagBlock - [4..10)::6 - [] + MarkupTextLiteral - [4..10)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[area]; + CloseAngle;[>]; + CSharpStatementLiteral - [10..25)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [25..26)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [26..28)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [28..54)::26 + CSharpStatement - [28..54)::26 + CSharpTransition - [28..29)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [29..54)::25 + RazorMetaCode - [29..30)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [30..53)::23 + CSharpStatementLiteral - [30..32)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [32..38)::6 + MarkupTagBlock - [32..38)::6 - [] + MarkupTextLiteral - [32..38)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[base]; + CloseAngle;[>]; + CSharpStatementLiteral - [38..53)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [53..54)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [54..56)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [56..80)::24 + CSharpStatement - [56..80)::24 + CSharpTransition - [56..57)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [57..80)::23 + RazorMetaCode - [57..58)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [58..79)::21 + CSharpStatementLiteral - [58..60)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [60..64)::4 + MarkupTagBlock - [60..64)::4 - [
    ] + MarkupTextLiteral - [60..64)::4 - [
    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[br]; + CloseAngle;[>]; + CSharpStatementLiteral - [64..79)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [79..80)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [80..82)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [82..107)::25 + CSharpStatement - [82..107)::25 + CSharpTransition - [82..83)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [83..107)::24 + RazorMetaCode - [83..84)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [84..106)::22 + CSharpStatementLiteral - [84..86)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [86..91)::5 + MarkupTagBlock - [86..91)::5 - [] + MarkupTextLiteral - [86..91)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[col]; + CloseAngle;[>]; + CSharpStatementLiteral - [91..106)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [106..107)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [107..109)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [109..138)::29 + CSharpStatement - [109..138)::29 + CSharpTransition - [109..110)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [110..138)::28 + RazorMetaCode - [110..111)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [111..137)::26 + CSharpStatementLiteral - [111..113)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [113..122)::9 + MarkupTagBlock - [113..122)::9 - [] + MarkupTextLiteral - [113..122)::9 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[command]; + CloseAngle;[>]; + CSharpStatementLiteral - [122..137)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [137..138)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [138..140)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [140..167)::27 + CSharpStatement - [140..167)::27 + CSharpTransition - [140..141)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [141..167)::26 + RazorMetaCode - [141..142)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [142..166)::24 + CSharpStatementLiteral - [142..144)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [144..151)::7 + MarkupTagBlock - [144..151)::7 - [] + MarkupTextLiteral - [144..151)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[embed]; + CloseAngle;[>]; + CSharpStatementLiteral - [151..166)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [166..167)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [167..169)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [169..193)::24 + CSharpStatement - [169..193)::24 + CSharpTransition - [169..170)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [170..193)::23 + RazorMetaCode - [170..171)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [171..192)::21 + CSharpStatementLiteral - [171..173)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [173..177)::4 + MarkupTagBlock - [173..177)::4 - [
    ] + MarkupTextLiteral - [173..177)::4 - [
    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[hr]; + CloseAngle;[>]; + CSharpStatementLiteral - [177..192)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [192..193)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [193..195)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [195..220)::25 + CSharpStatement - [195..220)::25 + CSharpTransition - [195..196)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [196..220)::24 + RazorMetaCode - [196..197)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [197..219)::22 + CSharpStatementLiteral - [197..199)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [199..204)::5 + MarkupTagBlock - [199..204)::5 - [] + MarkupTextLiteral - [199..204)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[img]; + CloseAngle;[>]; + CSharpStatementLiteral - [204..219)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [219..220)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [220..222)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [222..249)::27 + CSharpStatement - [222..249)::27 + CSharpTransition - [222..223)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [223..249)::26 + RazorMetaCode - [223..224)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [224..248)::24 + CSharpStatementLiteral - [224..226)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [226..233)::7 + MarkupTagBlock - [226..233)::7 - [] + MarkupTextLiteral - [226..233)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; + CSharpStatementLiteral - [233..248)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [248..249)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [249..251)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [251..279)::28 + CSharpStatement - [251..279)::28 + CSharpTransition - [251..252)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [252..279)::27 + RazorMetaCode - [252..253)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [253..278)::25 + CSharpStatementLiteral - [253..255)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [255..263)::8 + MarkupTagBlock - [255..263)::8 - [] + MarkupTextLiteral - [255..263)::8 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[keygen]; + CloseAngle;[>]; + CSharpStatementLiteral - [263..278)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [278..279)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [279..281)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [281..307)::26 + CSharpStatement - [281..307)::26 + CSharpTransition - [281..282)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [282..307)::25 + RazorMetaCode - [282..283)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [283..306)::23 + CSharpStatementLiteral - [283..285)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [285..291)::6 + MarkupTagBlock - [285..291)::6 - [] + MarkupTextLiteral - [285..291)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[link]; + CloseAngle;[>]; + CSharpStatementLiteral - [291..306)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [306..307)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [307..309)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [309..335)::26 + CSharpStatement - [309..335)::26 + CSharpTransition - [309..310)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [310..335)::25 + RazorMetaCode - [310..311)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [311..334)::23 + CSharpStatementLiteral - [311..313)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [313..319)::6 + MarkupTagBlock - [313..319)::6 - [] + MarkupTextLiteral - [313..319)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[meta]; + CloseAngle;[>]; + CSharpStatementLiteral - [319..334)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [334..335)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [335..337)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [337..364)::27 + CSharpStatement - [337..364)::27 + CSharpTransition - [337..338)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [338..364)::26 + RazorMetaCode - [338..339)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [339..363)::24 + CSharpStatementLiteral - [339..341)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [341..348)::7 + MarkupTagBlock - [341..348)::7 - [] + MarkupTextLiteral - [341..348)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[param]; + CloseAngle;[>]; + CSharpStatementLiteral - [348..363)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [363..364)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [364..366)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [366..394)::28 + CSharpStatement - [366..394)::28 + CSharpTransition - [366..367)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [367..394)::27 + RazorMetaCode - [367..368)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [368..393)::25 + CSharpStatementLiteral - [368..370)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [370..378)::8 + MarkupTagBlock - [370..378)::8 - [] + MarkupTextLiteral - [370..378)::8 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[source]; + CloseAngle;[>]; + CSharpStatementLiteral - [378..393)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [393..394)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [394..396)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [396..423)::27 + CSharpStatement - [396..423)::27 + CSharpTransition - [396..397)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [397..423)::26 + RazorMetaCode - [397..398)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [398..422)::24 + CSharpStatementLiteral - [398..400)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [400..407)::7 + MarkupTagBlock - [400..407)::7 - [] + MarkupTextLiteral - [400..407)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[track]; + CloseAngle;[>]; + CSharpStatementLiteral - [407..422)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [422..423)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [423..425)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [425..450)::25 + CSharpStatement - [425..450)::25 + CSharpTransition - [425..426)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [426..450)::24 + RazorMetaCode - [426..427)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [427..449)::22 + CSharpStatementLiteral - [427..429)::2 - [LF] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + MarkupBlock - [429..434)::5 + MarkupTagBlock - [429..434)::5 - [] + MarkupTextLiteral - [429..434)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[wbr]; + CloseAngle;[>]; + CSharpStatementLiteral - [434..449)::15 - [var x = true;LF] - Gen - SpanEditHandler;Accepts:Any + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[true]; + Semicolon;[;]; + NewLine;[LF]; + RazorMetaCode - [449..450)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [450..452)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/VoidElementFollowedByOtherTag.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/VoidElementFollowedByOtherTag.stree.txt index f25abf090..dec1f7732 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/VoidElementFollowedByOtherTag.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlTagsTest/VoidElementFollowedByOtherTag.stree.txt @@ -1,401 +1,387 @@ -Markup block - Gen - 564 - (0:0,0) - Markup span - Gen - [{LF] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:2 - SyntaxKind.Text;[{]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 6 - (3:1,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (3:1,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[area]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (9:1,6) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (9:1,6) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[other]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ var x = true;LF}LF{LF] - [16..38) - FullWidth: 22 - Slots: 1 - SyntaxKind.List - [ var x = true;LF}LF{LF] - [16..38) - FullWidth: 22 - Slots: 13 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[{]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 6 - (38:4,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (38:4,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[base]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (44:4,6) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (44:4,6) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[other]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ var x = true;LF}LF{LF] - [51..73) - FullWidth: 22 - Slots: 1 - SyntaxKind.List - [ var x = true;LF}LF{LF] - [51..73) - FullWidth: 22 - Slots: 13 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[{]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 4 - (73:7,0) - Markup span - Gen - [
    ] - SpanEditHandler;Accepts:Any - (73:7,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[br]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (77:7,4) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (77:7,4) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[other]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ var x = true;LF}LF{LF] - [84..106) - FullWidth: 22 - Slots: 1 - SyntaxKind.List - [ var x = true;LF}LF{LF] - [84..106) - FullWidth: 22 - Slots: 13 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[{]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 5 - (106:10,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (106:10,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[col]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (111:10,5) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (111:10,5) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[other]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ var x = true;LF}LF{LF] - [118..140) - FullWidth: 22 - Slots: 1 - SyntaxKind.List - [ var x = true;LF}LF{LF] - [118..140) - FullWidth: 22 - Slots: 13 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[{]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 9 - (140:13,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (140:13,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[command]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (149:13,9) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (149:13,9) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[other]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ var x = true;LF}LF{LF] - [156..178) - FullWidth: 22 - Slots: 1 - SyntaxKind.List - [ var x = true;LF}LF{LF] - [156..178) - FullWidth: 22 - Slots: 13 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[{]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 7 - (178:16,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (178:16,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[embed]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (185:16,7) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (185:16,7) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[other]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ var x = true;LF}LF{LF] - [192..214) - FullWidth: 22 - Slots: 1 - SyntaxKind.List - [ var x = true;LF}LF{LF] - [192..214) - FullWidth: 22 - Slots: 13 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[{]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 4 - (214:19,0) - Markup span - Gen - [
    ] - SpanEditHandler;Accepts:Any - (214:19,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[hr]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (218:19,4) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (218:19,4) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[other]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ var x = true;LF}LF{LF] - [225..247) - FullWidth: 22 - Slots: 1 - SyntaxKind.List - [ var x = true;LF}LF{LF] - [225..247) - FullWidth: 22 - Slots: 13 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[{]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 5 - (247:22,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (247:22,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[img]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (252:22,5) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (252:22,5) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[other]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ var x = true;LF}LF{LF] - [259..281) - FullWidth: 22 - Slots: 1 - SyntaxKind.List - [ var x = true;LF}LF{LF] - [259..281) - FullWidth: 22 - Slots: 13 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[{]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 7 - (281:25,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (281:25,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[input]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (288:25,7) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (288:25,7) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[other]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ var x = true;LF}LF{LF] - [295..317) - FullWidth: 22 - Slots: 1 - SyntaxKind.List - [ var x = true;LF}LF{LF] - [295..317) - FullWidth: 22 - Slots: 13 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[{]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 8 - (317:28,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (317:28,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[keygen]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (325:28,8) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (325:28,8) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[other]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ var x = true;LF}LF{LF] - [332..354) - FullWidth: 22 - Slots: 1 - SyntaxKind.List - [ var x = true;LF}LF{LF] - [332..354) - FullWidth: 22 - Slots: 13 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[{]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 6 - (354:31,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (354:31,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[link]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (360:31,6) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (360:31,6) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[other]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ var x = true;LF}LF{LF] - [367..389) - FullWidth: 22 - Slots: 1 - SyntaxKind.List - [ var x = true;LF}LF{LF] - [367..389) - FullWidth: 22 - Slots: 13 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[{]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 6 - (389:34,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (389:34,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[meta]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (395:34,6) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (395:34,6) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[other]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ var x = true;LF}LF{LF] - [402..424) - FullWidth: 22 - Slots: 1 - SyntaxKind.List - [ var x = true;LF}LF{LF] - [402..424) - FullWidth: 22 - Slots: 13 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[{]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 7 - (424:37,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (424:37,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[param]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (431:37,7) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (431:37,7) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[other]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ var x = true;LF}LF{LF] - [438..460) - FullWidth: 22 - Slots: 1 - SyntaxKind.List - [ var x = true;LF}LF{LF] - [438..460) - FullWidth: 22 - Slots: 13 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[{]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 8 - (460:40,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (460:40,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[source]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (468:40,8) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (468:40,8) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[other]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ var x = true;LF}LF{LF] - [475..497) - FullWidth: 22 - Slots: 1 - SyntaxKind.List - [ var x = true;LF}LF{LF] - [475..497) - FullWidth: 22 - Slots: 13 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[{]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 7 - (497:43,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (497:43,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[track]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (504:43,7) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (504:43,7) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[other]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ var x = true;LF}LF{LF] - [511..533) - FullWidth: 22 - Slots: 1 - SyntaxKind.List - [ var x = true;LF}LF{LF] - [511..533) - FullWidth: 22 - Slots: 13 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[{]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 5 - (533:46,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (533:46,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[wbr]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (538:46,5) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (538:46,5) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[other]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ var x = true;LF}LF] - SpanEditHandler;Accepts:Any - (545:46,12) - Tokens:11 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[x]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Text;[}]; - SyntaxKind.NewLine;[LF]; +RazorDocument - [0..564)::564 - [{LF var x = true;LF}LF{LF var x = true;LF}LF{LF
    var x = true;LF}LF{LF var x = true;LF}LF{LF var x = true;LF}LF{LF var x = true;LF}LF{LF
    var x = true;LF}LF{LF var x = true;LF}LF{LF var x = true;LF}LF{LF var x = true;LF}LF{LF var x = true;LF}LF{LF var x = true;LF}LF{LF var x = true;LF}LF{LF var x = true;LF}LF{LF var x = true;LF}LF{LF var x = true;LF}LF] + MarkupBlock - [0..564)::564 + MarkupTextLiteral - [0..3)::3 - [{LF] - Gen - SpanEditHandler;Accepts:Any + Text;[{]; + NewLine;[LF]; + MarkupTagBlock - [3..9)::6 - [] + MarkupTextLiteral - [3..9)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[area]; + CloseAngle;[>]; + MarkupTagBlock - [9..16)::7 - [] + MarkupTextLiteral - [9..16)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[other]; + CloseAngle;[>]; + MarkupTextLiteral - [16..38)::22 - [ var x = true;LF}LF{LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[var]; + Whitespace;[ ]; + Text;[x]; + Whitespace;[ ]; + Equals;[=]; + Whitespace;[ ]; + Text;[true;]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Text;[{]; + NewLine;[LF]; + MarkupTagBlock - [38..44)::6 - [] + MarkupTextLiteral - [38..44)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[base]; + CloseAngle;[>]; + MarkupTagBlock - [44..51)::7 - [] + MarkupTextLiteral - [44..51)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[other]; + CloseAngle;[>]; + MarkupTextLiteral - [51..73)::22 - [ var x = true;LF}LF{LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[var]; + Whitespace;[ ]; + Text;[x]; + Whitespace;[ ]; + Equals;[=]; + Whitespace;[ ]; + Text;[true;]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Text;[{]; + NewLine;[LF]; + MarkupTagBlock - [73..77)::4 - [
    ] + MarkupTextLiteral - [73..77)::4 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + CloseAngle;[>]; + MarkupTagBlock - [77..84)::7 - [] + MarkupTextLiteral - [77..84)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[other]; + CloseAngle;[>]; + MarkupTextLiteral - [84..106)::22 - [ var x = true;LF}LF{LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[var]; + Whitespace;[ ]; + Text;[x]; + Whitespace;[ ]; + Equals;[=]; + Whitespace;[ ]; + Text;[true;]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Text;[{]; + NewLine;[LF]; + MarkupTagBlock - [106..111)::5 - [] + MarkupTextLiteral - [106..111)::5 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[col]; + CloseAngle;[>]; + MarkupTagBlock - [111..118)::7 - [] + MarkupTextLiteral - [111..118)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[other]; + CloseAngle;[>]; + MarkupTextLiteral - [118..140)::22 - [ var x = true;LF}LF{LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[var]; + Whitespace;[ ]; + Text;[x]; + Whitespace;[ ]; + Equals;[=]; + Whitespace;[ ]; + Text;[true;]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Text;[{]; + NewLine;[LF]; + MarkupTagBlock - [140..149)::9 - [] + MarkupTextLiteral - [140..149)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[command]; + CloseAngle;[>]; + MarkupTagBlock - [149..156)::7 - [] + MarkupTextLiteral - [149..156)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[other]; + CloseAngle;[>]; + MarkupTextLiteral - [156..178)::22 - [ var x = true;LF}LF{LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[var]; + Whitespace;[ ]; + Text;[x]; + Whitespace;[ ]; + Equals;[=]; + Whitespace;[ ]; + Text;[true;]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Text;[{]; + NewLine;[LF]; + MarkupTagBlock - [178..185)::7 - [] + MarkupTextLiteral - [178..185)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[embed]; + CloseAngle;[>]; + MarkupTagBlock - [185..192)::7 - [] + MarkupTextLiteral - [185..192)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[other]; + CloseAngle;[>]; + MarkupTextLiteral - [192..214)::22 - [ var x = true;LF}LF{LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[var]; + Whitespace;[ ]; + Text;[x]; + Whitespace;[ ]; + Equals;[=]; + Whitespace;[ ]; + Text;[true;]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Text;[{]; + NewLine;[LF]; + MarkupTagBlock - [214..218)::4 - [
    ] + MarkupTextLiteral - [214..218)::4 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[hr]; + CloseAngle;[>]; + MarkupTagBlock - [218..225)::7 - [] + MarkupTextLiteral - [218..225)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[other]; + CloseAngle;[>]; + MarkupTextLiteral - [225..247)::22 - [ var x = true;LF}LF{LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[var]; + Whitespace;[ ]; + Text;[x]; + Whitespace;[ ]; + Equals;[=]; + Whitespace;[ ]; + Text;[true;]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Text;[{]; + NewLine;[LF]; + MarkupTagBlock - [247..252)::5 - [] + MarkupTextLiteral - [247..252)::5 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[img]; + CloseAngle;[>]; + MarkupTagBlock - [252..259)::7 - [] + MarkupTextLiteral - [252..259)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[other]; + CloseAngle;[>]; + MarkupTextLiteral - [259..281)::22 - [ var x = true;LF}LF{LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[var]; + Whitespace;[ ]; + Text;[x]; + Whitespace;[ ]; + Equals;[=]; + Whitespace;[ ]; + Text;[true;]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Text;[{]; + NewLine;[LF]; + MarkupTagBlock - [281..288)::7 - [] + MarkupTextLiteral - [281..288)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; + MarkupTagBlock - [288..295)::7 - [] + MarkupTextLiteral - [288..295)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[other]; + CloseAngle;[>]; + MarkupTextLiteral - [295..317)::22 - [ var x = true;LF}LF{LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[var]; + Whitespace;[ ]; + Text;[x]; + Whitespace;[ ]; + Equals;[=]; + Whitespace;[ ]; + Text;[true;]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Text;[{]; + NewLine;[LF]; + MarkupTagBlock - [317..325)::8 - [] + MarkupTextLiteral - [317..325)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[keygen]; + CloseAngle;[>]; + MarkupTagBlock - [325..332)::7 - [] + MarkupTextLiteral - [325..332)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[other]; + CloseAngle;[>]; + MarkupTextLiteral - [332..354)::22 - [ var x = true;LF}LF{LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[var]; + Whitespace;[ ]; + Text;[x]; + Whitespace;[ ]; + Equals;[=]; + Whitespace;[ ]; + Text;[true;]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Text;[{]; + NewLine;[LF]; + MarkupTagBlock - [354..360)::6 - [] + MarkupTextLiteral - [354..360)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[link]; + CloseAngle;[>]; + MarkupTagBlock - [360..367)::7 - [] + MarkupTextLiteral - [360..367)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[other]; + CloseAngle;[>]; + MarkupTextLiteral - [367..389)::22 - [ var x = true;LF}LF{LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[var]; + Whitespace;[ ]; + Text;[x]; + Whitespace;[ ]; + Equals;[=]; + Whitespace;[ ]; + Text;[true;]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Text;[{]; + NewLine;[LF]; + MarkupTagBlock - [389..395)::6 - [] + MarkupTextLiteral - [389..395)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[meta]; + CloseAngle;[>]; + MarkupTagBlock - [395..402)::7 - [] + MarkupTextLiteral - [395..402)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[other]; + CloseAngle;[>]; + MarkupTextLiteral - [402..424)::22 - [ var x = true;LF}LF{LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[var]; + Whitespace;[ ]; + Text;[x]; + Whitespace;[ ]; + Equals;[=]; + Whitespace;[ ]; + Text;[true;]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Text;[{]; + NewLine;[LF]; + MarkupTagBlock - [424..431)::7 - [] + MarkupTextLiteral - [424..431)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[param]; + CloseAngle;[>]; + MarkupTagBlock - [431..438)::7 - [] + MarkupTextLiteral - [431..438)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[other]; + CloseAngle;[>]; + MarkupTextLiteral - [438..460)::22 - [ var x = true;LF}LF{LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[var]; + Whitespace;[ ]; + Text;[x]; + Whitespace;[ ]; + Equals;[=]; + Whitespace;[ ]; + Text;[true;]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Text;[{]; + NewLine;[LF]; + MarkupTagBlock - [460..468)::8 - [] + MarkupTextLiteral - [460..468)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[source]; + CloseAngle;[>]; + MarkupTagBlock - [468..475)::7 - [] + MarkupTextLiteral - [468..475)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[other]; + CloseAngle;[>]; + MarkupTextLiteral - [475..497)::22 - [ var x = true;LF}LF{LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[var]; + Whitespace;[ ]; + Text;[x]; + Whitespace;[ ]; + Equals;[=]; + Whitespace;[ ]; + Text;[true;]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Text;[{]; + NewLine;[LF]; + MarkupTagBlock - [497..504)::7 - [] + MarkupTextLiteral - [497..504)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[track]; + CloseAngle;[>]; + MarkupTagBlock - [504..511)::7 - [] + MarkupTextLiteral - [504..511)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[other]; + CloseAngle;[>]; + MarkupTextLiteral - [511..533)::22 - [ var x = true;LF}LF{LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[var]; + Whitespace;[ ]; + Text;[x]; + Whitespace;[ ]; + Equals;[=]; + Whitespace;[ ]; + Text;[true;]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; + Text;[{]; + NewLine;[LF]; + MarkupTagBlock - [533..538)::5 - [] + MarkupTextLiteral - [533..538)::5 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[wbr]; + CloseAngle;[>]; + MarkupTagBlock - [538..545)::7 - [] + MarkupTextLiteral - [538..545)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[other]; + CloseAngle;[>]; + MarkupTextLiteral - [545..564)::19 - [ var x = true;LF}LF] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[var]; + Whitespace;[ ]; + Text;[x]; + Whitespace;[ ]; + Equals;[=]; + Whitespace;[ ]; + Text;[true;]; + NewLine;[LF]; + Text;[}]; + NewLine;[LF]; From fb8ea5d23abb67a44661aa8f03b69b958c06c580 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Wed, 26 Sep 2018 23:07:39 -0700 Subject: [PATCH 12/23] More bug fix --- .../Legacy/CSharpParser.cs | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs index d653b6e3d..3bce98f95 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs @@ -428,8 +428,7 @@ private void ParseCodeBlock(in SyntaxListBuilder builder, Block RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF( new SourceSpan(block.Start, contentLength: 1 /* { OR } */), block.Name, "}", "{")); } - - if (acceptTerminatingBrace) + else if (acceptTerminatingBrace) { Assert(SyntaxKind.RightBrace); SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; @@ -1719,13 +1718,25 @@ private void ParseUsingKeyword(SyntaxListBuilder builder, CShar Assert(CSharpKeyword.Using); var topLevel = transition != null; var block = new Block(CurrentToken, CurrentStart); + var usingToken = EatCurrentToken(); + var whitespaceOrComments = ReadWhile(IsSpacingToken(includeNewLines: false, includeComments: true)); + var atLeftParen = At(SyntaxKind.LeftParenthesis); + var atIdentifier = At(SyntaxKind.Identifier); + var atStatic = At(CSharpKeyword.Static); + var insertMarkerIfNecessary = true; + + // Put the read tokens back and let them be handled later. + PutCurrentBack(); + PutBack(whitespaceOrComments); + PutBack(usingToken); + EnsureCurrent(); - if (At(SyntaxKind.LeftParenthesis)) + if (atLeftParen) { // using ( ==> Using Statement ParseUsingStatement(builder, transition, block); } - else if (At(SyntaxKind.Identifier) || At(CSharpKeyword.Static)) + else if (atIdentifier || atStatic) { // using Identifier ==> Using Declaration if (!topLevel) @@ -1744,6 +1755,9 @@ private void ParseUsingKeyword(SyntaxListBuilder builder, CShar else { ParseUsingDeclaration(builder, transition); + + // Using declaration is parsed as a directive which is already built. + insertMarkerIfNecessary = false; } } else @@ -1754,7 +1768,7 @@ private void ParseUsingKeyword(SyntaxListBuilder builder, CShar if (topLevel) { - CompleteBlock(); + CompleteBlock(insertMarkerIfNecessary); } } @@ -1790,7 +1804,6 @@ private void ParseUsingDeclaration(in SyntaxListBuilder builder Assert(CSharpKeyword.Using); AcceptTokenAndMoveNext(); AcceptTokenWhile(IsSpacingToken(includeNewLines: false, includeComments: true)); - var keywordTokens = OutputTokensAsStatementLiteral(); var start = CurrentStart; if (At(SyntaxKind.Identifier)) { @@ -1834,8 +1847,9 @@ private void ParseUsingDeclaration(in SyntaxListBuilder builder OptionalToken(SyntaxKind.Semicolon); } - directiveBuilder.Add(OutputTokensAsStatementLiteral()); - var directiveBody = SyntaxFactory.RazorDirectiveBody(keywordTokens, SyntaxFactory.CSharpCodeBlock(directiveBuilder.ToList())); + Debug.Assert(directiveBuilder.Count == 0, "We should not have built any blocks so far."); + var keywordTokens = OutputTokensAsStatementLiteral(); + var directiveBody = SyntaxFactory.RazorDirectiveBody(keywordTokens, null); builder.Add(SyntaxFactory.RazorDirective(transition, directiveBody)); } } From 296b82d73be1d1fcd0a712542ca9ebfca9cedfef Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Wed, 26 Sep 2018 23:08:21 -0700 Subject: [PATCH 13/23] New baselines for CSharpStatementTest --- .../Legacy/CSharpStatementTest.cs | 5 + .../CSharpStatementTest/CatchClause.stree.txt | 92 +++++++-------- .../CSharpStatementTest/DoStatement.stree.txt | 40 +++---- .../CSharpStatementTest/ElseClause.stree.txt | 56 ++++----- .../ElseIfClause.stree.txt | 100 ++++++++-------- ...rror_TryCatchWhen_InCompleteBody.stree.txt | 54 ++++----- ...TryCatchWhen_InCompleteCondition.stree.txt | 46 ++++---- ...ter_IncompleteTryCatchNoBodyWhen.stree.txt | 60 +++++----- ...ionFilter_IncompleteTryCatchWhen.stree.txt | 42 +++---- ...r_IncompleteTryCatchWhenNoBodies.stree.txt | 50 ++++---- ...xceptionFilter_IncompleteTryWhen.stree.txt | 28 ++--- .../ExceptionFilter_MultiLine.stree.txt | 108 +++++++++--------- ...ceptionFilter_NestedTryCatchWhen.stree.txt | 79 +++++++------ ...WhenCatchWhenComplete_SingleLine.stree.txt | 108 +++++++++--------- ..._TryCatchWhenComplete_SingleLine.stree.txt | 68 +++++------ ...chWhenFinallyComplete_SingleLine.stree.txt | 90 +++++++-------- .../FinallyClause.stree.txt | 50 ++++---- .../ForEachStatement.stree.txt | 46 ++++---- .../ForStatement.stree.txt | 68 +++++------ .../CSharpStatementTest/IfStatement.stree.txt | 34 +++--- .../LockStatement.stree.txt | 34 +++--- ...ywordTreatedAsImplicitExpression.stree.txt | 13 ++- .../StaticUsing_Complete_Spaced.stree.txt | 28 ++--- .../StaticUsing_GlobalPrefix.stree.txt | 28 ++--- .../StaticUsing_MultipleIdentifiers.stree.txt | 24 ++-- .../StaticUsing_NoUsing.stree.txt | 16 +-- .../StaticUsing_SingleIdentifier.stree.txt | 20 ++-- .../SwitchStatement.stree.txt | 34 +++--- .../TryStatement.stree.txt | 28 ++--- .../UsingNamespaceImport.stree.txt | 28 ++--- .../UsingStatement.stree.txt | 58 +++++----- .../UsingTypeAlias.stree.txt | 48 ++++---- .../WhileStatement.stree.txt | 34 +++--- 33 files changed, 821 insertions(+), 796 deletions(-) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpStatementTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpStatementTest.cs index ea167f493..4add25ee5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpStatementTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpStatementTest.cs @@ -16,6 +16,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy public class CSharpStatementTest : CsHtmlCodeParserTestBase { + public CSharpStatementTest() + { + UseNewSyntaxTree = true; + } + [Fact] public void ForStatement() { diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/CatchClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/CatchClause.stree.txt index bd9e33585..0083bef98 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/CatchClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/CatchClause.stree.txt @@ -1,46 +1,46 @@ -Statement block - Gen - 94 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [try { foo(); } catch(IOException ioex) { handleIO(); } catch(Exception ex) { handleOther(); }] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:42 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[IOException]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[ioex]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[handleIO]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Exception]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[ex]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[handleOther]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..94)::94 - [@try { foo(); } catch(IOException ioex) { handleIO(); } catch(Exception ex) { handleOther(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..94)::93 - [try { foo(); } catch(IOException ioex) { handleIO(); } catch(Exception ex) { handleOther(); }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[IOException]; + Whitespace;[ ]; + Identifier;[ioex]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[handleIO]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Exception]; + Whitespace;[ ]; + Identifier;[ex]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[handleOther]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/DoStatement.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/DoStatement.stree.txt index 864f9a5c1..b0cc1c3e5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/DoStatement.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/DoStatement.stree.txt @@ -1,20 +1,20 @@ -Statement block - Gen - 27 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [do { foo(); } while(true);] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:16 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; +CSharpCodeBlock - [0..27)::27 - [@do { foo(); } while(true);] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..27)::26 - [do { foo(); } while(true);] - Gen - SpanEditHandler;Accepts:None + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Semicolon;[;]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ElseClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ElseClause.stree.txt index 9e2f4273e..e59ccec39 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ElseClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ElseClause.stree.txt @@ -1,28 +1,28 @@ -Statement block - Gen - 36 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [if(true) { foo(); } else { foo(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:24 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..36)::36 - [@if(true) { foo(); } else { foo(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..36)::35 - [if(true) { foo(); } else { foo(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ElseIfClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ElseIfClause.stree.txt index 736d35fc5..ffbd6b3e2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ElseIfClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ElseIfClause.stree.txt @@ -1,50 +1,50 @@ -Statement block - Gen - 73 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [if(true) { foo(); } else if(false) { foo(); } else if(!false) { foo(); }] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:46 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[false]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Not;[!]; - SyntaxKind.Keyword;[false]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..73)::73 - [@if(true) { foo(); } else if(false) { foo(); } else if(!false) { foo(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..73)::72 - [if(true) { foo(); } else if(false) { foo(); } else if(!false) { foo(); }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[false]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + LeftParenthesis;[(]; + Not;[!]; + Keyword;[false]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteBody.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteBody.stree.txt index 09016c9a8..0d29de909 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteBody.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteBody.stree.txt @@ -1,27 +1,27 @@ -Statement block - Gen - 53 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [try { someMethod(); } catch(Exception) when (true) {] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:23 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[someMethod]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Exception]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[when]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; +CSharpCodeBlock - [0..53)::53 - [@try { someMethod(); } catch(Exception) when (true) {] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..53)::52 - [try { someMethod(); } catch(Exception) when (true) {] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[someMethod]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Exception]; + RightParenthesis;[)]; + Whitespace;[ ]; + Keyword;[when]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteCondition.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteCondition.stree.txt index 25415c2f9..04f717693 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteCondition.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteCondition.stree.txt @@ -1,23 +1,23 @@ -Statement block - Gen - 46 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [try { someMethod(); } catch(Exception) when (] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:19 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[someMethod]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Exception]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[when]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; +CSharpCodeBlock - [0..46)::46 - [@try { someMethod(); } catch(Exception) when (] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..46)::45 - [try { someMethod(); } catch(Exception) when (] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[someMethod]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Exception]; + RightParenthesis;[)]; + Whitespace;[ ]; + Keyword;[when]; + Whitespace;[ ]; + LeftParenthesis;[(]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchNoBodyWhen.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchNoBodyWhen.stree.txt index 2b4fbb308..1ea6c97bc 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchNoBodyWhen.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchNoBodyWhen.stree.txt @@ -1,30 +1,30 @@ -Statement block - Gen - 65 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [try { someMethod(); } catch(Exception) when { anotherMethod(); }] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:26 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[someMethod]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Exception]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[when]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[anotherMethod]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..65)::65 - [@try { someMethod(); } catch(Exception) when { anotherMethod(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..65)::64 - [try { someMethod(); } catch(Exception) when { anotherMethod(); }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[someMethod]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Exception]; + RightParenthesis;[)]; + Whitespace;[ ]; + Keyword;[when]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[anotherMethod]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchWhen.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchWhen.stree.txt index 4bcac7751..4dbd4c9b4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchWhen.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchWhen.stree.txt @@ -1,21 +1,21 @@ -Statement block - Gen - 44 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [try { someMethod(); } catch(Exception) when] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:17 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[someMethod]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Exception]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[when]; +CSharpCodeBlock - [0..44)::44 - [@try { someMethod(); } catch(Exception) when] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..44)::43 - [try { someMethod(); } catch(Exception) when] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[someMethod]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Exception]; + RightParenthesis;[)]; + Whitespace;[ ]; + Keyword;[when]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchWhenNoBodies.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchWhenNoBodies.stree.txt index 807d4bf6b..028b86786 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchWhenNoBodies.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchWhenNoBodies.stree.txt @@ -1,25 +1,25 @@ -Statement block - Gen - 51 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [try { someMethod(); } catch(Exception) when (true)] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:21 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[someMethod]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Exception]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[when]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; +CSharpCodeBlock - [0..51)::51 - [@try { someMethod(); } catch(Exception) when (true)] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..51)::50 - [try { someMethod(); } catch(Exception) when (true)] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[someMethod]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Exception]; + RightParenthesis;[)]; + Whitespace;[ ]; + Keyword;[when]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryWhen.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryWhen.stree.txt index de0038c43..a4716915f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryWhen.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryWhen.stree.txt @@ -1,14 +1,14 @@ -Statement block - Gen - 22 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [try { someMethod(); }] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:10 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[someMethod]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..22)::22 - [@try { someMethod(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..22)::21 - [try { someMethod(); }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[someMethod]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_MultiLine.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_MultiLine.stree.txt index 89b302ea0..47032c337 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_MultiLine.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_MultiLine.stree.txt @@ -1,54 +1,54 @@ -Statement block - Gen - 103 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [tryLF{LFA();LF}LFcatch(Exception) when (true)LF{LFB();LF}LFcatch(IOException) when (false)LF{LFC();LF}] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:50 - SyntaxKind.Keyword;[try]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Identifier;[A]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Exception]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[when]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Identifier;[B]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[IOException]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[when]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[false]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Identifier;[C]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..103)::103 - [@tryLF{LFA();LF}LFcatch(Exception) when (true)LF{LFB();LF}LFcatch(IOException) when (false)LF{LFC();LF}] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..103)::102 - [tryLF{LFA();LF}LFcatch(Exception) when (true)LF{LFB();LF}LFcatch(IOException) when (false)LF{LFC();LF}] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + NewLine;[LF]; + LeftBrace;[{]; + NewLine;[LF]; + Identifier;[A]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; + NewLine;[LF]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Exception]; + RightParenthesis;[)]; + Whitespace;[ ]; + Keyword;[when]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + NewLine;[LF]; + LeftBrace;[{]; + NewLine;[LF]; + Identifier;[B]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; + NewLine;[LF]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[IOException]; + RightParenthesis;[)]; + Whitespace;[ ]; + Keyword;[when]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Keyword;[false]; + RightParenthesis;[)]; + NewLine;[LF]; + LeftBrace;[{]; + NewLine;[LF]; + Identifier;[C]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_NestedTryCatchWhen.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_NestedTryCatchWhen.stree.txt index f6d20f248..0f8443577 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_NestedTryCatchWhen.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_NestedTryCatchWhen.stree.txt @@ -1,38 +1,41 @@ -Statement block - Gen - 69 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [try { someMethod(); } catch(Exception) when (true) { handleIO(); }] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (2:0,2) - Tokens:30 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[someMethod]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Exception]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[when]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[handleIO]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (68:0,68) - Tokens:1 - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..69)::69 - [@{try { someMethod(); } catch(Exception) when (true) { handleIO(); }}] + CSharpStatement - [0..69)::69 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..69)::68 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..68)::66 + CSharpStatementLiteral - [2..68)::66 - [try { someMethod(); } catch(Exception) when (true) { handleIO(); }] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[someMethod]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Exception]; + RightParenthesis;[)]; + Whitespace;[ ]; + Keyword;[when]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[handleIO]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + RazorMetaCode - [68..69)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenCatchWhenComplete_SingleLine.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenCatchWhenComplete_SingleLine.stree.txt index 5f93680e4..05378ee5c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenCatchWhenComplete_SingleLine.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenCatchWhenComplete_SingleLine.stree.txt @@ -1,54 +1,54 @@ -Statement block - Gen - 92 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [try { A(); } catch(Exception) when (true) { B(); } catch(IOException) when (false) { C(); }] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:50 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[A]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Exception]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[when]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[B]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[IOException]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[when]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[false]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[C]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..92)::92 - [@try { A(); } catch(Exception) when (true) { B(); } catch(IOException) when (false) { C(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..92)::91 - [try { A(); } catch(Exception) when (true) { B(); } catch(IOException) when (false) { C(); }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[A]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Exception]; + RightParenthesis;[)]; + Whitespace;[ ]; + Keyword;[when]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[B]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[IOException]; + RightParenthesis;[)]; + Whitespace;[ ]; + Keyword;[when]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Keyword;[false]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[C]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenComplete_SingleLine.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenComplete_SingleLine.stree.txt index c07143387..d17ac8b9d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenComplete_SingleLine.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenComplete_SingleLine.stree.txt @@ -1,34 +1,34 @@ -Statement block - Gen - 67 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [try { someMethod(); } catch(Exception) when (true) { handleIO(); }] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:30 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[someMethod]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Exception]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[when]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[handleIO]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..67)::67 - [@try { someMethod(); } catch(Exception) when (true) { handleIO(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..67)::66 - [try { someMethod(); } catch(Exception) when (true) { handleIO(); }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[someMethod]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Exception]; + RightParenthesis;[)]; + Whitespace;[ ]; + Keyword;[when]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[handleIO]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenFinallyComplete_SingleLine.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenFinallyComplete_SingleLine.stree.txt index 0e2806809..7d1cb95bb 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenFinallyComplete_SingleLine.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenFinallyComplete_SingleLine.stree.txt @@ -1,45 +1,45 @@ -Statement block - Gen - 68 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [try { A(); } catch(Exception) when (true) { B(); } finally { C(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:41 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[A]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Exception]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[when]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[B]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[finally]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[C]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..68)::68 - [@try { A(); } catch(Exception) when (true) { B(); } finally { C(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..68)::67 - [try { A(); } catch(Exception) when (true) { B(); } finally { C(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[A]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Exception]; + RightParenthesis;[)]; + Whitespace;[ ]; + Keyword;[when]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[B]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[finally]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[C]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/FinallyClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/FinallyClause.stree.txt index 82427e556..dc9615898 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/FinallyClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/FinallyClause.stree.txt @@ -1,25 +1,25 @@ -Statement block - Gen - 38 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [try { foo(); } finally { Dispose(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:21 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[finally]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Dispose]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..38)::38 - [@try { foo(); } finally { Dispose(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..38)::37 - [try { foo(); } finally { Dispose(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[finally]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Dispose]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ForEachStatement.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ForEachStatement.stree.txt index df4a2559f..ec6233e29 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ForEachStatement.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ForEachStatement.stree.txt @@ -1,23 +1,23 @@ -Statement block - Gen - 35 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [foreach(var foo in bar) { foo(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:19 - SyntaxKind.Keyword;[foreach]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[in]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..35)::35 - [@foreach(var foo in bar) { foo(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..35)::34 - [foreach(var foo in bar) { foo(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[foreach]; + LeftParenthesis;[(]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Keyword;[in]; + Whitespace;[ ]; + Identifier;[bar]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ForStatement.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ForStatement.stree.txt index 7453adeb1..fdf8533db 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ForStatement.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ForStatement.stree.txt @@ -1,34 +1,34 @@ -Statement block - Gen - 43 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [for(int i = 0; i++; i < length) { foo(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:30 - SyntaxKind.Keyword;[for]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Increment;[++]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[length]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..43)::43 - [@for(int i = 0; i++; i < length) { foo(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..43)::42 - [for(int i = 0; i++; i < length) { foo(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[for]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Increment;[++]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + Identifier;[length]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/IfStatement.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/IfStatement.stree.txt index 6d9974589..1e5dc0955 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/IfStatement.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/IfStatement.stree.txt @@ -1,17 +1,17 @@ -Statement block - Gen - 20 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [if(true) { foo(); }] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:13 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..20)::20 - [@if(true) { foo(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..20)::19 - [if(true) { foo(); }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/LockStatement.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/LockStatement.stree.txt index eddbbb0fc..97d8f9ff4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/LockStatement.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/LockStatement.stree.txt @@ -1,17 +1,17 @@ -Statement block - Gen - 21 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [lock(baz) { foo(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:13 - SyntaxKind.Keyword;[lock]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..21)::21 - [@lock(baz) { foo(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..21)::20 - [lock(baz) { foo(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[lock]; + LeftParenthesis;[(]; + Identifier;[baz]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/NonBlockKeywordTreatedAsImplicitExpression.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/NonBlockKeywordTreatedAsImplicitExpression.stree.txt index 7b91a6e36..96e3d8c85 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/NonBlockKeywordTreatedAsImplicitExpression.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/NonBlockKeywordTreatedAsImplicitExpression.stree.txt @@ -1,5 +1,8 @@ -Expression block - Gen - 3 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [is] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (1:0,1) - Tokens:1 - SyntaxKind.Keyword;[is]; +CSharpCodeBlock - [0..3)::3 - [@is] + CSharpImplicitExpression - [0..3)::3 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [1..3)::2 + CSharpCodeBlock - [1..3)::2 + CSharpExpressionLiteral - [1..3)::2 - [is] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Keyword;[is]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_Complete_Spaced.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_Complete_Spaced.stree.txt index 659aa732f..dd8c90cb0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_Complete_Spaced.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_Complete_Spaced.stree.txt @@ -1,13 +1,15 @@ -Directive block - Gen - 40 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [using static global::System.Console] - SpanEditHandler;Accepts:AnyExceptNewline - (1:0,1) - Tokens:9 - SyntaxKind.Keyword;[using]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[static]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[global]; - SyntaxKind.DoubleColon;[::]; - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Console]; +CSharpCodeBlock - [0..40)::40 - [@using static global::System.Console] + RazorDirective - [0..40)::40 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..40)::39 + CSharpStatementLiteral - [1..40)::39 - [using static global::System.Console] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Keyword;[using]; + Whitespace;[ ]; + Keyword;[static]; + Whitespace;[ ]; + Identifier;[global]; + DoubleColon;[::]; + Identifier;[System]; + Dot;[.]; + Identifier;[Console]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_GlobalPrefix.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_GlobalPrefix.stree.txt index ca4687394..2fd4ab9ee 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_GlobalPrefix.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_GlobalPrefix.stree.txt @@ -1,13 +1,15 @@ -Directive block - Gen - 36 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [using static global::System.Console] - SpanEditHandler;Accepts:AnyExceptNewline - (1:0,1) - Tokens:9 - SyntaxKind.Keyword;[using]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[static]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[global]; - SyntaxKind.DoubleColon;[::]; - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Console]; +CSharpCodeBlock - [0..36)::36 - [@using static global::System.Console] + RazorDirective - [0..36)::36 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..36)::35 + CSharpStatementLiteral - [1..36)::35 - [using static global::System.Console] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Keyword;[using]; + Whitespace;[ ]; + Keyword;[static]; + Whitespace;[ ]; + Identifier;[global]; + DoubleColon;[::]; + Identifier;[System]; + Dot;[.]; + Identifier;[Console]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_MultipleIdentifiers.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_MultipleIdentifiers.stree.txt index fb3e4bc32..a93c538cd 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_MultipleIdentifiers.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_MultipleIdentifiers.stree.txt @@ -1,11 +1,13 @@ -Directive block - Gen - 28 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [using static System.Console] - SpanEditHandler;Accepts:AnyExceptNewline - (1:0,1) - Tokens:7 - SyntaxKind.Keyword;[using]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[static]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Console]; +CSharpCodeBlock - [0..28)::28 - [@using static System.Console] + RazorDirective - [0..28)::28 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..28)::27 + CSharpStatementLiteral - [1..28)::27 - [using static System.Console] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Keyword;[using]; + Whitespace;[ ]; + Keyword;[static]; + Whitespace;[ ]; + Identifier;[System]; + Dot;[.]; + Identifier;[Console]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_NoUsing.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_NoUsing.stree.txt index 8c7fe292a..fcca4e568 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_NoUsing.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_NoUsing.stree.txt @@ -1,7 +1,9 @@ -Directive block - Gen - 13 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [using static] - SpanEditHandler;Accepts:AnyExceptNewline - (1:0,1) - Tokens:3 - SyntaxKind.Keyword;[using]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[static]; +CSharpCodeBlock - [0..13)::13 - [@using static] + RazorDirective - [0..13)::13 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..13)::12 + CSharpStatementLiteral - [1..13)::12 - [using static] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Keyword;[using]; + Whitespace;[ ]; + Keyword;[static]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_SingleIdentifier.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_SingleIdentifier.stree.txt index d618dfba5..2d2bedf17 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_SingleIdentifier.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_SingleIdentifier.stree.txt @@ -1,9 +1,11 @@ -Directive block - Gen - 20 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [using static System] - SpanEditHandler;Accepts:AnyExceptNewline - (1:0,1) - Tokens:5 - SyntaxKind.Keyword;[using]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[static]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[System]; +CSharpCodeBlock - [0..20)::20 - [@using static System] + RazorDirective - [0..20)::20 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..20)::19 + CSharpStatementLiteral - [1..20)::19 - [using static System] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Keyword;[using]; + Whitespace;[ ]; + Keyword;[static]; + Whitespace;[ ]; + Identifier;[System]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/SwitchStatement.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/SwitchStatement.stree.txt index 74740937b..6ef926a78 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/SwitchStatement.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/SwitchStatement.stree.txt @@ -1,17 +1,17 @@ -Statement block - Gen - 23 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [switch(foo) { foo(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:13 - SyntaxKind.Keyword;[switch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..23)::23 - [@switch(foo) { foo(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..23)::22 - [switch(foo) { foo(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[switch]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/TryStatement.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/TryStatement.stree.txt index 96b61f4e1..30c107960 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/TryStatement.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/TryStatement.stree.txt @@ -1,14 +1,14 @@ -Statement block - Gen - 15 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [try { foo(); }] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:10 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..15)::15 - [@try { foo(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..15)::14 - [try { foo(); }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingNamespaceImport.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingNamespaceImport.stree.txt index a99f6b2bc..db43a5f0e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingNamespaceImport.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingNamespaceImport.stree.txt @@ -1,13 +1,15 @@ -Directive block - Gen - 41 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [using System.Text.Encoding.ASCIIEncoding] - SpanEditHandler;Accepts:AnyExceptNewline - (1:0,1) - Tokens:9 - SyntaxKind.Keyword;[using]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Text]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Encoding]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[ASCIIEncoding]; +CSharpCodeBlock - [0..41)::41 - [@using System.Text.Encoding.ASCIIEncoding] + RazorDirective - [0..41)::41 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..41)::40 + CSharpStatementLiteral - [1..41)::40 - [using System.Text.Encoding.ASCIIEncoding] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Keyword;[using]; + Whitespace;[ ]; + Identifier;[System]; + Dot;[.]; + Identifier;[Text]; + Dot;[.]; + Identifier;[Encoding]; + Dot;[.]; + Identifier;[ASCIIEncoding]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingStatement.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingStatement.stree.txt index 652d8c2a3..2dcb752ea 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingStatement.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingStatement.stree.txt @@ -1,29 +1,29 @@ -Statement block - Gen - 42 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [using(var foo = new Foo()) { foo.Bar(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:25 - SyntaxKind.Keyword;[using]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..42)::42 - [@using(var foo = new Foo()) { foo.Bar(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..42)::41 - [using(var foo = new Foo()) { foo.Bar(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[using]; + LeftParenthesis;[(]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + Dot;[.]; + Identifier;[Bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingTypeAlias.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingTypeAlias.stree.txt index 3940d00b6..c85feaa36 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingTypeAlias.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingTypeAlias.stree.txt @@ -1,23 +1,25 @@ -Directive block - Gen - 79 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen;> - [using StringDictionary = System.Collections.Generic.Dictionary] - SpanEditHandler;Accepts:AnyExceptNewline - (1:0,1) - Tokens:19 - SyntaxKind.Keyword;[using]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[StringDictionary]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Collections]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Generic]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Dictionary]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Keyword;[string]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[string]; - SyntaxKind.GreaterThan;[>]; +CSharpCodeBlock - [0..79)::79 - [@using StringDictionary = System.Collections.Generic.Dictionary] + RazorDirective - [0..79)::79 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..79)::78 + CSharpStatementLiteral - [1..79)::78 - [using StringDictionary = System.Collections.Generic.Dictionary] - Gen;> - SpanEditHandler;Accepts:AnyExceptNewline + Keyword;[using]; + Whitespace;[ ]; + Identifier;[StringDictionary]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[System]; + Dot;[.]; + Identifier;[Collections]; + Dot;[.]; + Identifier;[Generic]; + Dot;[.]; + Identifier;[Dictionary]; + LessThan;[<]; + Keyword;[string]; + Comma;[,]; + Whitespace;[ ]; + Keyword;[string]; + GreaterThan;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/WhileStatement.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/WhileStatement.stree.txt index 9c3cab815..b80423d15 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/WhileStatement.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/WhileStatement.stree.txt @@ -1,17 +1,17 @@ -Statement block - Gen - 23 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [while(true) { foo(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:13 - SyntaxKind.Keyword;[while]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..23)::23 - [@while(true) { foo(); }] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..23)::22 - [while(true) { foo(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[while]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; From 27b91fd5e22a1216b94acac82ac3d38bf8110b39 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Thu, 27 Sep 2018 12:06:33 -0700 Subject: [PATCH 14/23] Buggy fixey --- .../ClassifiedSpanVisitor.cs | 36 +++++++++++++++---- .../Legacy/CSharpParser.cs | 8 ++--- .../Legacy/HtmlParser.cs | 2 +- 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs b/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs index 23e1388de..2375fecde 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs @@ -30,6 +30,27 @@ public override SyntaxNode VisitRazorCommentBlock(RazorCommentBlockSyntax node) return WriteBlock(node, BlockKindInternal.Comment, base.VisitRazorCommentBlock); } + public override SyntaxNode VisitToken(SyntaxToken token) + { + if (token.Parent is RazorCommentBlockSyntax) + { + if (token.Kind == SyntaxKind.RazorCommentTransition) + { + WriteSpan(token, SpanKindInternal.Transition, AcceptedCharactersInternal.None); + } + else if (token.Kind == SyntaxKind.RazorCommentStar) + { + WriteSpan(token, SpanKindInternal.MetaCode, AcceptedCharactersInternal.None); + } + else if (token.Kind == SyntaxKind.RazorCommentLiteral) + { + WriteSpan(token, SpanKindInternal.Comment, AcceptedCharactersInternal.Any); + } + } + + return base.VisitToken(token); + } + public override SyntaxNode VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) { if (node.Parent is CSharpStatementBodySyntax || @@ -194,7 +215,7 @@ private SyntaxNode WriteBlock(TNode node, BlockKindInternal kind, Func builder, CShar var atLeftParen = At(SyntaxKind.LeftParenthesis); var atIdentifier = At(SyntaxKind.Identifier); var atStatic = At(CSharpKeyword.Static); - var insertMarkerIfNecessary = true; // Put the read tokens back and let them be handled later. PutCurrentBack(); @@ -1755,9 +1754,7 @@ private void ParseUsingKeyword(SyntaxListBuilder builder, CShar else { ParseUsingDeclaration(builder, transition); - - // Using declaration is parsed as a directive which is already built. - insertMarkerIfNecessary = false; + return; } } else @@ -1768,7 +1765,7 @@ private void ParseUsingKeyword(SyntaxListBuilder builder, CShar if (topLevel) { - CompleteBlock(insertMarkerIfNecessary); + CompleteBlock(); } } @@ -1847,6 +1844,7 @@ private void ParseUsingDeclaration(in SyntaxListBuilder builder OptionalToken(SyntaxKind.Semicolon); } + CompleteBlock(); Debug.Assert(directiveBuilder.Count == 0, "We should not have built any blocks so far."); var keywordTokens = OutputTokensAsStatementLiteral(); var directiveBody = SyntaxFactory.RazorDirectiveBody(keywordTokens, null); diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlParser.cs index 5006595c2..238f3363a 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlParser.cs @@ -1532,7 +1532,7 @@ private void EndTagBlock( if (!complete) { - AddMarkerTokenIfNecessary(); + AcceptMarkerTokenIfNecessary(); } builder.Add(OutputTokensAsMarkupLiteral()); From 7332a401e6bc253b129275f090b5775247ce9b55 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Thu, 27 Sep 2018 12:07:37 -0700 Subject: [PATCH 15/23] New baselines for CSharpBlockTest --- .../Legacy/CSharpBlockTest.cs | 5 + .../AcceptsElseIfWithNoCondition.stree.txt | 122 ++--- ...icitExpressionWhenEmbeddedInCode.stree.txt | 41 +- .../AllowsEmptyBlockStatement.stree.txt | 22 +- ...ringLiteralCharactersAndBrackets.stree.txt | 40 +- ...rsAndBracketsInsideBlockComments.stree.txt | 44 +- .../CapturesNewlineAfterUsing.stree.txt | 16 +- .../CorrectlyParsesDoWhileBlock.stree.txt | 54 +- ...rsesDoWhileBlockMissingSemicolon.stree.txt | 52 +- ...eBlockMissingWhileClauseEntirely.stree.txt | 34 +- ...oWhileBlockMissingWhileCondition.stree.txt | 38 +- ...ssingWhileConditionWithSemicolon.stree.txt | 40 +- ...rectlyParsesMarkupInDoWhileBlock.stree.txt | 100 ++-- ...oesNotAllowMultipleFinallyBlocks.stree.txt | 76 +-- ...terNotFollowedByOpenAngleOrColon.stree.txt | 36 +- ...oesntCaptureWhitespaceAfterUsing.stree.txt | 14 +- ...IfNamespaceAliasMissingSemicolon.stree.txt | 30 +- ...fNamespaceImportMissingSemicolon.stree.txt | 22 +- ...dCodeBlockWithAtDoesntCauseError.stree.txt | 52 +- .../NestedCodeBlockWithCSharpAt.stree.txt | 87 ++-- ...deBlockWithMarkupSetsDotAsMarkup.stree.txt | 105 ++-- .../ParsersCanNestRecursively.stree.txt | 373 +++++++------- ...arsesElseIfBranchesOfIfStatement.stree.txt | 192 +++---- ...aracterFollowedByIdentifierStart.stree.txt | 53 +- ...itchCharacterFollowedByOpenParen.stree.txt | 55 +- ...tipleElseIfBranchesOfIfStatement.stree.txt | 480 +++++++++--------- ...StatementFollowedByOneElseBranch.stree.txt | 316 ++++++------ ...ForUsingKeywordIfIsInValidFormat.stree.txt | 24 +- ...ForUsingKeywordIfIsInValidFormat.stree.txt | 24 +- ...cesIfFirstIdentifierIsForKeyword.stree.txt | 94 ++-- ...fFirstIdentifierIsForeachKeyword.stree.txt | 94 ++-- ...ierIsIfKeywordWithNoElseBranches.stree.txt | 94 ++-- ...IfFirstIdentifierIsSwitchKeyword.stree.txt | 110 ++-- ...sIfFirstIdentifierIsWhileKeyword.stree.txt | 94 ++-- ...IdentifierIsUsingFollowedByParen.stree.txt | 94 ++-- ...ingCatchClausesAfterFinallyBlock.stree.txt | 76 +-- .../StopsParsingCodeAfterElseBranch.stree.txt | 220 ++++---- ...ngIfIfStatementNotFollowedByElse.stree.txt | 96 ++-- ...mentBetweenCatchAndFinallyClause.stree.txt | 84 +-- ...ckCommentBetweenDoAndWhileClause.stree.txt | 54 +- ...ommentBetweenElseIfAndElseClause.stree.txt | 94 ++-- ...ockCommentBetweenIfAndElseClause.stree.txt | 62 +-- ...kCommentBetweenIfAndElseIfClause.stree.txt | 72 +-- ...kCommentBetweenTryAndCatchClause.stree.txt | 62 +-- ...ommentBetweenTryAndFinallyClause.stree.txt | 56 +- ...upportsExceptionLessCatchClauses.stree.txt | 76 +-- ...mentBetweenCatchAndFinallyClause.stree.txt | 84 +-- ...neCommentBetweenDoAndWhileClause.stree.txt | 54 +- ...ommentBetweenElseIfAndElseClause.stree.txt | 94 ++-- ...ineCommentBetweenIfAndElseClause.stree.txt | 62 +-- ...eCommentBetweenIfAndElseIfClause.stree.txt | 72 +-- ...eCommentBetweenTryAndCatchClause.stree.txt | 62 +-- ...ommentBetweenTryAndFinallyClause.stree.txt | 56 +- ...rkupWithinAdditionalCatchClauses.stree.txt | 202 ++++---- .../SupportsMarkupWithinCatchClause.stree.txt | 102 ++-- ...upportsMarkupWithinFinallyClause.stree.txt | 88 ++-- .../SupportsMarkupWithinTryClause.stree.txt | 52 +- ...mentBetweenCatchAndFinallyClause.stree.txt | 118 ++--- ...orCommentBetweenDoAndWhileClause.stree.txt | 88 ++-- ...ommentBetweenElseIfAndElseClause.stree.txt | 128 +++-- ...zorCommentBetweenIfAndElseClause.stree.txt | 96 ++-- ...rCommentBetweenIfAndElseIfClause.stree.txt | 106 ++-- ...rCommentBetweenTryAndCatchClause.stree.txt | 94 ++-- ...ommentBetweenTryAndFinallyClause.stree.txt | 90 ++-- ...rtsTryStatementWithFinallyClause.stree.txt | 76 +-- ...StatementWithMultipleCatchClause.stree.txt | 190 +++---- ...StatementWithNoAdditionalClauses.stree.txt | 40 +- ...tsTryStatementWithOneCatchClause.stree.txt | 90 ++-- ...rtsUsingsNestedWithinOtherBlocks.stree.txt | 112 ++-- ...erminatesBlockCommentAtEndOfFile.stree.txt | 34 +- .../TerminatesParenBalancingAtEOF.stree.txt | 25 +- ...atesSingleLineCommentAtEndOfFile.stree.txt | 34 +- ...TerminatesSingleSlashAtEndOfFile.stree.txt | 46 +- ...wordAtEOFAndOutputsFileCodeBlock.stree.txt | 8 +- ...esIfFirstIdentifierIsLockKeyword.stree.txt | 38 +- ...FirstPairAsPartOfCSharpStatement.stree.txt | 46 +- ...EscapeSequenceIfAtStatementStart.stree.txt | 42 +- ...ingOfAttributeValue_DoesNotThrow.stree.txt | 71 +-- ...EndOfAttributeValue_DoesNotThrow.stree.txt | 71 +-- ...tweenAttributeValue_DoesNotThrow.stree.txt | 81 +-- ...ionInAttributeValue_DoesNotThrow.stree.txt | 66 +-- ...leTransitionInEmail_DoesNotThrow.stree.txt | 96 ++-- ...leTransitionInRegex_DoesNotThrow.stree.txt | 160 +++--- ...WithExpressionBlock_DoesNotThrow.stree.txt | 332 ++++++------ ...oubleTransition_EndOfFile_Throws.stree.txt | 52 +- ...ansitionsInAttributeValue_Throws.stree.txt | 92 ++-- 86 files changed, 3891 insertions(+), 3638 deletions(-) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpBlockTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpBlockTest.cs index 6e7f36da2..bc38850af 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpBlockTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpBlockTest.cs @@ -8,6 +8,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { public class CSharpBlockTest : CsHtmlCodeParserTestBase { + public CSharpBlockTest() + { + UseNewSyntaxTree = true; + } + [Fact] public void NestedCodeBlockWithCSharpAt() { diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/AcceptsElseIfWithNoCondition.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/AcceptsElseIfWithNoCondition.stree.txt index 868839ebf..4342976bf 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/AcceptsElseIfWithNoCondition.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/AcceptsElseIfWithNoCondition.stree.txt @@ -1,60 +1,62 @@ -Statement block - Gen - 106 - (0:0,0) - Code span - Gen - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF} else if { foo(); }] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:58 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"foo } bar"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..106)::106 - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF} else if { foo(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..106)::106 - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF} else if { foo(); }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"foo } bar"]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/AcceptsTrailingDotIntoImplicitExpressionWhenEmbeddedInCode.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/AcceptsTrailingDotIntoImplicitExpressionWhenEmbeddedInCode.stree.txt index da0e4e568..a4c126252 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/AcceptsTrailingDotIntoImplicitExpressionWhenEmbeddedInCode.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/AcceptsTrailingDotIntoImplicitExpressionWhenEmbeddedInCode.stree.txt @@ -1,18 +1,23 @@ -Statement block - Gen - 17 - (0:0,0) - Code span - Gen - [if(foo) { ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:7 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 5 - (10:0,10) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [foo.] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[ATD];K14 - (11:0,11) - Tokens:2 - SyntaxKind.Identifier;[foo]; - SyntaxKind.Dot;[.]; - Code span - Gen - [ }] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..17)::17 - [if(foo) { @foo. }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..10)::10 - [if(foo) { ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + CSharpCodeBlock - [10..15)::5 + CSharpImplicitExpression - [10..15)::5 + CSharpTransition - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [11..15)::4 + CSharpCodeBlock - [11..15)::4 + CSharpExpressionLiteral - [11..15)::4 - [foo.] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[ATD];K14 + Identifier;[foo]; + Dot;[.]; + CSharpStatementLiteral - [15..17)::2 - [ }] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/AllowsEmptyBlockStatement.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/AllowsEmptyBlockStatement.stree.txt index e52cb3277..3d1e8ad34 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/AllowsEmptyBlockStatement.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/AllowsEmptyBlockStatement.stree.txt @@ -1,10 +1,12 @@ -Statement block - Gen - 13 - (0:0,0) - Code span - Gen - [if(false) { }] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:8 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[false]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..13)::13 - [if(false) { }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..13)::13 - [if(false) { }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[false]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/BalancingBracketsIgnoresStringLiteralCharactersAndBrackets.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/BalancingBracketsIgnoresStringLiteralCharactersAndBrackets.stree.txt index 6fa6c5ed3..a7c7c7baf 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/BalancingBracketsIgnoresStringLiteralCharactersAndBrackets.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/BalancingBracketsIgnoresStringLiteralCharactersAndBrackets.stree.txt @@ -1,19 +1,21 @@ -Statement block - Gen - 47 - (0:0,0) - Code span - Gen - [if(foo) {LF // bar } " baz 'LF zoop();LF}] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:17 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[// bar } " baz ']; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[zoop]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..47)::47 - [if(foo) {LF // bar } " baz 'LF zoop();LF}] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..47)::47 - [if(foo) {LF // bar } " baz 'LF zoop();LF}] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + CSharpComment;[// bar } " baz ']; + NewLine;[LF]; + Whitespace;[ ]; + Identifier;[zoop]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/BalancingBracketsIgnoresStringLiteralCharactersAndBracketsInsideBlockComments.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/BalancingBracketsIgnoresStringLiteralCharactersAndBracketsInsideBlockComments.stree.txt index 7d34a8138..435942c4e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/BalancingBracketsIgnoresStringLiteralCharactersAndBracketsInsideBlockComments.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/BalancingBracketsIgnoresStringLiteralCharactersAndBracketsInsideBlockComments.stree.txt @@ -1,21 +1,23 @@ -Statement block - Gen - 54 - (0:0,0) - Code span - Gen - [if(foo) {LF /* bar } " */ ' baz } 'LF zoop();LF}] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:19 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[/* bar } " */]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CharacterLiteral;[' baz } ']; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[zoop]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..54)::54 - [if(foo) {LF /* bar } " */ ' baz } 'LF zoop();LF}] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..54)::54 - [if(foo) {LF /* bar } " */ ' baz } 'LF zoop();LF}] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + CSharpComment;[/* bar } " */]; + Whitespace;[ ]; + CharacterLiteral;[' baz } ']; + NewLine;[LF]; + Whitespace;[ ]; + Identifier;[zoop]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CapturesNewlineAfterUsing.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CapturesNewlineAfterUsing.stree.txt index 6b754ce0a..70f8e6a5c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CapturesNewlineAfterUsing.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CapturesNewlineAfterUsing.stree.txt @@ -1,6 +1,10 @@ -Directive block - Gen - 11 - (0:0,0) - Code span - Gen - [using FooLF] - SpanEditHandler;Accepts:AnyExceptNewline - (0:0,0) - Tokens:4 - SyntaxKind.Keyword;[using]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.NewLine;[LF]; +CSharpCodeBlock - [0..11)::11 - [using FooLF] + RazorDirective - [0..11)::11 + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + RazorDirectiveBody - [0..11)::11 + CSharpStatementLiteral - [0..11)::11 - [using FooLF] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Keyword;[using]; + Whitespace;[ ]; + Identifier;[Foo]; + NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlock.stree.txt index ead956f33..5b1868483 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlock.stree.txt @@ -1,26 +1,28 @@ -Statement block - Gen - 40 - (0:0,0) - Code span - Gen - [do { var foo = bar; } while(foo != bar);] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:24 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NotEqual;[!=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; +CSharpCodeBlock - [0..40)::40 - [do { var foo = bar; } while(foo != bar);] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..40)::40 - [do { var foo = bar; } while(foo != bar);] - Gen - SpanEditHandler;Accepts:None + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + LeftParenthesis;[(]; + Identifier;[foo]; + Whitespace;[ ]; + NotEqual;[!=]; + Whitespace;[ ]; + Identifier;[bar]; + RightParenthesis;[)]; + Semicolon;[;]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlockMissingSemicolon.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlockMissingSemicolon.stree.txt index e7b6d30e0..454ba645d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlockMissingSemicolon.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlockMissingSemicolon.stree.txt @@ -1,25 +1,27 @@ -Statement block - Gen - 39 - (0:0,0) - Code span - Gen - [do { var foo = bar; } while(foo != bar)] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:23 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NotEqual;[!=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.RightParenthesis;[)]; +CSharpCodeBlock - [0..39)::39 - [do { var foo = bar; } while(foo != bar)] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..39)::39 - [do { var foo = bar; } while(foo != bar)] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + LeftParenthesis;[(]; + Identifier;[foo]; + Whitespace;[ ]; + NotEqual;[!=]; + Whitespace;[ ]; + Identifier;[bar]; + RightParenthesis;[)]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlockMissingWhileClauseEntirely.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlockMissingWhileClauseEntirely.stree.txt index 45a35ab1d..9c1ddef84 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlockMissingWhileClauseEntirely.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlockMissingWhileClauseEntirely.stree.txt @@ -1,16 +1,18 @@ -Statement block - Gen - 21 - (0:0,0) - Code span - Gen - [do { var foo = bar; }] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:14 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..21)::21 - [do { var foo = bar; }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..21)::21 - [do { var foo = bar; }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlockMissingWhileCondition.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlockMissingWhileCondition.stree.txt index acc83fbd9..3aa59c8da 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlockMissingWhileCondition.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlockMissingWhileCondition.stree.txt @@ -1,18 +1,20 @@ -Statement block - Gen - 27 - (0:0,0) - Code span - Gen - [do { var foo = bar; } while] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:16 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; +CSharpCodeBlock - [0..27)::27 - [do { var foo = bar; } while] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..27)::27 - [do { var foo = bar; } while] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlockMissingWhileConditionWithSemicolon.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlockMissingWhileConditionWithSemicolon.stree.txt index 84dbbd25a..3e8f224bd 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlockMissingWhileConditionWithSemicolon.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesDoWhileBlockMissingWhileConditionWithSemicolon.stree.txt @@ -1,19 +1,21 @@ -Statement block - Gen - 28 - (0:0,0) - Code span - Gen - [do { var foo = bar; } while;] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:17 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.Semicolon;[;]; +CSharpCodeBlock - [0..28)::28 - [do { var foo = bar; } while;] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..28)::28 - [do { var foo = bar; } while;] - Gen - SpanEditHandler;Accepts:None + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + Semicolon;[;]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesMarkupInDoWhileBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesMarkupInDoWhileBlock.stree.txt index ea31ba710..8cfa9e2ee 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesMarkupInDoWhileBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CorrectlyParsesMarkupInDoWhileBlock.stree.txt @@ -1,50 +1,50 @@ -Statement block - Gen - 58 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [do { var foo = bar;] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:12 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - Markup block - Gen - 12 - (20:0,20) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 3 - (21:0,21) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1 - SyntaxKind.Text;[Foo]; - Tag block - Gen - 4 - (27:0,27) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (27:0,27) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [foo++; } while (foo);] - SpanEditHandler;Accepts:None - (32:0,32) - Tokens:15 - SyntaxKind.Identifier;[foo]; - SyntaxKind.Increment;[++]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; +CSharpCodeBlock - [0..58)::58 - [@do { var foo = bar;

    Foo

    foo++; } while (foo);] + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [1..20)::19 - [do { var foo = bar;] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + MarkupBlock - [20..32)::12 + MarkupTextLiteral - [20..21)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [21..24)::3 - [

    ] + MarkupTextLiteral - [21..24)::3 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [24..27)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTagBlock - [27..31)::4 - [

    ] + MarkupTextLiteral - [27..31)::4 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [31..32)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [32..58)::26 - [foo++; } while (foo);] - Gen - SpanEditHandler;Accepts:None + Identifier;[foo]; + Increment;[++]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Identifier;[foo]; + LessThan;[<]; + Identifier;[bar]; + GreaterThan;[>]; + RightParenthesis;[)]; + Semicolon;[;]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/DoesNotAllowMultipleFinallyBlocks.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/DoesNotAllowMultipleFinallyBlocks.stree.txt index 8ae4de426..cb95bfbf5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/DoesNotAllowMultipleFinallyBlocks.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/DoesNotAllowMultipleFinallyBlocks.stree.txt @@ -1,37 +1,39 @@ -Statement block - Gen - 55 - (0:0,0) - Code span - Gen - [try { var foo = new { } } finally { var foo = new { } }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:35 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[finally]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..55)::55 - [try { var foo = new { } } finally { var foo = new { } }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..55)::55 - [try { var foo = new { } } finally { var foo = new { } }] - Gen - SpanEditHandler;Accepts:None + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[finally]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/DoesNotParseOnSwitchCharacterNotFollowedByOpenAngleOrColon.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/DoesNotParseOnSwitchCharacterNotFollowedByOpenAngleOrColon.stree.txt index a2187f435..511ac5e90 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/DoesNotParseOnSwitchCharacterNotFollowedByOpenAngleOrColon.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/DoesNotParseOnSwitchCharacterNotFollowedByOpenAngleOrColon.stree.txt @@ -1,17 +1,19 @@ -Statement block - Gen - 30 - (0:0,0) - Code span - Gen - [if(foo) { @"Foo".ToString(); }] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:15 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;[@"Foo"]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[ToString]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..30)::30 - [if(foo) { @"Foo".ToString(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..30)::30 - [if(foo) { @"Foo".ToString(); }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + StringLiteral;[@"Foo"]; + Dot;[.]; + Identifier;[ToString]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/DoesntCaptureWhitespaceAfterUsing.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/DoesntCaptureWhitespaceAfterUsing.stree.txt index 955f9551a..a36457051 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/DoesntCaptureWhitespaceAfterUsing.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/DoesntCaptureWhitespaceAfterUsing.stree.txt @@ -1,5 +1,9 @@ -Directive block - Gen - 9 - (0:0,0) - Code span - Gen - [using Foo] - SpanEditHandler;Accepts:AnyExceptNewline - (0:0,0) - Tokens:3 - SyntaxKind.Keyword;[using]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; +CSharpCodeBlock - [0..9)::9 - [using Foo] + RazorDirective - [0..9)::9 + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + RazorDirectiveBody - [0..9)::9 + CSharpStatementLiteral - [0..9)::9 - [using Foo] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Keyword;[using]; + Whitespace;[ ]; + Identifier;[Foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/HasErrorsIfNamespaceAliasMissingSemicolon.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/HasErrorsIfNamespaceAliasMissingSemicolon.stree.txt index d2ea23142..f31bc0289 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/HasErrorsIfNamespaceAliasMissingSemicolon.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/HasErrorsIfNamespaceAliasMissingSemicolon.stree.txt @@ -1,13 +1,17 @@ -Directive block - Gen - 29 - (0:0,0) - Code span - Gen - [using Foo.Bar.Baz = FooBarBaz] - SpanEditHandler;Accepts:AnyExceptNewline - (0:0,0) - Tokens:11 - SyntaxKind.Keyword;[using]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Baz]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[FooBarBaz]; +CSharpCodeBlock - [0..29)::29 - [using Foo.Bar.Baz = FooBarBaz] + RazorDirective - [0..29)::29 + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + RazorDirectiveBody - [0..29)::29 + CSharpStatementLiteral - [0..29)::29 - [using Foo.Bar.Baz = FooBarBaz] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Keyword;[using]; + Whitespace;[ ]; + Identifier;[Foo]; + Dot;[.]; + Identifier;[Bar]; + Dot;[.]; + Identifier;[Baz]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[FooBarBaz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/HasErrorsIfNamespaceImportMissingSemicolon.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/HasErrorsIfNamespaceImportMissingSemicolon.stree.txt index 92f8d6a42..cdc2a24b3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/HasErrorsIfNamespaceImportMissingSemicolon.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/HasErrorsIfNamespaceImportMissingSemicolon.stree.txt @@ -1,9 +1,13 @@ -Directive block - Gen - 17 - (0:0,0) - Code span - Gen - [using Foo.Bar.Baz] - SpanEditHandler;Accepts:AnyExceptNewline - (0:0,0) - Tokens:7 - SyntaxKind.Keyword;[using]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Baz]; +CSharpCodeBlock - [0..17)::17 - [using Foo.Bar.Baz] + RazorDirective - [0..17)::17 + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + RazorDirectiveBody - [0..17)::17 + CSharpStatementLiteral - [0..17)::17 - [using Foo.Bar.Baz] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Keyword;[using]; + Whitespace;[ ]; + Identifier;[Foo]; + Dot;[.]; + Identifier;[Bar]; + Dot;[.]; + Identifier;[Baz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/NestedCodeBlockWithAtDoesntCauseError.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/NestedCodeBlockWithAtDoesntCauseError.stree.txt index 88eb4a444..b46729f16 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/NestedCodeBlockWithAtDoesntCauseError.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/NestedCodeBlockWithAtDoesntCauseError.stree.txt @@ -1,25 +1,27 @@ -Statement block - Gen - 28 - (0:0,0) - Code span - Gen - [if (true) { ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:8 - SyntaxKind.Keyword;[if]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - Statement block - Gen - 14 - (12:0,12) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [if(false) { }] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:8 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[false]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - Code span - Gen - [ }] - SpanEditHandler;Accepts:Any - (26:0,26) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..28)::28 - [if (true) { @if(false) { } }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..12)::12 - [if (true) { ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + CSharpCodeBlock - [12..26)::14 + CSharpTransition - [12..13)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [13..26)::13 - [if(false) { }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[false]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + CSharpStatementLiteral - [26..28)::2 - [ }] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/NestedCodeBlockWithCSharpAt.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/NestedCodeBlockWithCSharpAt.stree.txt index 4d2b18266..f4b22b072 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/NestedCodeBlockWithCSharpAt.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/NestedCodeBlockWithCSharpAt.stree.txt @@ -1,41 +1,46 @@ -Statement block - Gen - 49 - (0:0,0) - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [ if (true) { var val = @x; if (val != 3) { } } ] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (1:0,1) - Tokens:35 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[val]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Transition;[@]; - SyntaxKind.Identifier;[x]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[val]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NotEqual;[!=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[3]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (48:0,48) - Tokens:1 - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..49)::49 - [{ if (true) { var val = @x; if (val != 3) { } } }] + CSharpStatement - [0..49)::49 + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementBody - [0..49)::49 + RazorMetaCode - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [1..48)::47 + CSharpStatementLiteral - [1..48)::47 - [ if (true) { var val = @x; if (val != 3) { } } ] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + Whitespace;[ ]; + Keyword;[if]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[val]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Transition;[@]; + Identifier;[x]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[if]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Identifier;[val]; + Whitespace;[ ]; + NotEqual;[!=]; + Whitespace;[ ]; + IntegerLiteral;[3]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RazorMetaCode - [48..49)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/NestedCodeBlockWithMarkupSetsDotAsMarkup.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/NestedCodeBlockWithMarkupSetsDotAsMarkup.stree.txt index faaeb88e7..93ac739d1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/NestedCodeBlockWithMarkupSetsDotAsMarkup.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/NestedCodeBlockWithMarkupSetsDotAsMarkup.stree.txt @@ -1,50 +1,55 @@ -Statement block - Gen - 51 - (0:0,0) - Code span - Gen - [if (true) { ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:8 - SyntaxKind.Keyword;[if]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - Statement block - Gen - 37 - (12:0,12) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [if(false) {] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:6 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[false]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 24 - (24:0,24) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 5 - (25:0,25) - Markup span - Gen - [
    ] - SpanEditHandler;Accepts:None - (25:0,25) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:1 - SyntaxKind.Unknown;[]; - Expression block - Gen - 10 - (30:0,30) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (30:0,30) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [something] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (31:0,31) - Tokens:1 - SyntaxKind.Identifier;[something]; - Markup span - Gen - [.] - SpanEditHandler;Accepts:Any - (40:0,40) - Tokens:1 - SyntaxKind.Text;[.]; - Tag block - Gen - 6 - (41:0,41) - Markup span - Gen - [
    ] - SpanEditHandler;Accepts:None - (41:0,41) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (47:0,47) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [}] - SpanEditHandler;Accepts:Any - (48:0,48) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Code span - Gen - [ }] - SpanEditHandler;Accepts:Any - (49:0,49) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..51)::51 - [if (true) { @if(false) {
    @something.
    } }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..12)::12 - [if (true) { ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + CSharpCodeBlock - [12..49)::37 + CSharpTransition - [12..13)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [13..24)::11 - [if(false) {] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[false]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + MarkupBlock - [24..48)::24 + MarkupTextLiteral - [24..25)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [25..30)::5 - [
    ] + MarkupTextLiteral - [25..30)::5 - [
    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [30..30)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [30..40)::10 + CSharpImplicitExpression - [30..40)::10 + CSharpTransition - [30..31)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [31..40)::9 + CSharpCodeBlock - [31..40)::9 + CSharpExpressionLiteral - [31..40)::9 - [something] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[something]; + MarkupTextLiteral - [40..41)::1 - [.] - Gen - SpanEditHandler;Accepts:Any + Text;[.]; + MarkupTagBlock - [41..47)::6 - [
    ] + MarkupTextLiteral - [41..47)::6 - [
    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [47..48)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [48..49)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + RightBrace;[}]; + CSharpStatementLiteral - [49..51)::2 - [ }] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsersCanNestRecursively.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsersCanNestRecursively.stree.txt index a8cf93351..e37aa10fd 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsersCanNestRecursively.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsersCanNestRecursively.stree.txt @@ -1,179 +1,194 @@ -Statement block - Gen - 351 - (0:0,0) - Code span - Gen - [foreach(var c in db.Categories) {LF] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:15 - SyntaxKind.Keyword;[foreach]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[c]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[in]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[db]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Categories]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 307 - (35:1,0) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (35:1,0) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 5 - (47:1,12) - Markup span - Gen - [
    ] - SpanEditHandler;Accepts:None - (47:1,12) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [LF ] - SpanEditHandler;Accepts:Any - (52:1,17) - Tokens:2 - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 4 - (70:2,16) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (70:2,16) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[h1]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (74:2,20) - Tokens:1 - SyntaxKind.Unknown;[]; - Expression block - Gen - 7 - (74:2,20) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (74:2,20) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [c.Name] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (75:2,21) - Tokens:3 - SyntaxKind.Identifier;[c]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Name]; - Tag block - Gen - 5 - (81:2,27) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (81:2,27) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[h1]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [LF ] - SpanEditHandler;Accepts:Any - (86:2,32) - Tokens:2 - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 4 - (104:3,16) - Markup span - Gen - [
    ] - SpanEditHandler;Accepts:None - (315:7,16) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[ul]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [LF ] - SpanEditHandler;Accepts:Any - (320:7,21) - Tokens:2 - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 6 - (334:8,12) - Markup span - Gen - [
    ] - SpanEditHandler;Accepts:None - (334:8,12) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:None - (340:8,18) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Code span - Gen - [ }] - SpanEditHandler;Accepts:None - (342:9,0) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..351)::351 - [foreach(var c in db.Categories) {LF
    LF

    @c.Name

    LF
      LF @foreach(var p in c.Products) {LF
    • @p.Name
    • LF }LF
    LF
    LF }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..35)::35 - [foreach(var c in db.Categories) {LF] - Gen - SpanEditHandler;Accepts:Any + Keyword;[foreach]; + LeftParenthesis;[(]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[c]; + Whitespace;[ ]; + Keyword;[in]; + Whitespace;[ ]; + Identifier;[db]; + Dot;[.]; + Identifier;[Categories]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + MarkupBlock - [35..342)::307 + MarkupTextLiteral - [35..47)::12 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [47..52)::5 - [
    ] + MarkupTextLiteral - [47..52)::5 - [
    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [52..70)::18 - [LF ] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Whitespace;[ ]; + MarkupTagBlock - [70..74)::4 - [

    ] + MarkupTextLiteral - [70..74)::4 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[h1]; + CloseAngle;[>]; + MarkupTextLiteral - [74..74)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [74..81)::7 + CSharpImplicitExpression - [74..81)::7 + CSharpTransition - [74..75)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [75..81)::6 + CSharpCodeBlock - [75..81)::6 + CSharpExpressionLiteral - [75..81)::6 - [c.Name] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[c]; + Dot;[.]; + Identifier;[Name]; + MarkupTagBlock - [81..86)::5 - [

    ] + MarkupTextLiteral - [81..86)::5 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[h1]; + CloseAngle;[>]; + MarkupTextLiteral - [86..104)::18 - [LF ] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Whitespace;[ ]; + MarkupTagBlock - [104..108)::4 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[ul]; + CloseAngle;[>]; + MarkupTextLiteral - [320..334)::14 - [LF ] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Whitespace;[ ]; + MarkupTagBlock - [334..340)::6 - [
    ] + MarkupTextLiteral - [334..340)::6 - [
    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [340..342)::2 - [LF] - Gen - SpanEditHandler;Accepts:None + NewLine;[LF]; + CSharpStatementLiteral - [342..351)::9 - [ }] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesElseIfBranchesOfIfStatement.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesElseIfBranchesOfIfStatement.stree.txt index c86d52c61..874dd8d64 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesElseIfBranchesOfIfStatement.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesElseIfBranchesOfIfStatement.stree.txt @@ -1,95 +1,97 @@ -Statement block - Gen - 180 - (0:0,0) - Code span - Gen - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF}] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:93 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"foo } bar"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"bar } baz"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..180)::180 - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF}] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..180)::180 - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF}] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"foo } bar"]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"bar } baz"]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesExpressionOnSwitchCharacterFollowedByIdentifierStart.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesExpressionOnSwitchCharacterFollowedByIdentifierStart.stree.txt index 7e1f4a485..ec306314d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesExpressionOnSwitchCharacterFollowedByIdentifierStart.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesExpressionOnSwitchCharacterFollowedByIdentifierStart.stree.txt @@ -1,24 +1,29 @@ -Statement block - Gen - 25 - (0:0,0) - Code span - Gen - [if(foo) { ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:7 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (10:0,10) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [foo[4].bar()] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[ATD];K14 - (11:0,11) - Tokens:8 - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.IntegerLiteral;[4]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - Code span - Gen - [ }] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..25)::25 - [if(foo) { @foo[4].bar() }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..10)::10 - [if(foo) { ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + CSharpCodeBlock - [10..23)::13 + CSharpImplicitExpression - [10..23)::13 + CSharpTransition - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [11..23)::12 + CSharpCodeBlock - [11..23)::12 + CSharpExpressionLiteral - [11..23)::12 - [foo[4].bar()] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[ATD];K14 + Identifier;[foo]; + LeftBracket;[[]; + IntegerLiteral;[4]; + RightBracket;[]]; + Dot;[.]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + CSharpStatementLiteral - [23..25)::2 - [ }] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesExpressionOnSwitchCharacterFollowedByOpenParen.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesExpressionOnSwitchCharacterFollowedByOpenParen.stree.txt index 1bfc6b33f..7a4de524b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesExpressionOnSwitchCharacterFollowedByOpenParen.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesExpressionOnSwitchCharacterFollowedByOpenParen.stree.txt @@ -1,25 +1,30 @@ -Statement block - Gen - 24 - (0:0,0) - Code span - Gen - [if(foo) { ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:7 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 12 - (10:0,10) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [(] - SpanEditHandler;Accepts:None - (11:0,11) - Tokens:1 - SyntaxKind.LeftParenthesis;[(]; - Code span - Gen - [foo + bar] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:5 - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Plus;[+]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - MetaCode span - Gen - [)] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1 - SyntaxKind.RightParenthesis;[)]; - Code span - Gen - [ }] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..24)::24 - [if(foo) { @(foo + bar) }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..10)::10 - [if(foo) { ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + CSharpCodeBlock - [10..22)::12 + CSharpExplicitExpression - [10..22)::12 + CSharpTransition - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpExplicitExpressionBody - [11..22)::11 + RazorMetaCode - [11..12)::1 - Gen - SpanEditHandler;Accepts:None + LeftParenthesis;[(]; + CSharpCodeBlock - [12..21)::9 + CSharpExpressionLiteral - [12..21)::9 - [foo + bar] - Gen - SpanEditHandler;Accepts:Any + Identifier;[foo]; + Whitespace;[ ]; + Plus;[+]; + Whitespace;[ ]; + Identifier;[bar]; + RazorMetaCode - [21..22)::1 - Gen - SpanEditHandler;Accepts:None + RightParenthesis;[)]; + CSharpStatementLiteral - [22..24)::2 - [ }] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesMultipleElseIfBranchesOfIfStatement.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesMultipleElseIfBranchesOfIfStatement.stree.txt index cb4f3cd09..752dcb297 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesMultipleElseIfBranchesOfIfStatement.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesMultipleElseIfBranchesOfIfStatement.stree.txt @@ -1,239 +1,241 @@ -Statement block - Gen - 459 - (0:0,0) - Code span - Gen - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF}] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:237 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"foo } bar"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"bar } baz"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"bar } baz"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"bar } baz"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"bar } baz"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..459)::459 - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF}] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..459)::459 - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF}] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"foo } bar"]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"bar } baz"]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"bar } baz"]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"bar } baz"]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"bar } baz"]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesMultipleElseIfBranchesOfIfStatementFollowedByOneElseBranch.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesMultipleElseIfBranchesOfIfStatementFollowedByOneElseBranch.stree.txt index 62a654f7b..7fb831fef 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesMultipleElseIfBranchesOfIfStatementFollowedByOneElseBranch.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesMultipleElseIfBranchesOfIfStatementFollowedByOneElseBranch.stree.txt @@ -1,157 +1,159 @@ -Statement block - Gen - 313 - (0:0,0) - Code span - Gen - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else { Debug.WriteLine(@"bar } baz"); }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:155 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"foo } bar"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"bar } baz"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"bar } baz"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"bar } baz"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..313)::313 - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else { Debug.WriteLine(@"bar } baz"); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..313)::313 - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else { Debug.WriteLine(@"bar } baz"); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"foo } bar"]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"bar } baz"]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"bar } baz"]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"bar } baz"]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesNamespaceAliasWithSemicolonForUsingKeywordIfIsInValidFormat.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesNamespaceAliasWithSemicolonForUsingKeywordIfIsInValidFormat.stree.txt index c6cb9e90a..2c93712c9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesNamespaceAliasWithSemicolonForUsingKeywordIfIsInValidFormat.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesNamespaceAliasWithSemicolonForUsingKeywordIfIsInValidFormat.stree.txt @@ -1,10 +1,14 @@ -Directive block - Gen - 28 - (0:0,0) - Code span - Gen - [using FooBarBaz = FooBarBaz;] - SpanEditHandler;Accepts:AnyExceptNewline - (0:0,0) - Tokens:8 - SyntaxKind.Keyword;[using]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[FooBarBaz]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[FooBarBaz]; - SyntaxKind.Semicolon;[;]; +CSharpCodeBlock - [0..28)::28 - [using FooBarBaz = FooBarBaz;] + RazorDirective - [0..28)::28 + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + RazorDirectiveBody - [0..28)::28 + CSharpStatementLiteral - [0..28)::28 - [using FooBarBaz = FooBarBaz;] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Keyword;[using]; + Whitespace;[ ]; + Identifier;[FooBarBaz]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[FooBarBaz]; + Semicolon;[;]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesNamespaceImportWithSemicolonForUsingKeywordIfIsInValidFormat.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesNamespaceImportWithSemicolonForUsingKeywordIfIsInValidFormat.stree.txt index 5fa73eb8f..33a20fa93 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesNamespaceImportWithSemicolonForUsingKeywordIfIsInValidFormat.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesNamespaceImportWithSemicolonForUsingKeywordIfIsInValidFormat.stree.txt @@ -1,10 +1,14 @@ -Directive block - Gen - 18 - (0:0,0) - Code span - Gen - [using Foo.Bar.Baz;] - SpanEditHandler;Accepts:AnyExceptNewline - (0:0,0) - Tokens:8 - SyntaxKind.Keyword;[using]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Baz]; - SyntaxKind.Semicolon;[;]; +CSharpCodeBlock - [0..18)::18 - [using Foo.Bar.Baz;] + RazorDirective - [0..18)::18 + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + RazorDirectiveBody - [0..18)::18 + CSharpStatementLiteral - [0..18)::18 - [using Foo.Bar.Baz;] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Keyword;[using]; + Whitespace;[ ]; + Identifier;[Foo]; + Dot;[.]; + Identifier;[Bar]; + Dot;[.]; + Identifier;[Baz]; + Semicolon;[;]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsForKeyword.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsForKeyword.stree.txt index 9bd2fe906..5e4de1333 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsForKeyword.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsForKeyword.stree.txt @@ -1,46 +1,48 @@ -Statement block - Gen - 82 - (0:0,0) - Code span - Gen - [for(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:44 - SyntaxKind.Keyword;[for]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"foo } bar"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..82)::82 - [for(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..82)::82 - [for(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[for]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"foo } bar"]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsForeachKeyword.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsForeachKeyword.stree.txt index a6ba84a76..7bed8c30f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsForeachKeyword.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsForeachKeyword.stree.txt @@ -1,46 +1,48 @@ -Statement block - Gen - 86 - (0:0,0) - Code span - Gen - [foreach(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:44 - SyntaxKind.Keyword;[foreach]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"foo } bar"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..86)::86 - [foreach(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..86)::86 - [foreach(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[foreach]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"foo } bar"]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsIfKeywordWithNoElseBranches.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsIfKeywordWithNoElseBranches.stree.txt index 712f8110b..f7f1f67c9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsIfKeywordWithNoElseBranches.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsIfKeywordWithNoElseBranches.stree.txt @@ -1,46 +1,48 @@ -Statement block - Gen - 81 - (0:0,0) - Code span - Gen - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); }] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:44 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"foo } bar"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..81)::81 - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..81)::81 - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"foo } bar"]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsSwitchKeyword.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsSwitchKeyword.stree.txt index 23b29665e..46890c793 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsSwitchKeyword.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsSwitchKeyword.stree.txt @@ -1,54 +1,56 @@ -Statement block - Gen - 161 - (0:0,0) - Code span - Gen - [switch(foo) {LF case 0:LF break;LF case 1:LF {LF break;LF }LF case 2:LF return;LF default:LF return;LF}] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:52 - SyntaxKind.Keyword;[switch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[case]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Colon;[:]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[break]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[case]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[1]; - SyntaxKind.Colon;[:]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[break]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[case]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[2]; - SyntaxKind.Colon;[:]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[return]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[default]; - SyntaxKind.Colon;[:]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[return]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..161)::161 - [switch(foo) {LF case 0:LF break;LF case 1:LF {LF break;LF }LF case 2:LF return;LF default:LF return;LF}] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..161)::161 - [switch(foo) {LF case 0:LF break;LF case 1:LF {LF break;LF }LF case 2:LF return;LF default:LF return;LF}] - Gen - SpanEditHandler;Accepts:None + Keyword;[switch]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + Keyword;[case]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Colon;[:]; + NewLine;[LF]; + Whitespace;[ ]; + Keyword;[break]; + Semicolon;[;]; + NewLine;[LF]; + Whitespace;[ ]; + Keyword;[case]; + Whitespace;[ ]; + IntegerLiteral;[1]; + Colon;[:]; + NewLine;[LF]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + Keyword;[break]; + Semicolon;[;]; + NewLine;[LF]; + Whitespace;[ ]; + RightBrace;[}]; + NewLine;[LF]; + Whitespace;[ ]; + Keyword;[case]; + Whitespace;[ ]; + IntegerLiteral;[2]; + Colon;[:]; + NewLine;[LF]; + Whitespace;[ ]; + Keyword;[return]; + Semicolon;[;]; + NewLine;[LF]; + Whitespace;[ ]; + Keyword;[default]; + Colon;[:]; + NewLine;[LF]; + Whitespace;[ ]; + Keyword;[return]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsWhileKeyword.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsWhileKeyword.stree.txt index 8867fa66f..2bb6e1023 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsWhileKeyword.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesBracesIfFirstIdentifierIsWhileKeyword.stree.txt @@ -1,46 +1,48 @@ -Statement block - Gen - 84 - (0:0,0) - Code span - Gen - [while(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:44 - SyntaxKind.Keyword;[while]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"foo } bar"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..84)::84 - [while(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..84)::84 - [while(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[while]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"foo } bar"]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesIfFirstIdentifierIsUsingFollowedByParen.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesIfFirstIdentifierIsUsingFollowedByParen.stree.txt index 18268ec09..2a7208cd4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesIfFirstIdentifierIsUsingFollowedByParen.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SkipsExprThenBalancesIfFirstIdentifierIsUsingFollowedByParen.stree.txt @@ -1,46 +1,48 @@ -Statement block - Gen - 84 - (0:0,0) - Code span - Gen - [using(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:44 - SyntaxKind.Keyword;[using]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"foo } bar"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..84)::84 - [using(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..84)::84 - [using(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[using]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"foo } bar"]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/StopsParsingCatchClausesAfterFinallyBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/StopsParsingCatchClausesAfterFinallyBlock.stree.txt index 8ae4de426..cb95bfbf5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/StopsParsingCatchClausesAfterFinallyBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/StopsParsingCatchClausesAfterFinallyBlock.stree.txt @@ -1,37 +1,39 @@ -Statement block - Gen - 55 - (0:0,0) - Code span - Gen - [try { var foo = new { } } finally { var foo = new { } }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:35 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[finally]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..55)::55 - [try { var foo = new { } } finally { var foo = new { } }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..55)::55 - [try { var foo = new { } } finally { var foo = new { } }] - Gen - SpanEditHandler;Accepts:None + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[finally]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/StopsParsingCodeAfterElseBranch.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/StopsParsingCodeAfterElseBranch.stree.txt index 7ed107129..6f62c1d22 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/StopsParsingCodeAfterElseBranch.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/StopsParsingCodeAfterElseBranch.stree.txt @@ -1,109 +1,111 @@ -Statement block - Gen - 220 - (0:0,0) - Code span - Gen - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else { Debug.WriteLine(@"bar } baz"); }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:107 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"foo } bar"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"bar } baz"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"bar } baz"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..220)::220 - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else { Debug.WriteLine(@"bar } baz"); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..220)::220 - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF} else if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"bar } baz");LF} else { Debug.WriteLine(@"bar } baz"); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"foo } bar"]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"bar } baz"]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"bar } baz"]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/StopsParsingIfIfStatementNotFollowedByElse.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/StopsParsingIfIfStatementNotFollowedByElse.stree.txt index 66455be82..87799cf41 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/StopsParsingIfIfStatementNotFollowedByElse.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/StopsParsingIfIfStatementNotFollowedByElse.stree.txt @@ -1,47 +1,49 @@ -Statement block - Gen - 87 - (0:0,0) - Code span - Gen - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF}] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:45 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"foo } bar"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..87)::87 - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF}] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..87)::87 - [if(int i = 0; i < 10; new Foo { Bar = "baz" }) {LF Debug.WriteLine(@"foo } bar");LF}] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + NewLine;[LF]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"foo } bar"]; + RightParenthesis;[)]; + Semicolon;[;]; + NewLine;[LF]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenCatchAndFinallyClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenCatchAndFinallyClause.stree.txt index 73bc070d6..fed923fc3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenCatchAndFinallyClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenCatchAndFinallyClause.stree.txt @@ -1,41 +1,43 @@ -Statement block - Gen - 75 - (0:0,0) - Code span - Gen - [try { bar(); } catch(bar) { baz(); } /* Foo */ /* Bar */ finally { biz(); }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:39 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[/* Foo */]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[/* Bar */]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[finally]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[biz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..75)::75 - [try { bar(); } catch(bar) { baz(); } /* Foo */ /* Bar */ finally { biz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..75)::75 - [try { bar(); } catch(bar) { baz(); } /* Foo */ /* Bar */ finally { biz(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[bar]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + CSharpComment;[/* Foo */]; + Whitespace;[ ]; + CSharpComment;[/* Bar */]; + Whitespace;[ ]; + Keyword;[finally]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[biz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenDoAndWhileClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenDoAndWhileClause.stree.txt index 55417a811..3388a6556 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenDoAndWhileClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenDoAndWhileClause.stree.txt @@ -1,26 +1,28 @@ -Statement block - Gen - 54 - (0:0,0) - Code span - Gen - [do { var foo = bar; } /* Foo */ /* Bar */ while(true);] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:24 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[/* Foo */]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[/* Bar */]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; +CSharpCodeBlock - [0..54)::54 - [do { var foo = bar; } /* Foo */ /* Bar */ while(true);] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..54)::54 - [do { var foo = bar; } /* Foo */ /* Bar */ while(true);] - Gen - SpanEditHandler;Accepts:None + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + CSharpComment;[/* Foo */]; + Whitespace;[ ]; + CSharpComment;[/* Bar */]; + Whitespace;[ ]; + Keyword;[while]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Semicolon;[;]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenElseIfAndElseClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenElseIfAndElseClause.stree.txt index af30d4aa6..6bc688a45 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenElseIfAndElseClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenElseIfAndElseClause.stree.txt @@ -1,46 +1,48 @@ -Statement block - Gen - 78 - (0:0,0) - Code span - Gen - [if(foo) { bar(); } else if(bar) { baz(); } /* Foo */ /* Bar */ else { biz(); }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:44 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[/* Foo */]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[/* Bar */]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[biz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..78)::78 - [if(foo) { bar(); } else if(bar) { baz(); } /* Foo */ /* Bar */ else { biz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..78)::78 - [if(foo) { bar(); } else if(bar) { baz(); } /* Foo */ /* Bar */ else { biz(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[bar]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + CSharpComment;[/* Foo */]; + Whitespace;[ ]; + CSharpComment;[/* Bar */]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[biz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenIfAndElseClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenIfAndElseClause.stree.txt index 5c0454a7c..53bf39362 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenIfAndElseClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenIfAndElseClause.stree.txt @@ -1,30 +1,32 @@ -Statement block - Gen - 54 - (0:0,0) - Code span - Gen - [if(foo) { bar(); } /* Foo */ /* Bar */ else { baz(); }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:28 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[/* Foo */]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[/* Bar */]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..54)::54 - [if(foo) { bar(); } /* Foo */ /* Bar */ else { baz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..54)::54 - [if(foo) { bar(); } /* Foo */ /* Bar */ else { baz(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + CSharpComment;[/* Foo */]; + Whitespace;[ ]; + CSharpComment;[/* Bar */]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenIfAndElseIfClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenIfAndElseIfClause.stree.txt index 6d0d09b6b..67306cce2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenIfAndElseIfClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenIfAndElseIfClause.stree.txt @@ -1,35 +1,37 @@ -Statement block - Gen - 62 - (0:0,0) - Code span - Gen - [if(foo) { bar(); } /* Foo */ /* Bar */ else if(bar) { baz(); }] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:33 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[/* Foo */]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[/* Bar */]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..62)::62 - [if(foo) { bar(); } /* Foo */ /* Bar */ else if(bar) { baz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..62)::62 - [if(foo) { bar(); } /* Foo */ /* Bar */ else if(bar) { baz(); }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + CSharpComment;[/* Foo */]; + Whitespace;[ ]; + CSharpComment;[/* Bar */]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[bar]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenTryAndCatchClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenTryAndCatchClause.stree.txt index 7d9cdf7fb..7aa27c665 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenTryAndCatchClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenTryAndCatchClause.stree.txt @@ -1,30 +1,32 @@ -Statement block - Gen - 56 - (0:0,0) - Code span - Gen - [try { bar(); } /* Foo */ /* Bar */ catch(bar) { baz(); }] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:28 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[/* Foo */]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[/* Bar */]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..56)::56 - [try { bar(); } /* Foo */ /* Bar */ catch(bar) { baz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..56)::56 - [try { bar(); } /* Foo */ /* Bar */ catch(bar) { baz(); }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + CSharpComment;[/* Foo */]; + Whitespace;[ ]; + CSharpComment;[/* Bar */]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[bar]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenTryAndFinallyClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenTryAndFinallyClause.stree.txt index fc6549a8d..5ceedb1a4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenTryAndFinallyClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsBlockCommentBetweenTryAndFinallyClause.stree.txt @@ -1,27 +1,29 @@ -Statement block - Gen - 53 - (0:0,0) - Code span - Gen - [try { bar(); } /* Foo */ /* Bar */ finally { baz(); }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:25 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[/* Foo */]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[/* Bar */]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[finally]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..53)::53 - [try { bar(); } /* Foo */ /* Bar */ finally { baz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..53)::53 - [try { bar(); } /* Foo */ /* Bar */ finally { baz(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + CSharpComment;[/* Foo */]; + Whitespace;[ ]; + CSharpComment;[/* Bar */]; + Whitespace;[ ]; + Keyword;[finally]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsExceptionLessCatchClauses.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsExceptionLessCatchClauses.stree.txt index cfdfe1039..a201eec07 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsExceptionLessCatchClauses.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsExceptionLessCatchClauses.stree.txt @@ -1,37 +1,39 @@ -Statement block - Gen - 53 - (0:0,0) - Code span - Gen - [try { var foo = new { } } catch { var foo = new { } }] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:35 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..53)::53 - [try { var foo = new { } } catch { var foo = new { } }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..53)::53 - [try { var foo = new { } } catch { var foo = new { } }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenCatchAndFinallyClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenCatchAndFinallyClause.stree.txt index 1c1dd3248..299be6593 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenCatchAndFinallyClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenCatchAndFinallyClause.stree.txt @@ -1,41 +1,43 @@ -Statement block - Gen - 72 - (0:0,0) - Code span - Gen - [try { bar(); } catch(bar) { baz(); }LF// FooLF// BarLFfinally { biz(); }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:39 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.CSharpComment;[// Foo]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.CSharpComment;[// Bar]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Keyword;[finally]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[biz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..72)::72 - [try { bar(); } catch(bar) { baz(); }LF// FooLF// BarLFfinally { biz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..72)::72 - [try { bar(); } catch(bar) { baz(); }LF// FooLF// BarLFfinally { biz(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[bar]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + NewLine;[LF]; + CSharpComment;[// Foo]; + NewLine;[LF]; + CSharpComment;[// Bar]; + NewLine;[LF]; + Keyword;[finally]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[biz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenDoAndWhileClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenDoAndWhileClause.stree.txt index 2882f0ab4..34203c8a1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenDoAndWhileClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenDoAndWhileClause.stree.txt @@ -1,26 +1,28 @@ -Statement block - Gen - 51 - (0:0,0) - Code span - Gen - [do { var foo = bar; }LF// FooLF// BarLFwhile(true);] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:24 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.CSharpComment;[// Foo]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.CSharpComment;[// Bar]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Keyword;[while]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; +CSharpCodeBlock - [0..51)::51 - [do { var foo = bar; }LF// FooLF// BarLFwhile(true);] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..51)::51 - [do { var foo = bar; }LF// FooLF// BarLFwhile(true);] - Gen - SpanEditHandler;Accepts:None + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + NewLine;[LF]; + CSharpComment;[// Foo]; + NewLine;[LF]; + CSharpComment;[// Bar]; + NewLine;[LF]; + Keyword;[while]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Semicolon;[;]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenElseIfAndElseClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenElseIfAndElseClause.stree.txt index 0fc2eef2b..9e4a455d6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenElseIfAndElseClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenElseIfAndElseClause.stree.txt @@ -1,46 +1,48 @@ -Statement block - Gen - 75 - (0:0,0) - Code span - Gen - [if(foo) { bar(); } else if(bar) { baz(); }LF// FooLF// BarLFelse { biz(); }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:44 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.CSharpComment;[// Foo]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.CSharpComment;[// Bar]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[biz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..75)::75 - [if(foo) { bar(); } else if(bar) { baz(); }LF// FooLF// BarLFelse { biz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..75)::75 - [if(foo) { bar(); } else if(bar) { baz(); }LF// FooLF// BarLFelse { biz(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[bar]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + NewLine;[LF]; + CSharpComment;[// Foo]; + NewLine;[LF]; + CSharpComment;[// Bar]; + NewLine;[LF]; + Keyword;[else]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[biz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenIfAndElseClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenIfAndElseClause.stree.txt index ab73bc444..b5623098d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenIfAndElseClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenIfAndElseClause.stree.txt @@ -1,30 +1,32 @@ -Statement block - Gen - 51 - (0:0,0) - Code span - Gen - [if(foo) { bar(); }LF// FooLF// BarLFelse { baz(); }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:28 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.CSharpComment;[// Foo]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.CSharpComment;[// Bar]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..51)::51 - [if(foo) { bar(); }LF// FooLF// BarLFelse { baz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..51)::51 - [if(foo) { bar(); }LF// FooLF// BarLFelse { baz(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + NewLine;[LF]; + CSharpComment;[// Foo]; + NewLine;[LF]; + CSharpComment;[// Bar]; + NewLine;[LF]; + Keyword;[else]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenIfAndElseIfClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenIfAndElseIfClause.stree.txt index a151fa562..3743f8609 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenIfAndElseIfClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenIfAndElseIfClause.stree.txt @@ -1,35 +1,37 @@ -Statement block - Gen - 59 - (0:0,0) - Code span - Gen - [if(foo) { bar(); }LF// FooLF// BarLFelse if(bar) { baz(); }] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:33 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.CSharpComment;[// Foo]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.CSharpComment;[// Bar]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..59)::59 - [if(foo) { bar(); }LF// FooLF// BarLFelse if(bar) { baz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..59)::59 - [if(foo) { bar(); }LF// FooLF// BarLFelse if(bar) { baz(); }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + NewLine;[LF]; + CSharpComment;[// Foo]; + NewLine;[LF]; + CSharpComment;[// Bar]; + NewLine;[LF]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[bar]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenTryAndCatchClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenTryAndCatchClause.stree.txt index 51faa5f9e..efec2a574 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenTryAndCatchClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenTryAndCatchClause.stree.txt @@ -1,30 +1,32 @@ -Statement block - Gen - 53 - (0:0,0) - Code span - Gen - [try { bar(); }LF// FooLF// BarLFcatch(bar) { baz(); }] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:28 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.CSharpComment;[// Foo]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.CSharpComment;[// Bar]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..53)::53 - [try { bar(); }LF// FooLF// BarLFcatch(bar) { baz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..53)::53 - [try { bar(); }LF// FooLF// BarLFcatch(bar) { baz(); }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + NewLine;[LF]; + CSharpComment;[// Foo]; + NewLine;[LF]; + CSharpComment;[// Bar]; + NewLine;[LF]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[bar]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenTryAndFinallyClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenTryAndFinallyClause.stree.txt index 1bdb46e8d..ab272ae2f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenTryAndFinallyClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsLineCommentBetweenTryAndFinallyClause.stree.txt @@ -1,27 +1,29 @@ -Statement block - Gen - 50 - (0:0,0) - Code span - Gen - [try { bar(); }LF// FooLF// BarLFfinally { baz(); }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:25 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.CSharpComment;[// Foo]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.CSharpComment;[// Bar]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Keyword;[finally]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..50)::50 - [try { bar(); }LF// FooLF// BarLFfinally { baz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..50)::50 - [try { bar(); }LF// FooLF// BarLFfinally { baz(); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + NewLine;[LF]; + CSharpComment;[// Foo]; + NewLine;[LF]; + CSharpComment;[// Bar]; + NewLine;[LF]; + Keyword;[finally]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsMarkupWithinAdditionalCatchClauses.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsMarkupWithinAdditionalCatchClauses.stree.txt index f8e061509..ba3619a37 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsMarkupWithinAdditionalCatchClauses.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsMarkupWithinAdditionalCatchClauses.stree.txt @@ -1,100 +1,102 @@ -Statement block - Gen - 141 - (0:0,0) - Code span - Gen - [try { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } } catch(Foo Bar Baz) {] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:78 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Baz]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Baz]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Baz]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 12 - (128:0,128) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (128:0,128) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 3 - (129:0,129) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (129:0,129) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (132:0,132) - Tokens:1 - SyntaxKind.Text;[Foo]; - Tag block - Gen - 4 - (135:0,135) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (135:0,135) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (139:0,139) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [}] - SpanEditHandler;Accepts:Any - (140:0,140) - Tokens:1 - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..141)::141 - [try { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } } catch(Foo Bar Baz) {

    Foo

    }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..128)::128 - [try { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } } catch(Foo Bar Baz) {] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Foo]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Identifier;[Baz]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Foo]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Identifier;[Baz]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Foo]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Identifier;[Baz]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + MarkupBlock - [128..140)::12 + MarkupTextLiteral - [128..129)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [129..132)::3 - [

    ] + MarkupTextLiteral - [129..132)::3 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [132..135)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTagBlock - [135..139)::4 - [

    ] + MarkupTextLiteral - [135..139)::4 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [139..140)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [140..141)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsMarkupWithinCatchClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsMarkupWithinCatchClause.stree.txt index f2a74e5ca..e7083ce8a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsMarkupWithinCatchClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsMarkupWithinCatchClause.stree.txt @@ -1,50 +1,52 @@ -Statement block - Gen - 59 - (0:0,0) - Code span - Gen - [try { var foo = new { } } catch(Foo Bar Baz) {] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:28 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Baz]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 12 - (46:0,46) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (46:0,46) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 3 - (47:0,47) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (47:0,47) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (50:0,50) - Tokens:1 - SyntaxKind.Text;[Foo]; - Tag block - Gen - 4 - (53:0,53) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (53:0,53) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (57:0,57) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [}] - SpanEditHandler;Accepts:Any - (58:0,58) - Tokens:1 - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..59)::59 - [try { var foo = new { } } catch(Foo Bar Baz) {

    Foo

    }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..46)::46 - [try { var foo = new { } } catch(Foo Bar Baz) {] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Foo]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Identifier;[Baz]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + MarkupBlock - [46..58)::12 + MarkupTextLiteral - [46..47)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [47..50)::3 - [

    ] + MarkupTextLiteral - [47..50)::3 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [50..53)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTagBlock - [53..57)::4 - [

    ] + MarkupTextLiteral - [53..57)::4 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [57..58)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [58..59)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsMarkupWithinFinallyClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsMarkupWithinFinallyClause.stree.txt index 4e7e1826a..eff329eb3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsMarkupWithinFinallyClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsMarkupWithinFinallyClause.stree.txt @@ -1,43 +1,45 @@ -Statement block - Gen - 48 - (0:0,0) - Code span - Gen - [try { var foo = new { } } finally {] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:21 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[finally]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 12 - (35:0,35) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 3 - (36:0,36) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (36:0,36) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (39:0,39) - Tokens:1 - SyntaxKind.Text;[Foo]; - Tag block - Gen - 4 - (42:0,42) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (42:0,42) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (46:0,46) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [}] - SpanEditHandler;Accepts:None - (47:0,47) - Tokens:1 - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..48)::48 - [try { var foo = new { } } finally {

    Foo

    }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..35)::35 - [try { var foo = new { } } finally {] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[finally]; + Whitespace;[ ]; + LeftBrace;[{]; + MarkupBlock - [35..47)::12 + MarkupTextLiteral - [35..36)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [36..39)::3 - [

    ] + MarkupTextLiteral - [36..39)::3 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [39..42)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTagBlock - [42..46)::4 - [

    ] + MarkupTextLiteral - [42..46)::4 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [46..47)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [47..48)::1 - [}] - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsMarkupWithinTryClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsMarkupWithinTryClause.stree.txt index 83fa9cdbc..48537be73 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsMarkupWithinTryClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsMarkupWithinTryClause.stree.txt @@ -1,25 +1,27 @@ -Statement block - Gen - 18 - (0:0,0) - Code span - Gen - [try {] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 12 - (5:0,5) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 3 - (6:0,6) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (6:0,6) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[Foo]; - Tag block - Gen - 4 - (12:0,12) - Markup span - Gen - [

    ] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [}] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..18)::18 - [try {

    Foo

    }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..5)::5 - [try {] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + MarkupBlock - [5..17)::12 + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [6..9)::3 - [

    ] + MarkupTextLiteral - [6..9)::3 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [9..12)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTagBlock - [12..16)::4 - [

    ] + MarkupTextLiteral - [12..16)::4 - [

    ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [17..18)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenCatchAndFinallyClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenCatchAndFinallyClause.stree.txt index 0c589bfbe..96db432ba 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenCatchAndFinallyClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenCatchAndFinallyClause.stree.txt @@ -1,63 +1,55 @@ -Statement block - Gen - 75 - (0:0,0) - Code span - Gen - [try { bar(); } catch(bar) { baz(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:25 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - Comment block - Gen - 9 - (37:0,37) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (37:0,37) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (38:0,38) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Comment span - Gen - [ Foo ] - SpanEditHandler;Accepts:Any - (39:0,39) - Tokens:1 - SyntaxKind.RazorCommentLiteral;[ Foo ]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (44:0,44) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (45:0,45) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Any - (46:0,46) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Comment block - Gen - 9 - (47:0,47) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (47:0,47) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (48:0,48) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Comment span - Gen - [ Bar ] - SpanEditHandler;Accepts:Any - (49:0,49) - Tokens:1 - SyntaxKind.RazorCommentLiteral;[ Bar ]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (54:0,54) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (55:0,55) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - Code span - Gen - [ finally { biz(); }] - SpanEditHandler;Accepts:None - (56:0,56) - Tokens:11 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[finally]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[biz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..75)::75 - [try { bar(); } catch(bar) { baz(); } @* Foo *@ @* Bar *@ finally { biz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..37)::37 - [try { bar(); } catch(bar) { baz(); } ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[bar]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RazorComment - [37..46)::9 + RazorCommentTransition;[@]; + RazorCommentStar;[*]; + RazorCommentLiteral;[ Foo ]; + RazorCommentStar;[*]; + RazorCommentTransition;[@]; + CSharpStatementLiteral - [46..47)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RazorComment - [47..56)::9 + RazorCommentTransition;[@]; + RazorCommentStar;[*]; + RazorCommentLiteral;[ Bar ]; + RazorCommentStar;[*]; + RazorCommentTransition;[@]; + CSharpStatementLiteral - [56..75)::19 - [ finally { biz(); }] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Keyword;[finally]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[biz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenDoAndWhileClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenDoAndWhileClause.stree.txt index 3c23c80fa..e65626691 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenDoAndWhileClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenDoAndWhileClause.stree.txt @@ -1,48 +1,40 @@ -Statement block - Gen - 54 - (0:0,0) - Code span - Gen - [do { var foo = bar; } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:15 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - Comment block - Gen - 9 - (22:0,22) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (22:0,22) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (23:0,23) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Comment span - Gen - [ Foo ] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1 - SyntaxKind.RazorCommentLiteral;[ Foo ]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (29:0,29) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (30:0,30) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Comment block - Gen - 9 - (32:0,32) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (32:0,32) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (33:0,33) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Comment span - Gen - [ Bar ] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:1 - SyntaxKind.RazorCommentLiteral;[ Bar ]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (39:0,39) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - Code span - Gen - [ while(true);] - SpanEditHandler;Accepts:None - (41:0,41) - Tokens:6 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; +CSharpCodeBlock - [0..54)::54 - [do { var foo = bar; } @* Foo *@ @* Bar *@ while(true);] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..22)::22 - [do { var foo = bar; } ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RazorComment - [22..31)::9 + RazorCommentTransition;[@]; + RazorCommentStar;[*]; + RazorCommentLiteral;[ Foo ]; + RazorCommentStar;[*]; + RazorCommentTransition;[@]; + CSharpStatementLiteral - [31..32)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RazorComment - [32..41)::9 + RazorCommentTransition;[@]; + RazorCommentStar;[*]; + RazorCommentLiteral;[ Bar ]; + RazorCommentStar;[*]; + RazorCommentTransition;[@]; + CSharpStatementLiteral - [41..54)::13 - [ while(true);] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Keyword;[while]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Semicolon;[;]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenElseIfAndElseClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenElseIfAndElseClause.stree.txt index b6367f8a3..88170fab2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenElseIfAndElseClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenElseIfAndElseClause.stree.txt @@ -1,68 +1,60 @@ -Statement block - Gen - 78 - (0:0,0) - Code span - Gen - [if(foo) { bar(); } else if(bar) { baz(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:30 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - Comment block - Gen - 9 - (43:0,43) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (43:0,43) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (44:0,44) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Comment span - Gen - [ Foo ] - SpanEditHandler;Accepts:Any - (45:0,45) - Tokens:1 - SyntaxKind.RazorCommentLiteral;[ Foo ]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (50:0,50) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (51:0,51) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Any - (52:0,52) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Comment block - Gen - 9 - (53:0,53) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (53:0,53) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (54:0,54) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Comment span - Gen - [ Bar ] - SpanEditHandler;Accepts:Any - (55:0,55) - Tokens:1 - SyntaxKind.RazorCommentLiteral;[ Bar ]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (60:0,60) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (61:0,61) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - Code span - Gen - [ else { baz(); }] - SpanEditHandler;Accepts:None - (62:0,62) - Tokens:11 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..78)::78 - [if(foo) { bar(); } else if(bar) { baz(); } @* Foo *@ @* Bar *@ else { baz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..43)::43 - [if(foo) { bar(); } else if(bar) { baz(); } ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[bar]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RazorComment - [43..52)::9 + RazorCommentTransition;[@]; + RazorCommentStar;[*]; + RazorCommentLiteral;[ Foo ]; + RazorCommentStar;[*]; + RazorCommentTransition;[@]; + CSharpStatementLiteral - [52..53)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RazorComment - [53..62)::9 + RazorCommentTransition;[@]; + RazorCommentStar;[*]; + RazorCommentLiteral;[ Bar ]; + RazorCommentStar;[*]; + RazorCommentTransition;[@]; + CSharpStatementLiteral - [62..78)::16 - [ else { baz(); }] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenIfAndElseClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenIfAndElseClause.stree.txt index 24f5021c5..db3fa8474 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenIfAndElseClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenIfAndElseClause.stree.txt @@ -1,52 +1,44 @@ -Statement block - Gen - 54 - (0:0,0) - Code span - Gen - [if(foo) { bar(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:14 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - Comment block - Gen - 9 - (19:0,19) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (19:0,19) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Comment span - Gen - [ Foo ] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.RazorCommentLiteral;[ Foo ]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (26:0,26) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (27:0,27) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Any - (28:0,28) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Comment block - Gen - 9 - (29:0,29) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (29:0,29) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (30:0,30) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Comment span - Gen - [ Bar ] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.RazorCommentLiteral;[ Bar ]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (36:0,36) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (37:0,37) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - Code span - Gen - [ else { baz(); }] - SpanEditHandler;Accepts:None - (38:0,38) - Tokens:11 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..54)::54 - [if(foo) { bar(); } @* Foo *@ @* Bar *@ else { baz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..19)::19 - [if(foo) { bar(); } ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RazorComment - [19..28)::9 + RazorCommentTransition;[@]; + RazorCommentStar;[*]; + RazorCommentLiteral;[ Foo ]; + RazorCommentStar;[*]; + RazorCommentTransition;[@]; + CSharpStatementLiteral - [28..29)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RazorComment - [29..38)::9 + RazorCommentTransition;[@]; + RazorCommentStar;[*]; + RazorCommentLiteral;[ Bar ]; + RazorCommentStar;[*]; + RazorCommentTransition;[@]; + CSharpStatementLiteral - [38..54)::16 - [ else { baz(); }] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenIfAndElseIfClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenIfAndElseIfClause.stree.txt index 868fb9cd8..a8f9a1c46 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenIfAndElseIfClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenIfAndElseIfClause.stree.txt @@ -1,57 +1,49 @@ -Statement block - Gen - 62 - (0:0,0) - Code span - Gen - [if(foo) { bar(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:14 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - Comment block - Gen - 9 - (19:0,19) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (19:0,19) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Comment span - Gen - [ Foo ] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.RazorCommentLiteral;[ Foo ]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (26:0,26) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (27:0,27) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Any - (28:0,28) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Comment block - Gen - 9 - (29:0,29) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (29:0,29) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (30:0,30) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Comment span - Gen - [ Bar ] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.RazorCommentLiteral;[ Bar ]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (36:0,36) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (37:0,37) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - Code span - Gen - [ else if(bar) { baz(); }] - SpanEditHandler;Accepts:Any - (38:0,38) - Tokens:16 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[else]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..62)::62 - [if(foo) { bar(); } @* Foo *@ @* Bar *@ else if(bar) { baz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..19)::19 - [if(foo) { bar(); } ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RazorComment - [19..28)::9 + RazorCommentTransition;[@]; + RazorCommentStar;[*]; + RazorCommentLiteral;[ Foo ]; + RazorCommentStar;[*]; + RazorCommentTransition;[@]; + CSharpStatementLiteral - [28..29)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RazorComment - [29..38)::9 + RazorCommentTransition;[@]; + RazorCommentStar;[*]; + RazorCommentLiteral;[ Bar ]; + RazorCommentStar;[*]; + RazorCommentTransition;[@]; + CSharpStatementLiteral - [38..62)::24 - [ else if(bar) { baz(); }] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Keyword;[else]; + Whitespace;[ ]; + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[bar]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenTryAndCatchClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenTryAndCatchClause.stree.txt index 465652cc2..fca5a0a5b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenTryAndCatchClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenTryAndCatchClause.stree.txt @@ -1,51 +1,43 @@ -Statement block - Gen - 55 - (0:0,0) - Code span - Gen - [try { bar(); }] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:10 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - Comment block - Gen - 9 - (14:0,14) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (14:0,14) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Comment span - Gen - [ Foo ] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.RazorCommentLiteral;[ Foo ]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (22:0,22) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Comment block - Gen - 9 - (24:0,24) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (25:0,25) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Comment span - Gen - [ Bar ] - SpanEditHandler;Accepts:Any - (26:0,26) - Tokens:1 - SyntaxKind.RazorCommentLiteral;[ Bar ]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (32:0,32) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - Code span - Gen - [ catch(bar) { baz(); }] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:14 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..55)::55 - [try { bar(); }@* Foo *@ @* Bar *@ catch(bar) { baz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..14)::14 - [try { bar(); }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + RazorComment - [14..23)::9 + RazorCommentTransition;[@]; + RazorCommentStar;[*]; + RazorCommentLiteral;[ Foo ]; + RazorCommentStar;[*]; + RazorCommentTransition;[@]; + CSharpStatementLiteral - [23..24)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RazorComment - [24..33)::9 + RazorCommentTransition;[@]; + RazorCommentStar;[*]; + RazorCommentLiteral;[ Bar ]; + RazorCommentStar;[*]; + RazorCommentTransition;[@]; + CSharpStatementLiteral - [33..55)::22 - [ catch(bar) { baz(); }] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[bar]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[baz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenTryAndFinallyClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenTryAndFinallyClause.stree.txt index 82faa128c..9b31e15fa 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenTryAndFinallyClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenTryAndFinallyClause.stree.txt @@ -1,49 +1,41 @@ -Statement block - Gen - 53 - (0:0,0) - Code span - Gen - [try { bar(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:11 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - Comment block - Gen - 9 - (15:0,15) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Comment span - Gen - [ Foo ] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.RazorCommentLiteral;[ Foo ]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (22:0,22) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (23:0,23) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Comment block - Gen - 9 - (25:0,25) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (25:0,25) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (26:0,26) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Comment span - Gen - [ Bar ] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:1 - SyntaxKind.RazorCommentLiteral;[ Bar ]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (32:0,32) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (33:0,33) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - Code span - Gen - [ finally { biz(); }] - SpanEditHandler;Accepts:None - (34:0,34) - Tokens:11 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[finally]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[biz]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..53)::53 - [try { bar(); } @* Foo *@ @* Bar *@ finally { biz(); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..15)::15 - [try { bar(); } ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RazorComment - [15..24)::9 + RazorCommentTransition;[@]; + RazorCommentStar;[*]; + RazorCommentLiteral;[ Foo ]; + RazorCommentStar;[*]; + RazorCommentTransition;[@]; + CSharpStatementLiteral - [24..25)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RazorComment - [25..34)::9 + RazorCommentTransition;[@]; + RazorCommentStar;[*]; + RazorCommentLiteral;[ Bar ]; + RazorCommentStar;[*]; + RazorCommentTransition;[@]; + CSharpStatementLiteral - [34..53)::19 - [ finally { biz(); }] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Keyword;[finally]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[biz]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsTryStatementWithFinallyClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsTryStatementWithFinallyClause.stree.txt index 8ae4de426..cb95bfbf5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsTryStatementWithFinallyClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsTryStatementWithFinallyClause.stree.txt @@ -1,37 +1,39 @@ -Statement block - Gen - 55 - (0:0,0) - Code span - Gen - [try { var foo = new { } } finally { var foo = new { } }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:35 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[finally]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..55)::55 - [try { var foo = new { } } finally { var foo = new { } }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..55)::55 - [try { var foo = new { } } finally { var foo = new { } }] - Gen - SpanEditHandler;Accepts:None + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[finally]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsTryStatementWithMultipleCatchClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsTryStatementWithMultipleCatchClause.stree.txt index 46447b2fe..15d720a6d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsTryStatementWithMultipleCatchClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsTryStatementWithMultipleCatchClause.stree.txt @@ -1,94 +1,96 @@ -Statement block - Gen - 148 - (0:0,0) - Code span - Gen - [try { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } }] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:92 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Baz]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Baz]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Baz]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..148)::148 - [try { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..148)::148 - [try { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Foo]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Identifier;[Baz]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Foo]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Identifier;[Baz]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Foo]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Identifier;[Baz]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsTryStatementWithNoAdditionalClauses.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsTryStatementWithNoAdditionalClauses.stree.txt index 8a1d73994..f31f9f22a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsTryStatementWithNoAdditionalClauses.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsTryStatementWithNoAdditionalClauses.stree.txt @@ -1,19 +1,21 @@ -Statement block - Gen - 25 - (0:0,0) - Code span - Gen - [try { var foo = new { } }] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:17 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..25)::25 - [try { var foo = new { } }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..25)::25 - [try { var foo = new { } }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsTryStatementWithOneCatchClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsTryStatementWithOneCatchClause.stree.txt index 54e153018..ff0710153 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsTryStatementWithOneCatchClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsTryStatementWithOneCatchClause.stree.txt @@ -1,44 +1,46 @@ -Statement block - Gen - 66 - (0:0,0) - Code span - Gen - [try { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } }] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:42 - SyntaxKind.Keyword;[try]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[catch]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Baz]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..66)::66 - [try { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..66)::66 - [try { var foo = new { } } catch(Foo Bar Baz) { var foo = new { } }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[try]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[catch]; + LeftParenthesis;[(]; + Identifier;[Foo]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Identifier;[Baz]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsUsingsNestedWithinOtherBlocks.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsUsingsNestedWithinOtherBlocks.stree.txt index 429b126cb..867e696b2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsUsingsNestedWithinOtherBlocks.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsUsingsNestedWithinOtherBlocks.stree.txt @@ -1,55 +1,57 @@ -Statement block - Gen - 96 - (0:0,0) - Code span - Gen - [if(foo) { using(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); } }] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:53 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[using]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[0]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[i]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[new]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["baz"]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"foo } bar"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..96)::96 - [if(foo) { using(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); } }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..96)::96 - [if(foo) { using(int i = 0; i < 10; new Foo { Bar = "baz" }) { Debug.WriteLine(@"foo } bar"); } }] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Keyword;[using]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + IntegerLiteral;[0]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[i]; + Whitespace;[ ]; + LessThan;[<]; + Whitespace;[ ]; + IntegerLiteral;[10]; + Semicolon;[;]; + Whitespace;[ ]; + Keyword;[new]; + Whitespace;[ ]; + Identifier;[Foo]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + StringLiteral;["baz"]; + Whitespace;[ ]; + RightBrace;[}]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"foo } bar"]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesBlockCommentAtEndOfFile.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesBlockCommentAtEndOfFile.stree.txt index ea93ea30d..43cd0d98f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesBlockCommentAtEndOfFile.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesBlockCommentAtEndOfFile.stree.txt @@ -1,16 +1,18 @@ -Statement block - Gen - 38 - (0:0,0) - Code span - Gen - [foreach(var f in Foo) { /* foo bar baz] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:14 - SyntaxKind.Keyword;[foreach]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[f]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[in]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[/* foo bar baz];RZ1001(24:0,24 [1] ) +CSharpCodeBlock - [0..38)::38 - [foreach(var f in Foo) { /* foo bar baz] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..38)::38 - [foreach(var f in Foo) { /* foo bar baz] - Gen - SpanEditHandler;Accepts:Any + Keyword;[foreach]; + LeftParenthesis;[(]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[f]; + Whitespace;[ ]; + Keyword;[in]; + Whitespace;[ ]; + Identifier;[Foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + CSharpComment;[/* foo bar baz];RZ1001(24:0,24 [1] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesParenBalancingAtEOF.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesParenBalancingAtEOF.stree.txt index 9f50f9589..1b96a7930 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesParenBalancingAtEOF.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesParenBalancingAtEOF.stree.txt @@ -1,11 +1,14 @@ -Expression block - Gen - 15 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [Html.En(code()] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (1:0,1) - Tokens:7 - SyntaxKind.Identifier;[Html]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[En]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[code]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; +CSharpCodeBlock - [0..15)::15 - [@Html.En(code()] + CSharpImplicitExpression - [0..15)::15 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [1..15)::14 + CSharpCodeBlock - [1..15)::14 + CSharpExpressionLiteral - [1..15)::14 - [Html.En(code()] - Gen - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 + Identifier;[Html]; + Dot;[.]; + Identifier;[En]; + LeftParenthesis;[(]; + Identifier;[code]; + LeftParenthesis;[(]; + RightParenthesis;[)]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesSingleLineCommentAtEndOfFile.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesSingleLineCommentAtEndOfFile.stree.txt index 615163907..51347e9a0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesSingleLineCommentAtEndOfFile.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesSingleLineCommentAtEndOfFile.stree.txt @@ -1,16 +1,18 @@ -Statement block - Gen - 38 - (0:0,0) - Code span - Gen - [foreach(var f in Foo) { // foo bar baz] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:14 - SyntaxKind.Keyword;[foreach]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[f]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[in]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CSharpComment;[// foo bar baz]; +CSharpCodeBlock - [0..38)::38 - [foreach(var f in Foo) { // foo bar baz] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..38)::38 - [foreach(var f in Foo) { // foo bar baz] - Gen - SpanEditHandler;Accepts:Any + Keyword;[foreach]; + LeftParenthesis;[(]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[f]; + Whitespace;[ ]; + Keyword;[in]; + Whitespace;[ ]; + Identifier;[Foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + CSharpComment;[// foo bar baz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesSingleSlashAtEndOfFile.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesSingleSlashAtEndOfFile.stree.txt index f2643653c..5fbe10803 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesSingleSlashAtEndOfFile.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesSingleSlashAtEndOfFile.stree.txt @@ -1,22 +1,24 @@ -Statement block - Gen - 37 - (0:0,0) - Code span - Gen - [foreach(var f in Foo) { / foo bar baz] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:20 - SyntaxKind.Keyword;[foreach]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[f]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[in]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Slash;[/]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[baz]; +CSharpCodeBlock - [0..37)::37 - [foreach(var f in Foo) { / foo bar baz] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..37)::37 - [foreach(var f in Foo) { / foo bar baz] - Gen - SpanEditHandler;Accepts:Any + Keyword;[foreach]; + LeftParenthesis;[(]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[f]; + Whitespace;[ ]; + Keyword;[in]; + Whitespace;[ ]; + Identifier;[Foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Slash;[/]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Identifier;[bar]; + Whitespace;[ ]; + Identifier;[baz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesUsingKeywordAtEOFAndOutputsFileCodeBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesUsingKeywordAtEOFAndOutputsFileCodeBlock.stree.txt index b0fd67916..0880fd7ca 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesUsingKeywordAtEOFAndOutputsFileCodeBlock.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TerminatesUsingKeywordAtEOFAndOutputsFileCodeBlock.stree.txt @@ -1,4 +1,4 @@ -Statement block - Gen - 25 - (0:0,0) - Code span - Gen - [using ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:2 - SyntaxKind.Keyword;[using]; - SyntaxKind.Whitespace;[ ]; +CSharpCodeBlock - [0..25)::25 - [using ] + CSharpStatementLiteral - [0..25)::25 - [using ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[using]; + Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ThenBalancesBracesIfFirstIdentifierIsLockKeyword.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ThenBalancesBracesIfFirstIdentifierIsLockKeyword.stree.txt index 7d68d60c1..31249b0f2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ThenBalancesBracesIfFirstIdentifierIsLockKeyword.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ThenBalancesBracesIfFirstIdentifierIsLockKeyword.stree.txt @@ -1,18 +1,20 @@ -Statement block - Gen - 44 - (0:0,0) - Code span - Gen - [lock(foo) { Debug.WriteLine(@"foo } bar"); }] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:16 - SyntaxKind.Keyword;[lock]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Debug]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WriteLine]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.StringLiteral;[@"foo } bar"]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..44)::44 - [lock(foo) { Debug.WriteLine(@"foo } bar"); }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..44)::44 - [lock(foo) { Debug.WriteLine(@"foo } bar"); }] - Gen - SpanEditHandler;Accepts:None + Keyword;[lock]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[Debug]; + Dot;[.]; + Identifier;[WriteLine]; + LeftParenthesis;[(]; + StringLiteral;[@"foo } bar"]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TreatsAtSignsAfterFirstPairAsPartOfCSharpStatement.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TreatsAtSignsAfterFirstPairAsPartOfCSharpStatement.stree.txt index 83909c4da..87ffa57e5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TreatsAtSignsAfterFirstPairAsPartOfCSharpStatement.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TreatsAtSignsAfterFirstPairAsPartOfCSharpStatement.stree.txt @@ -1,22 +1,24 @@ -Statement block - Gen - 27 - (0:0,0) - Code span - Gen - [if(foo) { ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:7 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [@] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [@@@class.Foo() }] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:10 - SyntaxKind.Transition;[@]; - SyntaxKind.Transition;[@]; - SyntaxKind.Transition;[@]; - SyntaxKind.Keyword;[class]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..27)::27 - [if(foo) { @@@@class.Foo() }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..10)::10 - [if(foo) { ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + CSharpEphemeralTextLiteral - [10..11)::1 - [@] - Gen - SpanEditHandler;Accepts:Any + Transition;[@]; + CSharpStatementLiteral - [11..27)::16 - [@@@class.Foo() }] - Gen - SpanEditHandler;Accepts:Any + Transition;[@]; + Transition;[@]; + Transition;[@]; + Keyword;[class]; + Dot;[.]; + Identifier;[Foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TreatsDoubleAtSignAsEscapeSequenceIfAtStatementStart.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TreatsDoubleAtSignAsEscapeSequenceIfAtStatementStart.stree.txt index cfd3620a0..a2b3f220c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TreatsDoubleAtSignAsEscapeSequenceIfAtStatementStart.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/TreatsDoubleAtSignAsEscapeSequenceIfAtStatementStart.stree.txt @@ -1,20 +1,22 @@ -Statement block - Gen - 25 - (0:0,0) - Code span - Gen - [if(foo) { ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:7 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [@] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [@class.Foo() }] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:8 - SyntaxKind.Transition;[@]; - SyntaxKind.Keyword;[class]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..25)::25 - [if(foo) { @@class.Foo() }] + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementLiteral - [0..10)::10 - [if(foo) { ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Identifier;[foo]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + CSharpEphemeralTextLiteral - [10..11)::1 - [@] - Gen - SpanEditHandler;Accepts:Any + Transition;[@]; + CSharpStatementLiteral - [11..25)::14 - [@class.Foo() }] - Gen - SpanEditHandler;Accepts:Any + Transition;[@]; + Keyword;[class]; + Dot;[.]; + Identifier;[Foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Whitespace;[ ]; + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionAtBeginningOfAttributeValue_DoesNotThrow.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionAtBeginningOfAttributeValue_DoesNotThrow.stree.txt index ce9722564..b7ffda307 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionAtBeginningOfAttributeValue_DoesNotThrow.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionAtBeginningOfAttributeValue_DoesNotThrow.stree.txt @@ -1,31 +1,40 @@ -Statement block - Gen - 22 - (0:0,0) - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 20 - (1:0,1) - Tag block - Gen - 20 - (1:0,1) - Markup span - Gen - [ - 12 - (6:0,6) - Markup span - Gen - [ foo='] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 2 - (12:0,12) - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [def] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.Text;[def]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (18:0,18) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1 - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..22)::22 - [{}] + CSharpStatement - [0..22)::22 + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementBody - [0..22)::22 + RazorMetaCode - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [1..21)::20 + MarkupBlock - [1..21)::20 + MarkupTagBlock - [1..21)::20 - [] + MarkupTextLiteral - [1..6)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[span]; + MarkupAttributeBlock - [6..18)::12 - [ foo='@@def'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..10)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [12..17)::5 + MarkupBlock - [12..14)::2 + MarkupTextLiteral - [12..13)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupEphemeralTextLiteral - [13..14)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupLiteralAttributeValue - [14..17)::3 - [def] + MarkupTextLiteral - [14..17)::3 - [def] - Gen - SpanEditHandler;Accepts:Any + Text;[def]; + MarkupTextLiteral - [17..18)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [18..21)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [21..21)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [21..22)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionAtEndOfAttributeValue_DoesNotThrow.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionAtEndOfAttributeValue_DoesNotThrow.stree.txt index 6fdd67310..277f2e629 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionAtEndOfAttributeValue_DoesNotThrow.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionAtEndOfAttributeValue_DoesNotThrow.stree.txt @@ -1,31 +1,40 @@ -Statement block - Gen - 22 - (0:0,0) - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 20 - (1:0,1) - Tag block - Gen - 20 - (1:0,1) - Markup span - Gen - [ - 12 - (6:0,6) - Markup span - Gen - [ foo='] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [abc] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.Text;[abc]; - Markup block - Gen - 2 - (15:0,15) - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (18:0,18) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1 - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..22)::22 - [{}] + CSharpStatement - [0..22)::22 + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementBody - [0..22)::22 + RazorMetaCode - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [1..21)::20 + MarkupBlock - [1..21)::20 + MarkupTagBlock - [1..21)::20 - [] + MarkupTextLiteral - [1..6)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[span]; + MarkupAttributeBlock - [6..18)::12 - [ foo='abc@@'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..10)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [12..17)::5 + MarkupLiteralAttributeValue - [12..15)::3 - [abc] + MarkupTextLiteral - [12..15)::3 - [abc] - Gen - SpanEditHandler;Accepts:Any + Text;[abc]; + MarkupBlock - [15..17)::2 + MarkupTextLiteral - [15..16)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupEphemeralTextLiteral - [16..17)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupTextLiteral - [17..18)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [18..21)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [21..21)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [21..22)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionBetweenAttributeValue_DoesNotThrow.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionBetweenAttributeValue_DoesNotThrow.stree.txt index 028b870a5..196257f35 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionBetweenAttributeValue_DoesNotThrow.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionBetweenAttributeValue_DoesNotThrow.stree.txt @@ -1,35 +1,46 @@ -Statement block - Gen - 27 - (0:0,0) - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 25 - (1:0,1) - Tag block - Gen - 25 - (1:0,1) - Markup span - Gen - [ - 17 - (6:0,6) - Markup span - Gen - [ foo='] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [abc] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.Text;[abc]; - Markup block - Gen - 3 - (15:0,15) - Markup span - Gen - [ @] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (17:0,17) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [ def] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[def]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (23:0,23) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (26:0,26) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (26:0,26) - Tokens:1 - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..27)::27 - [{}] + CSharpStatement - [0..27)::27 + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementBody - [0..27)::27 + RazorMetaCode - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [1..26)::25 + MarkupBlock - [1..26)::25 + MarkupTagBlock - [1..26)::25 - [] + MarkupTextLiteral - [1..6)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[span]; + MarkupAttributeBlock - [6..23)::17 - [ foo='abc @@ def'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..10)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [12..22)::10 + MarkupLiteralAttributeValue - [12..15)::3 - [abc] + MarkupTextLiteral - [12..15)::3 - [abc] - Gen - SpanEditHandler;Accepts:Any + Text;[abc]; + MarkupBlock - [15..18)::3 + MarkupTextLiteral - [15..17)::2 - [ @] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Transition;[@]; + MarkupEphemeralTextLiteral - [17..18)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupLiteralAttributeValue - [18..22)::4 - [ def] + MarkupTextLiteral - [18..19)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [19..22)::3 - [def] - Gen - SpanEditHandler;Accepts:Any + Text;[def]; + MarkupTextLiteral - [22..23)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [23..26)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [26..26)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [26..27)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionInAttributeValue_DoesNotThrow.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionInAttributeValue_DoesNotThrow.stree.txt index b979bc364..38ffb3ab7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionInAttributeValue_DoesNotThrow.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionInAttributeValue_DoesNotThrow.stree.txt @@ -1,29 +1,37 @@ -Statement block - Gen - 19 - (0:0,0) - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 17 - (1:0,1) - Tag block - Gen - 17 - (1:0,1) - Markup span - Gen - [ - 9 - (6:0,6) - Markup span - Gen - [ foo='] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 2 - (12:0,12) - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (18:0,18) - Tokens:1 - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..19)::19 - [{}] + CSharpStatement - [0..19)::19 + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementBody - [0..19)::19 + RazorMetaCode - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [1..18)::17 + MarkupBlock - [1..18)::17 + MarkupTagBlock - [1..18)::17 - [] + MarkupTextLiteral - [1..6)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[span]; + MarkupAttributeBlock - [6..15)::9 - [ foo='@@'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..10)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [12..14)::2 + MarkupBlock - [12..14)::2 + MarkupTextLiteral - [12..13)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupEphemeralTextLiteral - [13..14)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupTextLiteral - [14..15)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [15..18)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [18..18)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [18..19)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionInEmail_DoesNotThrow.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionInEmail_DoesNotThrow.stree.txt index 1d16ff79f..01cbcf602 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionInEmail_DoesNotThrow.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionInEmail_DoesNotThrow.stree.txt @@ -1,42 +1,54 @@ -Statement block - Gen - 44 - (0:0,0) - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 42 - (1:0,1) - Tag block - Gen - 42 - (1:0,1) - Markup span - Gen - [ - 34 - (6:0,6) - Markup span - Gen - [ foo='] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [abc@def.com] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.Text;[abc@def.com]; - Markup span - Gen - [ abc] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[abc]; - Markup block - Gen - 2 - (27:0,27) - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (27:0,27) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (28:0,28) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [def.com] - SpanEditHandler;Accepts:Any - (29:0,29) - Tokens:1 - SyntaxKind.Text;[def.com]; - Markup block - Gen - 3 - (36:0,36) - Markup span - Gen - [ @] - SpanEditHandler;Accepts:None - (36:0,36) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (38:0,38) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (39:0,39) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (43:0,43) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (43:0,43) - Tokens:1 - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..44)::44 - [{}] + CSharpStatement - [0..44)::44 + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementBody - [0..44)::44 + RazorMetaCode - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [1..43)::42 + MarkupBlock - [1..43)::42 + MarkupTagBlock - [1..43)::42 - [] + MarkupTextLiteral - [1..6)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[span]; + MarkupAttributeBlock - [6..40)::34 - [ foo='abc@def.com abc@@def.com @@'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..10)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [12..39)::27 + MarkupLiteralAttributeValue - [12..23)::11 - [abc@def.com] + MarkupTextLiteral - [12..23)::11 - [abc@def.com] - Gen - SpanEditHandler;Accepts:Any + Text;[abc@def.com]; + MarkupLiteralAttributeValue - [23..27)::4 - [ abc] + MarkupTextLiteral - [23..24)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [24..27)::3 - [abc] - Gen - SpanEditHandler;Accepts:Any + Text;[abc]; + MarkupBlock - [27..29)::2 + MarkupTextLiteral - [27..28)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupEphemeralTextLiteral - [28..29)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupLiteralAttributeValue - [29..36)::7 - [def.com] + MarkupTextLiteral - [29..36)::7 - [def.com] - Gen - SpanEditHandler;Accepts:Any + Text;[def.com]; + MarkupBlock - [36..39)::3 + MarkupTextLiteral - [36..38)::2 - [ @] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Transition;[@]; + MarkupEphemeralTextLiteral - [38..39)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupTextLiteral - [39..40)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [40..43)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [43..43)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [43..44)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionInRegex_DoesNotThrow.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionInRegex_DoesNotThrow.stree.txt index 759fea4f4..b98a56dae 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionInRegex_DoesNotThrow.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionInRegex_DoesNotThrow.stree.txt @@ -1,75 +1,85 @@ -Statement block - Gen - 117 - (0:0,0) - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 115 - (1:0,1) - Tag block - Gen - 115 - (1:0,1) - Markup span - Gen - [ - 107 - (6:0,6) - Markup span - Gen - [ foo="] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:14 - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[^]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[a-z0-9]; - SyntaxKind.Bang;[!]; - SyntaxKind.Text;[#$%&]; - SyntaxKind.SingleQuote;[']; - SyntaxKind.Text;[*+\]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Equals;[=]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.Text;[^_`{|}~.-]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.Text;[+]; - Markup block - Gen - 2 - (44:0,44) - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (44:0,44) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (45:0,45) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [[a-z0-9]([a-z0-9-]*[a-z0-9])?\.([a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i] - SpanEditHandler;Accepts:Any - (46:0,46) - Tokens:30 - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[a-z0-9]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.Text;[(]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[a-z0-9-]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.Text;[*]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[a-z0-9]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.Text;[)]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.Text;[\.(]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[a-z0-9]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.Text;[(]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[a-z0-9-]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.Text;[*]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[a-z0-9]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.Text;[)]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.Text;[)*$]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[i]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (112:0,112) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (113:0,113) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (116:0,116) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (116:0,116) - Tokens:1 - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..117)::117 - [{}] + CSharpStatement - [0..117)::117 + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementBody - [0..117)::117 + RazorMetaCode - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [1..116)::115 + MarkupBlock - [1..116)::115 + MarkupTagBlock - [1..116)::115 - [] + MarkupTextLiteral - [1..6)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[span]; + MarkupAttributeBlock - [6..113)::107 - [ foo="/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@@[a-z0-9]([a-z0-9-]*[a-z0-9])?\.([a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i"] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..10)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [12..112)::100 + MarkupLiteralAttributeValue - [12..44)::32 - [/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+] + MarkupTextLiteral - [12..44)::32 - [/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+] - Gen - SpanEditHandler;Accepts:Any + ForwardSlash;[/]; + Text;[^]; + LeftBracket;[[]; + Text;[a-z0-9]; + Bang;[!]; + Text;[#$%&]; + SingleQuote;[']; + Text;[*+\]; + ForwardSlash;[/]; + Equals;[=]; + QuestionMark;[?]; + Text;[^_`{|}~.-]; + RightBracket;[]]; + Text;[+]; + MarkupBlock - [44..46)::2 + MarkupTextLiteral - [44..45)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupEphemeralTextLiteral - [45..46)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupLiteralAttributeValue - [46..112)::66 - [[a-z0-9]([a-z0-9-]*[a-z0-9])?\.([a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i] + MarkupTextLiteral - [46..112)::66 - [[a-z0-9]([a-z0-9-]*[a-z0-9])?\.([a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i] - Gen - SpanEditHandler;Accepts:Any + LeftBracket;[[]; + Text;[a-z0-9]; + RightBracket;[]]; + Text;[(]; + LeftBracket;[[]; + Text;[a-z0-9-]; + RightBracket;[]]; + Text;[*]; + LeftBracket;[[]; + Text;[a-z0-9]; + RightBracket;[]]; + Text;[)]; + QuestionMark;[?]; + Text;[\.(]; + LeftBracket;[[]; + Text;[a-z0-9]; + RightBracket;[]]; + Text;[(]; + LeftBracket;[[]; + Text;[a-z0-9-]; + RightBracket;[]]; + Text;[*]; + LeftBracket;[[]; + Text;[a-z0-9]; + RightBracket;[]]; + Text;[)]; + QuestionMark;[?]; + Text;[)*$]; + ForwardSlash;[/]; + Text;[i]; + MarkupTextLiteral - [112..113)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [113..116)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [116..116)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [116..117)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionWithExpressionBlock_DoesNotThrow.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionWithExpressionBlock_DoesNotThrow.stree.txt index a01eb4ccc..6415ccab3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionWithExpressionBlock_DoesNotThrow.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransitionWithExpressionBlock_DoesNotThrow.stree.txt @@ -1,144 +1,188 @@ -Statement block - Gen - 120 - (0:0,0) - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 118 - (1:0,1) - Tag block - Gen - 118 - (1:0,1) - Markup span - Gen - [ - 15 - (6:0,6) - Markup span - Gen - [ foo='] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 2 - (12:0,12) - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup block - Gen - 6 - (14:0,14) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.Unknown;[]; - Expression block - Gen - 6 - (14:0,14) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (14:0,14) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [(] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1 - SyntaxKind.LeftParenthesis;[(]; - Code span - Gen - [2+3] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:3 - SyntaxKind.IntegerLiteral;[2]; - SyntaxKind.Plus;[+]; - SyntaxKind.IntegerLiteral;[3]; - MetaCode span - Gen - [)] - SpanEditHandler;Accepts:None - (19:0,19) - Tokens:1 - SyntaxKind.RightParenthesis;[)]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 28 - (21:0,21) - Markup span - Gen - [ bar='] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bar]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 6 - (27:0,27) - Expression block - Gen - 6 - (27:0,27) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (27:0,27) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [(] - SpanEditHandler;Accepts:None - (28:0,28) - Tokens:1 - SyntaxKind.LeftParenthesis;[(]; - Code span - Gen - [2+3] - SpanEditHandler;Accepts:Any - (29:0,29) - Tokens:3 - SyntaxKind.IntegerLiteral;[2]; - SyntaxKind.Plus;[+]; - SyntaxKind.IntegerLiteral;[3]; - MetaCode span - Gen - [)] - SpanEditHandler;Accepts:None - (32:0,32) - Tokens:1 - SyntaxKind.RightParenthesis;[)]; - Markup block - Gen - 2 - (33:0,33) - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (33:0,33) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (34:0,34) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup block - Gen - 13 - (35:0,35) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:1 - SyntaxKind.Unknown;[]; - Expression block - Gen - 13 - (35:0,35) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (35:0,35) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (36:0,36) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (48:0,48) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 22 - (49:0,49) - Markup span - Gen - [ baz='] - SpanEditHandler;Accepts:Any - (49:0,49) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[baz]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 13 - (55:0,55) - Expression block - Gen - 13 - (55:0,55) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (55:0,55) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (56:0,56) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup block - Gen - 2 - (68:0,68) - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (68:0,68) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (69:0,69) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (70:0,70) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 23 - (71:0,71) - Markup span - Gen - [ bat='] - SpanEditHandler;Accepts:Any - (71:0,71) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bat]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 13 - (77:0,77) - Expression block - Gen - 13 - (77:0,77) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (77:0,77) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (78:0,78) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup block - Gen - 3 - (90:0,90) - Markup span - Gen - [ @] - SpanEditHandler;Accepts:None - (90:0,90) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (92:0,92) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (93:0,93) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 22 - (94:0,94) - Markup span - Gen - [ zoo='] - SpanEditHandler;Accepts:Any - (94:0,94) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[zoo]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 2 - (100:0,100) - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (100:0,100) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (101:0,101) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup block - Gen - 13 - (102:0,102) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (102:0,102) - Tokens:1 - SyntaxKind.Unknown;[]; - Expression block - Gen - 13 - (102:0,102) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (102:0,102) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (103:0,103) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (115:0,115) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (116:0,116) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (119:0,119) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (119:0,119) - Tokens:1 - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..120)::120 - [{}] + CSharpStatement - [0..120)::120 + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementBody - [0..120)::120 + RazorMetaCode - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [1..119)::118 + MarkupBlock - [1..119)::118 + MarkupTagBlock - [1..119)::118 - [] + MarkupTextLiteral - [1..6)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[span]; + MarkupAttributeBlock - [6..21)::15 - [ foo='@@@(2+3)'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..10)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [12..20)::8 + MarkupBlock - [12..14)::2 + MarkupTextLiteral - [12..13)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupEphemeralTextLiteral - [13..14)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupDynamicAttributeValue - [14..20)::6 - [@(2+3)] + GenericBlock - [14..20)::6 + MarkupTextLiteral - [14..14)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [14..20)::6 + CSharpExplicitExpression - [14..20)::6 + CSharpTransition - [14..15)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpExplicitExpressionBody - [15..20)::5 + RazorMetaCode - [15..16)::1 - Gen - SpanEditHandler;Accepts:None + LeftParenthesis;[(]; + CSharpCodeBlock - [16..19)::3 + CSharpExpressionLiteral - [16..19)::3 - [2+3] - Gen - SpanEditHandler;Accepts:Any + IntegerLiteral;[2]; + Plus;[+]; + IntegerLiteral;[3]; + RazorMetaCode - [19..20)::1 - Gen - SpanEditHandler;Accepts:None + RightParenthesis;[)]; + MarkupTextLiteral - [20..21)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [21..49)::28 - [ bar='@(2+3)@@@DateTime.Now'] + MarkupTextLiteral - [21..22)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [22..25)::3 - [bar] - Gen - SpanEditHandler;Accepts:Any + Text;[bar]; + Equals;[=]; + MarkupTextLiteral - [26..27)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [27..48)::21 + MarkupDynamicAttributeValue - [27..33)::6 - [@(2+3)] + GenericBlock - [27..33)::6 + CSharpCodeBlock - [27..33)::6 + CSharpExplicitExpression - [27..33)::6 + CSharpTransition - [27..28)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpExplicitExpressionBody - [28..33)::5 + RazorMetaCode - [28..29)::1 - Gen - SpanEditHandler;Accepts:None + LeftParenthesis;[(]; + CSharpCodeBlock - [29..32)::3 + CSharpExpressionLiteral - [29..32)::3 - [2+3] - Gen - SpanEditHandler;Accepts:Any + IntegerLiteral;[2]; + Plus;[+]; + IntegerLiteral;[3]; + RazorMetaCode - [32..33)::1 - Gen - SpanEditHandler;Accepts:None + RightParenthesis;[)]; + MarkupBlock - [33..35)::2 + MarkupTextLiteral - [33..34)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupEphemeralTextLiteral - [34..35)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupDynamicAttributeValue - [35..48)::13 - [@DateTime.Now] + GenericBlock - [35..48)::13 + MarkupTextLiteral - [35..35)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [35..48)::13 + CSharpImplicitExpression - [35..48)::13 + CSharpTransition - [35..36)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [36..48)::12 + CSharpCodeBlock - [36..48)::12 + CSharpExpressionLiteral - [36..48)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [48..49)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [49..71)::22 - [ baz='@DateTime.Now@@'] + MarkupTextLiteral - [49..50)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [50..53)::3 - [baz] - Gen - SpanEditHandler;Accepts:Any + Text;[baz]; + Equals;[=]; + MarkupTextLiteral - [54..55)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [55..70)::15 + MarkupDynamicAttributeValue - [55..68)::13 - [@DateTime.Now] + GenericBlock - [55..68)::13 + CSharpCodeBlock - [55..68)::13 + CSharpImplicitExpression - [55..68)::13 + CSharpTransition - [55..56)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [56..68)::12 + CSharpCodeBlock - [56..68)::12 + CSharpExpressionLiteral - [56..68)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupBlock - [68..70)::2 + MarkupTextLiteral - [68..69)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupEphemeralTextLiteral - [69..70)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupTextLiteral - [70..71)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [71..94)::23 - [ bat='@DateTime.Now @@'] + MarkupTextLiteral - [71..72)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [72..75)::3 - [bat] - Gen - SpanEditHandler;Accepts:Any + Text;[bat]; + Equals;[=]; + MarkupTextLiteral - [76..77)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [77..93)::16 + MarkupDynamicAttributeValue - [77..90)::13 - [@DateTime.Now] + GenericBlock - [77..90)::13 + CSharpCodeBlock - [77..90)::13 + CSharpImplicitExpression - [77..90)::13 + CSharpTransition - [77..78)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [78..90)::12 + CSharpCodeBlock - [78..90)::12 + CSharpExpressionLiteral - [78..90)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupBlock - [90..93)::3 + MarkupTextLiteral - [90..92)::2 - [ @] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Transition;[@]; + MarkupEphemeralTextLiteral - [92..93)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupTextLiteral - [93..94)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [94..116)::22 - [ zoo='@@@DateTime.Now'] + MarkupTextLiteral - [94..95)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [95..98)::3 - [zoo] - Gen - SpanEditHandler;Accepts:Any + Text;[zoo]; + Equals;[=]; + MarkupTextLiteral - [99..100)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [100..115)::15 + MarkupBlock - [100..102)::2 + MarkupTextLiteral - [100..101)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupEphemeralTextLiteral - [101..102)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupDynamicAttributeValue - [102..115)::13 - [@DateTime.Now] + GenericBlock - [102..115)::13 + MarkupTextLiteral - [102..102)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [102..115)::13 + CSharpImplicitExpression - [102..115)::13 + CSharpTransition - [102..103)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [103..115)::12 + CSharpCodeBlock - [103..115)::12 + CSharpExpressionLiteral - [103..115)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [115..116)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [116..119)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [119..119)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [119..120)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransition_EndOfFile_Throws.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransition_EndOfFile_Throws.stree.txt index f37297146..d9a8d250f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransition_EndOfFile_Throws.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithDoubleTransition_EndOfFile_Throws.stree.txt @@ -1,21 +1,31 @@ -Statement block - Gen - 14 - (0:0,0) - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 13 - (1:0,1) - Tag block - Gen - 13 - (1:0,1) - Markup span - Gen - [ - 2 - (12:0,12) - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.Unknown;[]; +CSharpCodeBlock - [0..14)::14 - [{ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[span]; + MarkupAttributeBlock - [6..14)::8 - [ foo='@@] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..10)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [12..14)::2 + MarkupBlock - [12..14)::2 + MarkupTextLiteral - [12..13)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupEphemeralTextLiteral - [13..14)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupTextLiteral - [14..14)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [14..14)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithUnexpectedTransitionsInAttributeValue_Throws.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithUnexpectedTransitionsInAttributeValue_Throws.stree.txt index 7ba022371..a9904ed71 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithUnexpectedTransitionsInAttributeValue_Throws.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/WithUnexpectedTransitionsInAttributeValue_Throws.stree.txt @@ -1,38 +1,54 @@ -Statement block - Gen - 20 - (0:0,0) - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 18 - (1:0,1) - Tag block - Gen - 18 - (1:0,1) - Markup span - Gen - [ - 10 - (6:0,6) - Markup span - Gen - [ foo='] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 1 - (12:0,12) - Expression block - Gen - 1 - (12:0,12) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (13:0,13) - Tokens:1 - SyntaxKind.Unknown;[]; - Markup block - Gen - 2 - (13:0,13) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 1 - (14:0,14) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (14:0,14) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (15:0,15) - Tokens:1 - SyntaxKind.Unknown;[]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (19:0,19) - Tokens:1 - SyntaxKind.RightBrace;[}]; +CSharpCodeBlock - [0..20)::20 - [{}] + CSharpStatement - [0..20)::20 + CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None + Transition;[]; + CSharpStatementBody - [0..20)::20 + RazorMetaCode - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [1..19)::18 + MarkupBlock - [1..19)::18 + MarkupTagBlock - [1..19)::18 - [] + MarkupTextLiteral - [1..6)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[span]; + MarkupAttributeBlock - [6..16)::10 - [ foo='@ @'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..10)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [12..15)::3 + MarkupDynamicAttributeValue - [12..13)::1 - [@] + GenericBlock - [12..13)::1 + CSharpCodeBlock - [12..13)::1 + CSharpImplicitExpression - [12..13)::1 + CSharpTransition - [12..13)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [13..13)::0 + CSharpCodeBlock - [13..13)::0 + CSharpExpressionLiteral - [13..13)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Marker;[]; + MarkupDynamicAttributeValue - [13..15)::2 - [ @] + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + GenericBlock - [14..15)::1 + CSharpCodeBlock - [14..15)::1 + CSharpImplicitExpression - [14..15)::1 + CSharpTransition - [14..15)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [15..15)::0 + CSharpCodeBlock - [15..15)::0 + CSharpExpressionLiteral - [15..15)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Marker;[]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [16..19)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [19..19)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [19..20)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; From 71d2f8a773174079430e4ad9c2551765551bf0a1 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Thu, 27 Sep 2018 15:57:49 -0700 Subject: [PATCH 16/23] Renamed CSharpDirectivesTest to RazorDirectivesTest --- .../Legacy/RazorDirectivesTest.cs | 2 +- ...Directive_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt | 0 ...rDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt | 0 ...AddTagHelperDirective_InvalidLookupText_AddsError.cspans.txt | 0 .../AddTagHelperDirective_InvalidLookupText_AddsError.stree.txt | 0 .../AddTagHelperDirective_NoValue_Invalid.cspans.txt | 0 .../AddTagHelperDirective_NoValue_Invalid.stree.txt | 0 .../AddTagHelperDirective_RequiresValue.cspans.txt | 0 .../AddTagHelperDirective_RequiresValue.stree.txt | 0 .../AddTagHelperDirective_SingleQuotes_AddsError.cspans.txt | 0 .../AddTagHelperDirective_SingleQuotes_AddsError.stree.txt | 0 ...rective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt | 0 ...irective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt | 0 .../AddTagHelperDirective_SupportsSpaces.cspans.txt | 0 .../AddTagHelperDirective_SupportsSpaces.stree.txt | 0 ...rDirective_WithQuotes_InvalidLookupText_AddsError.cspans.txt | 0 ...erDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt | 0 ...DoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt | 0 ...eDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt | 0 .../BuiltInDirectiveErrorsIfNotAtStartOfLine.cspans.txt | 0 .../BuiltInDirectiveErrorsIfNotAtStartOfLine.stree.txt | 0 .../DirectiveDescriptor_AllowsNullableTypes.cspans.txt | 0 .../DirectiveDescriptor_AllowsNullableTypes.stree.txt | 0 .../DirectiveDescriptor_AllowsTupleTypes.cspans.txt | 0 .../DirectiveDescriptor_AllowsTupleTypes.stree.txt | 0 ...riptor_AllowsTupleTypes_IgnoresTrailingWhitespace.cspans.txt | 0 ...criptor_AllowsTupleTypes_IgnoresTrailingWhitespace.stree.txt | 0 .../DirectiveDescriptor_AllowsWhiteSpaceAroundTokens.cspans.txt | 0 .../DirectiveDescriptor_AllowsWhiteSpaceAroundTokens.stree.txt | 0 ...eDescriptor_CanHandleEOFIncompleteNamespaceTokens.cspans.txt | 0 ...veDescriptor_CanHandleEOFIncompleteNamespaceTokens.stree.txt | 0 ...tiveDescriptor_CanHandleEOFInvalidNamespaceTokens.cspans.txt | 0 ...ctiveDescriptor_CanHandleEOFInvalidNamespaceTokens.stree.txt | 0 ...tiveDescriptor_CanHandleIncompleteNamespaceTokens.cspans.txt | 0 ...ctiveDescriptor_CanHandleIncompleteNamespaceTokens.stree.txt | 0 ...rectiveDescriptor_CanHandleInvalidNamespaceTokens.cspans.txt | 0 ...irectiveDescriptor_CanHandleInvalidNamespaceTokens.stree.txt | 0 ...ectiveDescriptor_ErrorsExtraContentAfterDirective.cspans.txt | 0 ...rectiveDescriptor_ErrorsExtraContentAfterDirective.stree.txt | 0 .../DirectiveDescriptor_ErrorsForInvalidMemberTokens.cspans.txt | 0 .../DirectiveDescriptor_ErrorsForInvalidMemberTokens.stree.txt | 0 ...Descriptor_ErrorsWhenEOFBeforeDirectiveBlockStart.cspans.txt | 0 ...eDescriptor_ErrorsWhenEOFBeforeDirectiveBlockStart.stree.txt | 0 ...Descriptor_ErrorsWhenExtraContentBeforeBlockStart.cspans.txt | 0 ...eDescriptor_ErrorsWhenExtraContentBeforeBlockStart.stree.txt | 0 .../DirectiveDescriptor_ErrorsWhenMissingEndBrace.cspans.txt | 0 .../DirectiveDescriptor_ErrorsWhenMissingEndBrace.stree.txt | 0 ...tor_FileScopedMultipleOccurring_CanHaveDuplicates.cspans.txt | 0 ...ptor_FileScopedMultipleOccurring_CanHaveDuplicates.stree.txt | 0 ...iptor_FileScopedSinglyOccurring_ErrorsIfDuplicate.cspans.txt | 0 ...riptor_FileScopedSinglyOccurring_ErrorsIfDuplicate.stree.txt | 0 ...Descriptor_FileScoped_CanBeBeneathOtherDirectives.cspans.txt | 0 ...eDescriptor_FileScoped_CanBeBeneathOtherDirectives.stree.txt | 0 ..._CanBeBeneathOtherWhiteSpaceCommentsAndDirectives.cspans.txt | 0 ...d_CanBeBeneathOtherWhiteSpaceCommentsAndDirectives.stree.txt | 0 ...rectiveDescriptor_NoErrorsSemicolonAfterDirective.cspans.txt | 0 ...irectiveDescriptor_NoErrorsSemicolonAfterDirective.stree.txt | 0 ...scriptor_StringToken_ParserErrorForNonStringValue.cspans.txt | 0 ...escriptor_StringToken_ParserErrorForNonStringValue.stree.txt | 0 ...ptor_StringToken_ParserErrorForPartialQuotedValue.cspans.txt | 0 ...iptor_StringToken_ParserErrorForPartialQuotedValue.stree.txt | 0 ...iptor_StringToken_ParserErrorForSingleQuotedValue.cspans.txt | 0 ...riptor_StringToken_ParserErrorForSingleQuotedValue.stree.txt | 0 ...escriptor_StringToken_ParserErrorForUnquotedValue.cspans.txt | 0 ...Descriptor_StringToken_ParserErrorForUnquotedValue.stree.txt | 0 .../DirectiveDescriptor_TokensMustBeSeparatedBySpace.cspans.txt | 0 .../DirectiveDescriptor_TokensMustBeSeparatedBySpace.stree.txt | 0 .../DirectiveDescriptor_UnderstandsCodeBlocks.cspans.txt | 0 .../DirectiveDescriptor_UnderstandsCodeBlocks.stree.txt | 0 .../DirectiveDescriptor_UnderstandsMemberTokens.cspans.txt | 0 .../DirectiveDescriptor_UnderstandsMemberTokens.stree.txt | 0 .../DirectiveDescriptor_UnderstandsMultipleTokens.cspans.txt | 0 .../DirectiveDescriptor_UnderstandsMultipleTokens.stree.txt | 0 .../DirectiveDescriptor_UnderstandsRazorBlocks.cspans.txt | 0 .../DirectiveDescriptor_UnderstandsRazorBlocks.stree.txt | 0 .../DirectiveDescriptor_UnderstandsStringTokens.cspans.txt | 0 .../DirectiveDescriptor_UnderstandsStringTokens.stree.txt | 0 .../DirectiveDescriptor_UnderstandsTypeTokens.cspans.txt | 0 .../DirectiveDescriptor_UnderstandsTypeTokens.stree.txt | 0 .../Directives_CanUseReservedWord_Class.cspans.txt | 0 .../Directives_CanUseReservedWord_Class.stree.txt | 0 .../Directives_CanUseReservedWord_Namespace.cspans.txt | 0 .../Directives_CanUseReservedWord_Namespace.stree.txt | 0 .../EmptyFunctionsDirective.cspans.txt | 0 .../EmptyFunctionsDirective.stree.txt | 0 ...DoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt | 0 ...eDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt | 0 .../ExtensibleDirectiveErrorsIfNotAtStartOfLine.cspans.txt | 0 .../ExtensibleDirectiveErrorsIfNotAtStartOfLine.stree.txt | 0 .../InheritsDirectiveSupportsArrays.cspans.txt | 0 .../InheritsDirectiveSupportsArrays.stree.txt | 0 .../InheritsDirectiveSupportsNestedGenerics.cspans.txt | 0 .../InheritsDirectiveSupportsNestedGenerics.stree.txt | 0 .../InheritsDirectiveSupportsTypeKeywords.cspans.txt | 0 .../InheritsDirectiveSupportsTypeKeywords.stree.txt | 0 .../OptionalDirectiveTokens_AreSkipped.cspans.txt | 0 .../OptionalDirectiveTokens_AreSkipped.stree.txt | 0 .../OptionalDirectiveTokens_WithBraces_AreParsed.cspans.txt | 0 .../OptionalDirectiveTokens_WithBraces_AreParsed.stree.txt | 0 ...ectiveTokens_WithMultipleOptionalTokens_AreParsed.cspans.txt | 0 ...rectiveTokens_WithMultipleOptionalTokens_AreParsed.stree.txt | 0 ...ptionalDirectiveTokens_WithSimpleTokens_AreParsed.cspans.txt | 0 ...OptionalDirectiveTokens_WithSimpleTokens_AreParsed.stree.txt | 0 ...OptionalMemberTokens_WithMemberSpecified_IsParsed.cspans.txt | 0 .../OptionalMemberTokens_WithMemberSpecified_IsParsed.stree.txt | 0 .../OptionalMemberTokens_WithMissingMember_IsParsed.cspans.txt | 0 .../OptionalMemberTokens_WithMissingMember_IsParsed.stree.txt | 0 .../Parse_FunctionsDirective.cspans.txt | 0 .../Parse_FunctionsDirective.stree.txt | 0 .../Parse_SectionDirective.cspans.txt | 0 .../Parse_SectionDirective.stree.txt | 0 ...arsesNamespaceDirectiveToken_WithMultipleSegments.cspans.txt | 0 ...ParsesNamespaceDirectiveToken_WithMultipleSegments.stree.txt | 0 ...r_ParsesNamespaceDirectiveToken_WithSingleSegment.cspans.txt | 0 ...er_ParsesNamespaceDirectiveToken_WithSingleSegment.stree.txt | 0 ...Directive_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt | 0 ...rDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt | 0 ...oveTagHelperDirective_InvalidLookupText_AddsError.cspans.txt | 0 ...moveTagHelperDirective_InvalidLookupText_AddsError.stree.txt | 0 .../RemoveTagHelperDirective_NoValue_Invalid.cspans.txt | 0 .../RemoveTagHelperDirective_NoValue_Invalid.stree.txt | 0 .../RemoveTagHelperDirective_RequiresValue.cspans.txt | 0 .../RemoveTagHelperDirective_RequiresValue.stree.txt | 0 .../RemoveTagHelperDirective_SingleQuotes_AddsError.cspans.txt | 0 .../RemoveTagHelperDirective_SingleQuotes_AddsError.stree.txt | 0 ...rective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt | 0 ...irective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt | 0 .../RemoveTagHelperDirective_SupportsSpaces.cspans.txt | 0 .../RemoveTagHelperDirective_SupportsSpaces.stree.txt | 0 ...rDirective_WithQuotes_InvalidLookupText_AddsError.cspans.txt | 0 ...erDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt | 0 ...Directive_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt | 0 ...xDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt | 0 .../TagHelperPrefixDirective_NoValueSucceeds.cspans.txt | 0 .../TagHelperPrefixDirective_NoValueSucceeds.stree.txt | 0 .../TagHelperPrefixDirective_RequiresValue.cspans.txt | 0 .../TagHelperPrefixDirective_RequiresValue.stree.txt | 0 ...rective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt | 0 ...irective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt | 0 .../TagHelperPrefixDirective_Succeeds.cspans.txt | 0 .../TagHelperPrefixDirective_Succeeds.stree.txt | 0 .../TagHelperPrefixDirective_WithQuotes_Succeeds.cspans.txt | 0 .../TagHelperPrefixDirective_WithQuotes_Succeeds.stree.txt | 0 143 files changed, 1 insertion(+), 1 deletion(-) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/AddTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/AddTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/AddTagHelperDirective_InvalidLookupText_AddsError.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/AddTagHelperDirective_InvalidLookupText_AddsError.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/AddTagHelperDirective_NoValue_Invalid.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/AddTagHelperDirective_NoValue_Invalid.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/AddTagHelperDirective_RequiresValue.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/AddTagHelperDirective_RequiresValue.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/AddTagHelperDirective_SingleQuotes_AddsError.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/AddTagHelperDirective_SingleQuotes_AddsError.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/AddTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/AddTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/AddTagHelperDirective_SupportsSpaces.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/AddTagHelperDirective_SupportsSpaces.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/AddTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/AddTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/BuiltInDirectiveErrorsIfNotAtStartOfLine.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/BuiltInDirectiveErrorsIfNotAtStartOfLine.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_AllowsNullableTypes.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_AllowsNullableTypes.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_AllowsTupleTypes.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_AllowsTupleTypes.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_AllowsTupleTypes_IgnoresTrailingWhitespace.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_AllowsTupleTypes_IgnoresTrailingWhitespace.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_AllowsWhiteSpaceAroundTokens.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_AllowsWhiteSpaceAroundTokens.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_CanHandleEOFIncompleteNamespaceTokens.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_CanHandleEOFIncompleteNamespaceTokens.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_CanHandleEOFInvalidNamespaceTokens.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_CanHandleEOFInvalidNamespaceTokens.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_CanHandleIncompleteNamespaceTokens.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_CanHandleIncompleteNamespaceTokens.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_CanHandleInvalidNamespaceTokens.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_CanHandleInvalidNamespaceTokens.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_ErrorsExtraContentAfterDirective.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_ErrorsExtraContentAfterDirective.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_ErrorsForInvalidMemberTokens.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_ErrorsForInvalidMemberTokens.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_ErrorsWhenEOFBeforeDirectiveBlockStart.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_ErrorsWhenEOFBeforeDirectiveBlockStart.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_ErrorsWhenExtraContentBeforeBlockStart.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_ErrorsWhenExtraContentBeforeBlockStart.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_ErrorsWhenMissingEndBrace.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_ErrorsWhenMissingEndBrace.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_FileScopedSinglyOccurring_ErrorsIfDuplicate.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_FileScopedSinglyOccurring_ErrorsIfDuplicate.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_FileScoped_CanBeBeneathOtherDirectives.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_FileScoped_CanBeBeneathOtherDirectives.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_FileScoped_CanBeBeneathOtherWhiteSpaceCommentsAndDirectives.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_FileScoped_CanBeBeneathOtherWhiteSpaceCommentsAndDirectives.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_NoErrorsSemicolonAfterDirective.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_NoErrorsSemicolonAfterDirective.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_StringToken_ParserErrorForNonStringValue.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_StringToken_ParserErrorForNonStringValue.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_StringToken_ParserErrorForPartialQuotedValue.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_StringToken_ParserErrorForPartialQuotedValue.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_StringToken_ParserErrorForSingleQuotedValue.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_StringToken_ParserErrorForSingleQuotedValue.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_StringToken_ParserErrorForUnquotedValue.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_StringToken_ParserErrorForUnquotedValue.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_TokensMustBeSeparatedBySpace.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_TokensMustBeSeparatedBySpace.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_UnderstandsCodeBlocks.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_UnderstandsCodeBlocks.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_UnderstandsMemberTokens.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_UnderstandsMemberTokens.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_UnderstandsMultipleTokens.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_UnderstandsMultipleTokens.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_UnderstandsRazorBlocks.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_UnderstandsRazorBlocks.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_UnderstandsStringTokens.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_UnderstandsStringTokens.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_UnderstandsTypeTokens.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/DirectiveDescriptor_UnderstandsTypeTokens.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/Directives_CanUseReservedWord_Class.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/Directives_CanUseReservedWord_Class.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/Directives_CanUseReservedWord_Namespace.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/Directives_CanUseReservedWord_Namespace.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/EmptyFunctionsDirective.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/EmptyFunctionsDirective.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/ExtensibleDirectiveErrorsIfNotAtStartOfLine.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/ExtensibleDirectiveErrorsIfNotAtStartOfLine.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/InheritsDirectiveSupportsArrays.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/InheritsDirectiveSupportsArrays.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/InheritsDirectiveSupportsNestedGenerics.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/InheritsDirectiveSupportsNestedGenerics.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/InheritsDirectiveSupportsTypeKeywords.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/InheritsDirectiveSupportsTypeKeywords.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/OptionalDirectiveTokens_AreSkipped.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/OptionalDirectiveTokens_AreSkipped.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/OptionalDirectiveTokens_WithBraces_AreParsed.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/OptionalDirectiveTokens_WithBraces_AreParsed.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/OptionalDirectiveTokens_WithMultipleOptionalTokens_AreParsed.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/OptionalDirectiveTokens_WithMultipleOptionalTokens_AreParsed.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/OptionalDirectiveTokens_WithSimpleTokens_AreParsed.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/OptionalDirectiveTokens_WithSimpleTokens_AreParsed.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/OptionalMemberTokens_WithMemberSpecified_IsParsed.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/OptionalMemberTokens_WithMemberSpecified_IsParsed.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/OptionalMemberTokens_WithMissingMember_IsParsed.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/OptionalMemberTokens_WithMissingMember_IsParsed.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/Parse_FunctionsDirective.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/Parse_FunctionsDirective.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/Parse_SectionDirective.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/Parse_SectionDirective.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/Parser_ParsesNamespaceDirectiveToken_WithMultipleSegments.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/Parser_ParsesNamespaceDirectiveToken_WithMultipleSegments.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/Parser_ParsesNamespaceDirectiveToken_WithSingleSegment.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/Parser_ParsesNamespaceDirectiveToken_WithSingleSegment.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/RemoveTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/RemoveTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/RemoveTagHelperDirective_InvalidLookupText_AddsError.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/RemoveTagHelperDirective_InvalidLookupText_AddsError.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/RemoveTagHelperDirective_NoValue_Invalid.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/RemoveTagHelperDirective_NoValue_Invalid.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/RemoveTagHelperDirective_RequiresValue.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/RemoveTagHelperDirective_RequiresValue.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/RemoveTagHelperDirective_SingleQuotes_AddsError.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/RemoveTagHelperDirective_SingleQuotes_AddsError.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/RemoveTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/RemoveTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/RemoveTagHelperDirective_SupportsSpaces.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/RemoveTagHelperDirective_SupportsSpaces.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/RemoveTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/RemoveTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/TagHelperPrefixDirective_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/TagHelperPrefixDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/TagHelperPrefixDirective_NoValueSucceeds.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/TagHelperPrefixDirective_NoValueSucceeds.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/TagHelperPrefixDirective_RequiresValue.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/TagHelperPrefixDirective_RequiresValue.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/TagHelperPrefixDirective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/TagHelperPrefixDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/TagHelperPrefixDirective_Succeeds.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/TagHelperPrefixDirective_Succeeds.stree.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/TagHelperPrefixDirective_WithQuotes_Succeeds.cspans.txt (100%) rename test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/{CSharpDirectivesTest => RazorDirectivesTest}/TagHelperPrefixDirective_WithQuotes_Succeeds.stree.txt (100%) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorDirectivesTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorDirectivesTest.cs index 5da2a4bba..e4b999fd1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorDirectivesTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorDirectivesTest.cs @@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { - public class CSharpDirectivesTest : CsHtmlCodeParserTestBase + public class RazorDirectivesTest : CsHtmlCodeParserTestBase { [Fact] public void DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates() diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_InvalidLookupText_AddsError.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_InvalidLookupText_AddsError.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_InvalidLookupText_AddsError.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_InvalidLookupText_AddsError.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_InvalidLookupText_AddsError.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_InvalidLookupText_AddsError.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_InvalidLookupText_AddsError.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_InvalidLookupText_AddsError.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_NoValue_Invalid.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_NoValue_Invalid.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_NoValue_Invalid.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_NoValue_Invalid.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_NoValue_Invalid.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_NoValue_Invalid.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_NoValue_Invalid.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_NoValue_Invalid.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_RequiresValue.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_RequiresValue.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_RequiresValue.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_RequiresValue.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_RequiresValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_RequiresValue.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_RequiresValue.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_RequiresValue.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_SingleQuotes_AddsError.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_SingleQuotes_AddsError.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_SingleQuotes_AddsError.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_SingleQuotes_AddsError.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_SingleQuotes_AddsError.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_SingleQuotes_AddsError.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_SingleQuotes_AddsError.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_SingleQuotes_AddsError.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_SupportsSpaces.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_SupportsSpaces.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_SupportsSpaces.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_SupportsSpaces.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_SupportsSpaces.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_SupportsSpaces.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_SupportsSpaces.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_SupportsSpaces.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/AddTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/BuiltInDirectiveErrorsIfNotAtStartOfLine.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveErrorsIfNotAtStartOfLine.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/BuiltInDirectiveErrorsIfNotAtStartOfLine.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveErrorsIfNotAtStartOfLine.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/BuiltInDirectiveErrorsIfNotAtStartOfLine.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveErrorsIfNotAtStartOfLine.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/BuiltInDirectiveErrorsIfNotAtStartOfLine.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveErrorsIfNotAtStartOfLine.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_AllowsNullableTypes.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsNullableTypes.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_AllowsNullableTypes.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsNullableTypes.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_AllowsNullableTypes.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsNullableTypes.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_AllowsNullableTypes.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsNullableTypes.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_AllowsTupleTypes.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsTupleTypes.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_AllowsTupleTypes.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsTupleTypes.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_AllowsTupleTypes.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsTupleTypes.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_AllowsTupleTypes.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsTupleTypes.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_AllowsTupleTypes_IgnoresTrailingWhitespace.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsTupleTypes_IgnoresTrailingWhitespace.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_AllowsTupleTypes_IgnoresTrailingWhitespace.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsTupleTypes_IgnoresTrailingWhitespace.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_AllowsTupleTypes_IgnoresTrailingWhitespace.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsTupleTypes_IgnoresTrailingWhitespace.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_AllowsTupleTypes_IgnoresTrailingWhitespace.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsTupleTypes_IgnoresTrailingWhitespace.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_AllowsWhiteSpaceAroundTokens.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsWhiteSpaceAroundTokens.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_AllowsWhiteSpaceAroundTokens.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsWhiteSpaceAroundTokens.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_AllowsWhiteSpaceAroundTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsWhiteSpaceAroundTokens.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_AllowsWhiteSpaceAroundTokens.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsWhiteSpaceAroundTokens.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_CanHandleEOFIncompleteNamespaceTokens.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleEOFIncompleteNamespaceTokens.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_CanHandleEOFIncompleteNamespaceTokens.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleEOFIncompleteNamespaceTokens.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_CanHandleEOFIncompleteNamespaceTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleEOFIncompleteNamespaceTokens.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_CanHandleEOFIncompleteNamespaceTokens.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleEOFIncompleteNamespaceTokens.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_CanHandleEOFInvalidNamespaceTokens.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleEOFInvalidNamespaceTokens.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_CanHandleEOFInvalidNamespaceTokens.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleEOFInvalidNamespaceTokens.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_CanHandleEOFInvalidNamespaceTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleEOFInvalidNamespaceTokens.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_CanHandleEOFInvalidNamespaceTokens.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleEOFInvalidNamespaceTokens.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_CanHandleIncompleteNamespaceTokens.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleIncompleteNamespaceTokens.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_CanHandleIncompleteNamespaceTokens.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleIncompleteNamespaceTokens.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_CanHandleIncompleteNamespaceTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleIncompleteNamespaceTokens.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_CanHandleIncompleteNamespaceTokens.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleIncompleteNamespaceTokens.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_CanHandleInvalidNamespaceTokens.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleInvalidNamespaceTokens.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_CanHandleInvalidNamespaceTokens.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleInvalidNamespaceTokens.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_CanHandleInvalidNamespaceTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleInvalidNamespaceTokens.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_CanHandleInvalidNamespaceTokens.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleInvalidNamespaceTokens.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsExtraContentAfterDirective.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsExtraContentAfterDirective.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsExtraContentAfterDirective.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsExtraContentAfterDirective.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsExtraContentAfterDirective.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsExtraContentAfterDirective.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsExtraContentAfterDirective.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsExtraContentAfterDirective.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsForInvalidMemberTokens.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsForInvalidMemberTokens.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsForInvalidMemberTokens.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsForInvalidMemberTokens.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsForInvalidMemberTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsForInvalidMemberTokens.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsForInvalidMemberTokens.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsForInvalidMemberTokens.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsWhenEOFBeforeDirectiveBlockStart.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenEOFBeforeDirectiveBlockStart.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsWhenEOFBeforeDirectiveBlockStart.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenEOFBeforeDirectiveBlockStart.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsWhenEOFBeforeDirectiveBlockStart.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenEOFBeforeDirectiveBlockStart.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsWhenEOFBeforeDirectiveBlockStart.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenEOFBeforeDirectiveBlockStart.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsWhenExtraContentBeforeBlockStart.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenExtraContentBeforeBlockStart.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsWhenExtraContentBeforeBlockStart.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenExtraContentBeforeBlockStart.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsWhenExtraContentBeforeBlockStart.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenExtraContentBeforeBlockStart.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsWhenExtraContentBeforeBlockStart.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenExtraContentBeforeBlockStart.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsWhenMissingEndBrace.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenMissingEndBrace.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsWhenMissingEndBrace.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenMissingEndBrace.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsWhenMissingEndBrace.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenMissingEndBrace.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_ErrorsWhenMissingEndBrace.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenMissingEndBrace.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_FileScopedSinglyOccurring_ErrorsIfDuplicate.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScopedSinglyOccurring_ErrorsIfDuplicate.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_FileScopedSinglyOccurring_ErrorsIfDuplicate.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScopedSinglyOccurring_ErrorsIfDuplicate.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_FileScopedSinglyOccurring_ErrorsIfDuplicate.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScopedSinglyOccurring_ErrorsIfDuplicate.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_FileScopedSinglyOccurring_ErrorsIfDuplicate.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScopedSinglyOccurring_ErrorsIfDuplicate.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherDirectives.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherDirectives.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherDirectives.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherDirectives.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherDirectives.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherDirectives.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherDirectives.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherDirectives.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherWhiteSpaceCommentsAndDirectives.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherWhiteSpaceCommentsAndDirectives.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherWhiteSpaceCommentsAndDirectives.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherWhiteSpaceCommentsAndDirectives.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherWhiteSpaceCommentsAndDirectives.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherWhiteSpaceCommentsAndDirectives.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherWhiteSpaceCommentsAndDirectives.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherWhiteSpaceCommentsAndDirectives.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_NoErrorsSemicolonAfterDirective.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_NoErrorsSemicolonAfterDirective.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_NoErrorsSemicolonAfterDirective.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_NoErrorsSemicolonAfterDirective.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_NoErrorsSemicolonAfterDirective.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_NoErrorsSemicolonAfterDirective.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_NoErrorsSemicolonAfterDirective.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_NoErrorsSemicolonAfterDirective.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForNonStringValue.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForNonStringValue.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForNonStringValue.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForNonStringValue.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForNonStringValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForNonStringValue.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForNonStringValue.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForNonStringValue.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForPartialQuotedValue.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForPartialQuotedValue.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForPartialQuotedValue.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForPartialQuotedValue.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForPartialQuotedValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForPartialQuotedValue.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForPartialQuotedValue.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForPartialQuotedValue.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForSingleQuotedValue.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForSingleQuotedValue.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForSingleQuotedValue.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForSingleQuotedValue.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForSingleQuotedValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForSingleQuotedValue.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForSingleQuotedValue.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForSingleQuotedValue.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForUnquotedValue.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForUnquotedValue.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForUnquotedValue.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForUnquotedValue.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForUnquotedValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForUnquotedValue.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForUnquotedValue.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForUnquotedValue.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_TokensMustBeSeparatedBySpace.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_TokensMustBeSeparatedBySpace.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_TokensMustBeSeparatedBySpace.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_TokensMustBeSeparatedBySpace.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_TokensMustBeSeparatedBySpace.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_TokensMustBeSeparatedBySpace.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_TokensMustBeSeparatedBySpace.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_TokensMustBeSeparatedBySpace.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsCodeBlocks.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsCodeBlocks.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsCodeBlocks.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsCodeBlocks.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsCodeBlocks.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsCodeBlocks.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsCodeBlocks.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsCodeBlocks.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsMemberTokens.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsMemberTokens.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsMemberTokens.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsMemberTokens.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsMemberTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsMemberTokens.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsMemberTokens.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsMemberTokens.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsMultipleTokens.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsMultipleTokens.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsMultipleTokens.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsMultipleTokens.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsMultipleTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsMultipleTokens.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsMultipleTokens.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsMultipleTokens.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsRazorBlocks.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsRazorBlocks.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsRazorBlocks.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsRazorBlocks.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsRazorBlocks.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsRazorBlocks.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsRazorBlocks.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsRazorBlocks.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsStringTokens.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsStringTokens.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsStringTokens.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsStringTokens.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsStringTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsStringTokens.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsStringTokens.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsStringTokens.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsTypeTokens.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsTypeTokens.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsTypeTokens.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsTypeTokens.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsTypeTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsTypeTokens.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/DirectiveDescriptor_UnderstandsTypeTokens.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsTypeTokens.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Directives_CanUseReservedWord_Class.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Directives_CanUseReservedWord_Class.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Directives_CanUseReservedWord_Class.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Directives_CanUseReservedWord_Class.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Directives_CanUseReservedWord_Class.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Directives_CanUseReservedWord_Class.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Directives_CanUseReservedWord_Class.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Directives_CanUseReservedWord_Class.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Directives_CanUseReservedWord_Namespace.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Directives_CanUseReservedWord_Namespace.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Directives_CanUseReservedWord_Namespace.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Directives_CanUseReservedWord_Namespace.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Directives_CanUseReservedWord_Namespace.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Directives_CanUseReservedWord_Namespace.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Directives_CanUseReservedWord_Namespace.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Directives_CanUseReservedWord_Namespace.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/EmptyFunctionsDirective.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/EmptyFunctionsDirective.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/EmptyFunctionsDirective.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/EmptyFunctionsDirective.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/EmptyFunctionsDirective.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/EmptyFunctionsDirective.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/EmptyFunctionsDirective.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/EmptyFunctionsDirective.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/ExtensibleDirectiveErrorsIfNotAtStartOfLine.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveErrorsIfNotAtStartOfLine.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/ExtensibleDirectiveErrorsIfNotAtStartOfLine.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveErrorsIfNotAtStartOfLine.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/ExtensibleDirectiveErrorsIfNotAtStartOfLine.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveErrorsIfNotAtStartOfLine.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/ExtensibleDirectiveErrorsIfNotAtStartOfLine.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveErrorsIfNotAtStartOfLine.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/InheritsDirectiveSupportsArrays.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsArrays.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/InheritsDirectiveSupportsArrays.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsArrays.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/InheritsDirectiveSupportsArrays.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsArrays.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/InheritsDirectiveSupportsArrays.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsArrays.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/InheritsDirectiveSupportsNestedGenerics.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsNestedGenerics.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/InheritsDirectiveSupportsNestedGenerics.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsNestedGenerics.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/InheritsDirectiveSupportsNestedGenerics.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsNestedGenerics.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/InheritsDirectiveSupportsNestedGenerics.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsNestedGenerics.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/InheritsDirectiveSupportsTypeKeywords.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsTypeKeywords.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/InheritsDirectiveSupportsTypeKeywords.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsTypeKeywords.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/InheritsDirectiveSupportsTypeKeywords.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsTypeKeywords.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/InheritsDirectiveSupportsTypeKeywords.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsTypeKeywords.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalDirectiveTokens_AreSkipped.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_AreSkipped.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalDirectiveTokens_AreSkipped.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_AreSkipped.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalDirectiveTokens_AreSkipped.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_AreSkipped.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalDirectiveTokens_AreSkipped.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_AreSkipped.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalDirectiveTokens_WithBraces_AreParsed.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithBraces_AreParsed.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalDirectiveTokens_WithBraces_AreParsed.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithBraces_AreParsed.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalDirectiveTokens_WithBraces_AreParsed.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithBraces_AreParsed.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalDirectiveTokens_WithBraces_AreParsed.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithBraces_AreParsed.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalDirectiveTokens_WithMultipleOptionalTokens_AreParsed.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithMultipleOptionalTokens_AreParsed.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalDirectiveTokens_WithMultipleOptionalTokens_AreParsed.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithMultipleOptionalTokens_AreParsed.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalDirectiveTokens_WithMultipleOptionalTokens_AreParsed.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithMultipleOptionalTokens_AreParsed.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalDirectiveTokens_WithMultipleOptionalTokens_AreParsed.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithMultipleOptionalTokens_AreParsed.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalDirectiveTokens_WithSimpleTokens_AreParsed.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithSimpleTokens_AreParsed.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalDirectiveTokens_WithSimpleTokens_AreParsed.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithSimpleTokens_AreParsed.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalDirectiveTokens_WithSimpleTokens_AreParsed.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithSimpleTokens_AreParsed.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalDirectiveTokens_WithSimpleTokens_AreParsed.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithSimpleTokens_AreParsed.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalMemberTokens_WithMemberSpecified_IsParsed.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalMemberTokens_WithMemberSpecified_IsParsed.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalMemberTokens_WithMemberSpecified_IsParsed.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalMemberTokens_WithMemberSpecified_IsParsed.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalMemberTokens_WithMemberSpecified_IsParsed.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalMemberTokens_WithMemberSpecified_IsParsed.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalMemberTokens_WithMemberSpecified_IsParsed.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalMemberTokens_WithMemberSpecified_IsParsed.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalMemberTokens_WithMissingMember_IsParsed.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalMemberTokens_WithMissingMember_IsParsed.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalMemberTokens_WithMissingMember_IsParsed.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalMemberTokens_WithMissingMember_IsParsed.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalMemberTokens_WithMissingMember_IsParsed.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalMemberTokens_WithMissingMember_IsParsed.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/OptionalMemberTokens_WithMissingMember_IsParsed.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalMemberTokens_WithMissingMember_IsParsed.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Parse_FunctionsDirective.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parse_FunctionsDirective.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Parse_FunctionsDirective.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parse_FunctionsDirective.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Parse_FunctionsDirective.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parse_FunctionsDirective.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Parse_FunctionsDirective.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parse_FunctionsDirective.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Parse_SectionDirective.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parse_SectionDirective.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Parse_SectionDirective.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parse_SectionDirective.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Parse_SectionDirective.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parse_SectionDirective.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Parse_SectionDirective.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parse_SectionDirective.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithMultipleSegments.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithMultipleSegments.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithMultipleSegments.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithMultipleSegments.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithMultipleSegments.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithMultipleSegments.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithMultipleSegments.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithMultipleSegments.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithSingleSegment.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithSingleSegment.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithSingleSegment.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithSingleSegment.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithSingleSegment.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithSingleSegment.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithSingleSegment.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithSingleSegment.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_InvalidLookupText_AddsError.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_InvalidLookupText_AddsError.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_InvalidLookupText_AddsError.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_InvalidLookupText_AddsError.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_InvalidLookupText_AddsError.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_InvalidLookupText_AddsError.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_InvalidLookupText_AddsError.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_InvalidLookupText_AddsError.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_NoValue_Invalid.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_NoValue_Invalid.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_NoValue_Invalid.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_NoValue_Invalid.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_NoValue_Invalid.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_NoValue_Invalid.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_NoValue_Invalid.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_NoValue_Invalid.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_RequiresValue.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_RequiresValue.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_RequiresValue.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_RequiresValue.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_RequiresValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_RequiresValue.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_RequiresValue.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_RequiresValue.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_SingleQuotes_AddsError.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_SingleQuotes_AddsError.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_SingleQuotes_AddsError.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_SingleQuotes_AddsError.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_SingleQuotes_AddsError.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_SingleQuotes_AddsError.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_SingleQuotes_AddsError.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_SingleQuotes_AddsError.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_SupportsSpaces.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_SupportsSpaces.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_SupportsSpaces.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_SupportsSpaces.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_SupportsSpaces.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_SupportsSpaces.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_SupportsSpaces.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_SupportsSpaces.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/RemoveTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_EndQuoteRequiresDoubleQuotesAroundValue.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_NoValueSucceeds.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_NoValueSucceeds.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_NoValueSucceeds.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_NoValueSucceeds.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_NoValueSucceeds.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_NoValueSucceeds.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_NoValueSucceeds.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_NoValueSucceeds.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_RequiresValue.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_RequiresValue.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_RequiresValue.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_RequiresValue.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_RequiresValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_RequiresValue.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_RequiresValue.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_RequiresValue.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_StartQuoteRequiresDoubleQuotesAroundValue.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_Succeeds.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_Succeeds.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_Succeeds.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_Succeeds.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_Succeeds.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_Succeeds.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_Succeeds.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_Succeeds.stree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_WithQuotes_Succeeds.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_WithQuotes_Succeeds.cspans.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_WithQuotes_Succeeds.cspans.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_WithQuotes_Succeeds.cspans.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_WithQuotes_Succeeds.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_WithQuotes_Succeeds.stree.txt similarity index 100% rename from test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpDirectivesTest/TagHelperPrefixDirective_WithQuotes_Succeeds.stree.txt rename to test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_WithQuotes_Succeeds.stree.txt From cc010bece3c50464020d8930dc396f63f2a3a77f Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Thu, 27 Sep 2018 16:26:55 -0700 Subject: [PATCH 17/23] More buggy fixey --- .../ClassifiedSpanVisitor.cs | 5 +++- .../Legacy/CSharpParser.cs | 23 ++++++++++++++----- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs b/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs index 2375fecde..b17fb96c9 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs @@ -56,7 +56,10 @@ public override SyntaxNode VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) if (node.Parent is CSharpStatementBodySyntax || node.Parent is CSharpExplicitExpressionBodySyntax || node.Parent is CSharpImplicitExpressionBodySyntax || - node.Parent is RazorDirectiveBodySyntax) + node.Parent is RazorDirectiveBodySyntax || + (_currentBlockKind == BlockKindInternal.Directive && + node.Children.Count == 1 && + node.Children[0] is CSharpStatementLiteralSyntax)) { return base.VisitCSharpCodeBlock(node); } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs index cbac857c6..f17283954 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs @@ -1024,6 +1024,7 @@ private void ParseExtensibleDirective(in SyntaxListBuilder buil RazorDiagnosticFactory.CreateParsing_DirectiveTokensMustBeSeparatedByWhitespace( new SourceSpan(CurrentStart, CurrentToken.Content.Length), descriptor.Directive)); + builder.Add(BuildDirective()); return; } @@ -1066,6 +1067,7 @@ private void ParseExtensibleDirective(in SyntaxListBuilder buil new SourceSpan(CurrentStart, contentLength: 1), descriptor.Directive, tokenDescriptor.Kind.ToString().ToLowerInvariant())); + builder.Add(BuildDirective()); return; } @@ -1078,6 +1080,7 @@ private void ParseExtensibleDirective(in SyntaxListBuilder buil RazorDiagnosticFactory.CreateParsing_DirectiveExpectsTypeName( new SourceSpan(CurrentStart, CurrentToken.Content.Length), descriptor.Directive)); + builder.Add(BuildDirective()); return; } break; @@ -1089,6 +1092,7 @@ private void ParseExtensibleDirective(in SyntaxListBuilder buil RazorDiagnosticFactory.CreateParsing_DirectiveExpectsNamespace( new SourceSpan(CurrentStart, identifierLength), descriptor.Directive)); + builder.Add(BuildDirective()); return; } break; @@ -1103,6 +1107,7 @@ private void ParseExtensibleDirective(in SyntaxListBuilder buil Context.ErrorSink.OnError( RazorDiagnosticFactory.CreateParsing_DirectiveExpectsIdentifier( new SourceSpan(CurrentStart, CurrentToken.Content.Length), descriptor.Directive)); + builder.Add(BuildDirective()); return; } break; @@ -1117,6 +1122,7 @@ private void ParseExtensibleDirective(in SyntaxListBuilder buil Context.ErrorSink.OnError( RazorDiagnosticFactory.CreateParsing_DirectiveExpectsQuotedStringLiteral( new SourceSpan(CurrentStart, CurrentToken.Content.Length), descriptor.Directive)); + builder.Add(BuildDirective()); return; } break; @@ -1218,13 +1224,18 @@ private void ParseExtensibleDirective(in SyntaxListBuilder buil Context.ErrorSink = savedErrorSink; } - directiveBuilder.Add(OutputTokensAsStatementLiteral()); - var directiveCodeBlock = SyntaxFactory.CSharpCodeBlock(directiveBuilder.ToList()); + builder.Add(BuildDirective()); - var directiveBody = SyntaxFactory.RazorDirectiveBody(keywordBlock, directiveCodeBlock); - var directive = SyntaxFactory.RazorDirective(transition, directiveBody); - directive = (RazorDirectiveSyntax)directive.SetDiagnostics(directiveErrorSink.Errors.ToArray()); - builder.Add(directive); + RazorDirectiveSyntax BuildDirective() + { + directiveBuilder.Add(OutputTokensAsStatementLiteral()); + var directiveCodeBlock = SyntaxFactory.CSharpCodeBlock(directiveBuilder.ToList()); + + var directiveBody = SyntaxFactory.RazorDirectiveBody(keywordBlock, directiveCodeBlock); + var directive = SyntaxFactory.RazorDirective(transition, directiveBody); + directive = (RazorDirectiveSyntax)directive.SetDiagnostics(directiveErrorSink.Errors.ToArray()); + return directive; + } } } From 3fcaf6e83f7b4b89974cf70251c97a87dd63137c Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Fri, 21 Sep 2018 19:50:35 -0700 Subject: [PATCH 18/23] Tag helper support --- .../ClassifiedSpanVisitor.cs | 59 + ...faultRazorIntermediateNodeLoweringPhase.cs | 2 +- .../DefaultRazorTagHelperBinderPhase.cs | 18 +- .../Legacy/HtmlParser.cs | 18 +- .../Legacy/LegacyTagHelperAttributeNode.cs | 27 + .../Legacy/LegacyTagHelperBlockRewriter.cs | 765 ++++++++++++ .../LegacyTagHelperParseTreeRewriter.cs | 2 +- .../Legacy/RazorSyntaxTreeExtensions.cs | 21 +- .../Legacy/SpanContext.cs | 6 + .../Legacy/TagHelperAttributeInfo.cs | 24 + .../Legacy/TagHelperAttributeNode.cs | 8 +- .../Legacy/TagHelperBlock.cs | 6 +- .../Legacy/TagHelperBlockBuilder.cs | 10 +- .../Legacy/TagHelperBlockRewriter.cs | 938 ++++++--------- .../Legacy/TagHelperInfo.cs | 24 + .../Legacy/TagHelperParseTreeRewriter.cs | 760 +++++++++++- .../Legacy/TokenizerBackedParser.cs | 5 + .../Syntax.xml.Internal.Generated.cs | 1058 +++++++++++++++-- .../Generated/Syntax.xml.Main.Generated.cs | 256 +++- .../Generated/Syntax.xml.Syntax.Generated.cs | 734 +++++++++++- .../Syntax/GreenNode.cs | 4 +- .../Syntax/InternalSyntax/RazorSyntaxNode.cs | 27 + .../Syntax/InternalSyntax/SyntaxToken.cs | 4 +- .../Syntax/MarkupElementRewriter.cs | 290 +++++ ...MarkupMinimizedTagHelperAttributeSyntax.cs | 34 + .../Syntax/MarkupTagHelperAttributeSyntax.cs | 34 + .../Syntax/MarkupTagHelperElementSyntax.cs | 34 + .../Syntax/RazorSyntaxNode.cs | 13 + .../Syntax/Syntax.xml | 49 +- .../Syntax/SyntaxExtensions.cs | 53 + .../Syntax/SyntaxKind.cs | 7 + .../Syntax/SyntaxNode.cs | 4 +- .../Syntax/SyntaxNodeExtensions.cs | 137 +++ .../Syntax/SyntaxSerializer.cs | 64 + .../Syntax/SyntaxToken.cs | 2 +- .../TagHelperSpanVisitor.cs | 30 + .../Legacy/MarkupElementRewriterTest.cs | 159 +++ .../Legacy/TagHelperBlockRewriterTest.cs | 5 + .../Legacy/TagHelperBlockTest.cs | 12 +- .../Legacy/TagHelperParseTreeRewriterTest.cs | 27 +- .../Legacy/TagHelperRewritingTestBase.cs | 16 +- ...tes_DoesNotSpecialCase_VoidTags.cspans.txt | 5 + ...ites_DoesNotSpecialCase_VoidTags.stree.txt | 20 + ...tes_EndTagsWithMissingStartTags.cspans.txt | 3 + ...ites_EndTagsWithMissingStartTags.stree.txt | 14 + .../Rewrites_IncompleteTags.cspans.txt | 8 + .../Rewrites_IncompleteTags.stree.txt | 36 + ...formedTags_RecoversSuccessfully.cspans.txt | 7 + ...lformedTags_RecoversSuccessfully.stree.txt | 29 + ...cedEndTags_RecoversSuccessfully.cspans.txt | 8 + ...acedEndTags_RecoversSuccessfully.stree.txt | 35 + .../Rewrites_SelfClosingTags.cspans.txt | 5 + .../Rewrites_SelfClosingTags.stree.txt | 23 + ...tes_StartTagsWithMissingEndTags.cspans.txt | 7 + ...ites_StartTagsWithMissingEndTags.stree.txt | 37 + .../Rewrites_ValidNestedTags.cspans.txt | 8 + .../Rewrites_ValidNestedTags.stree.txt | 41 + ...es_ValidNestedTagsMixedWithCode.cspans.txt | 16 + ...tes_ValidNestedTagsMixedWithCode.stree.txt | 71 ++ .../Rewrites_ValidTags.cspans.txt | 9 + .../Rewrites_ValidTags.stree.txt | 36 + .../AllowsCompatibleTagStructures1.stree.txt | 17 +- .../AllowsCompatibleTagStructures2.stree.txt | 13 +- .../AllowsCompatibleTagStructures3.stree.txt | 29 +- .../AllowsCompatibleTagStructures4.stree.txt | 19 +- .../AllowsCompatibleTagStructures5.stree.txt | 35 +- .../AllowsCompatibleTagStructures6.stree.txt | 13 +- .../AllowsCompatibleTagStructures7.stree.txt | 13 +- .../CanHandleSymbolBoundAttributes1.diag.txt | 5 + .../CanHandleSymbolBoundAttributes1.stree.txt | 42 +- .../CanHandleSymbolBoundAttributes2.diag.txt | 5 + .../CanHandleSymbolBoundAttributes2.stree.txt | 42 +- .../CanHandleSymbolBoundAttributes3.diag.txt | 5 + .../CanHandleSymbolBoundAttributes3.stree.txt | 49 +- .../CanHandleSymbolBoundAttributes4.diag.txt | 5 + .../CanHandleSymbolBoundAttributes4.stree.txt | 49 +- .../CanHandleSymbolBoundAttributes5.diag.txt | 5 + .../CanHandleSymbolBoundAttributes5.stree.txt | 41 +- .../CanHandleSymbolBoundAttributes6.diag.txt | 5 + .../CanHandleSymbolBoundAttributes6.stree.txt | 30 +- .../CanHandleSymbolBoundAttributes7.diag.txt | 5 + .../CanHandleSymbolBoundAttributes7.stree.txt | 41 +- ...HandleWithoutEndTagTagStructure1.stree.txt | 11 +- ...HandleWithoutEndTagTagStructure2.stree.txt | 29 +- ...HandleWithoutEndTagTagStructure3.stree.txt | 19 +- ...HandleWithoutEndTagTagStructure4.stree.txt | 37 +- ...HandleWithoutEndTagTagStructure5.stree.txt | 41 +- ...orEmptyTagHelperBoundAttributes1.stree.txt | 27 +- ...rEmptyTagHelperBoundAttributes10.stree.txt | 27 +- ...rEmptyTagHelperBoundAttributes11.stree.txt | 40 +- ...rEmptyTagHelperBoundAttributes12.stree.txt | 45 +- ...rEmptyTagHelperBoundAttributes13.stree.txt | 49 +- ...rEmptyTagHelperBoundAttributes14.stree.txt | 57 +- ...orEmptyTagHelperBoundAttributes2.stree.txt | 32 +- ...orEmptyTagHelperBoundAttributes3.stree.txt | 30 +- ...orEmptyTagHelperBoundAttributes4.stree.txt | 40 +- ...orEmptyTagHelperBoundAttributes5.stree.txt | 46 +- ...orEmptyTagHelperBoundAttributes6.stree.txt | 40 +- ...orEmptyTagHelperBoundAttributes7.stree.txt | 37 +- ...orEmptyTagHelperBoundAttributes8.stree.txt | 41 +- ...orEmptyTagHelperBoundAttributes9.stree.txt | 67 +- ...eatesErrorForMalformedTagHelper1.stree.txt | 10 +- ...eatesErrorForMalformedTagHelper2.stree.txt | 16 +- ...eatesErrorForMalformedTagHelper3.stree.txt | 18 +- ...eatesErrorForMalformedTagHelper4.stree.txt | 19 +- ...eatesErrorForMalformedTagHelper5.stree.txt | 16 +- ...eatesErrorForMalformedTagHelper6.stree.txt | 45 +- ...eatesErrorForMalformedTagHelper7.stree.txt | 48 +- ...eatesErrorForMalformedTagHelper8.stree.txt | 37 +- ...lformedTagHelpersWithAttributes1.stree.txt | 22 +- ...formedTagHelpersWithAttributes10.stree.txt | 34 +- ...formedTagHelpersWithAttributes11.stree.txt | 51 +- ...formedTagHelpersWithAttributes12.stree.txt | 51 +- ...formedTagHelpersWithAttributes13.stree.txt | 35 +- ...formedTagHelpersWithAttributes14.stree.txt | 33 +- ...formedTagHelpersWithAttributes15.stree.txt | 46 +- ...formedTagHelpersWithAttributes16.stree.txt | 38 +- ...formedTagHelpersWithAttributes17.stree.txt | 40 +- ...formedTagHelpersWithAttributes18.stree.txt | 32 +- ...formedTagHelpersWithAttributes19.stree.txt | 47 +- ...lformedTagHelpersWithAttributes2.stree.txt | 33 +- ...lformedTagHelpersWithAttributes3.stree.txt | 38 +- ...lformedTagHelpersWithAttributes4.stree.txt | 38 +- ...lformedTagHelpersWithAttributes5.stree.txt | 25 +- ...lformedTagHelpersWithAttributes6.stree.txt | 27 +- ...lformedTagHelpersWithAttributes7.stree.txt | 44 +- ...lformedTagHelpersWithAttributes8.stree.txt | 30 +- ...lformedTagHelpersWithAttributes9.stree.txt | 30 +- ...ForNonStringTagHelperAttributes1.stree.txt | 30 +- ...orNonStringTagHelperAttributes10.stree.txt | 74 +- ...orNonStringTagHelperAttributes11.stree.txt | 125 +- ...ForNonStringTagHelperAttributes2.stree.txt | 30 +- ...ForNonStringTagHelperAttributes3.stree.txt | 51 +- ...ForNonStringTagHelperAttributes4.stree.txt | 53 +- ...ForNonStringTagHelperAttributes5.stree.txt | 31 +- ...ForNonStringTagHelperAttributes6.stree.txt | 56 +- ...ForNonStringTagHelperAttributes7.stree.txt | 153 ++- ...ForNonStringTagHelperAttributes8.stree.txt | 88 +- ...ForNonStringTagHelperAttributes9.stree.txt | 100 +- ...rMinimizedBooleanBoundAttributes.stree.txt | 26 +- ...UnboundDataDashAttributes_Block1.stree.txt | 75 +- ...UnboundDataDashAttributes_Block2.stree.txt | 61 +- ...UnboundDataDashAttributes_Block3.stree.txt | 81 +- ...UnboundDataDashAttributes_Block4.stree.txt | 81 +- ...UnboundDataDashAttributes_Block5.stree.txt | 87 +- ...UnboundDataDashAttributes_Block6.stree.txt | 99 +- ...UnboundDataDashAttributes_Block7.stree.txt | 100 +- ...oundDataDashAttributes_Document1.stree.txt | 44 +- ...oundDataDashAttributes_Document2.stree.txt | 30 +- ...oundDataDashAttributes_Document3.stree.txt | 50 +- ...oundDataDashAttributes_Document4.stree.txt | 50 +- ...oundDataDashAttributes_Document5.stree.txt | 56 +- ...oundDataDashAttributes_Document6.stree.txt | 68 +- ...oundDataDashAttributes_Document7.stree.txt | 69 +- ...eTreeRewriter_AllowsInvalidHtml1.stree.txt | 36 +- ...TreeRewriter_AllowsInvalidHtml10.stree.txt | 82 +- ...eTreeRewriter_AllowsInvalidHtml2.stree.txt | 19 +- ...eTreeRewriter_AllowsInvalidHtml3.stree.txt | 26 +- ...eTreeRewriter_AllowsInvalidHtml4.stree.txt | 23 +- ...eTreeRewriter_AllowsInvalidHtml5.stree.txt | 47 +- ...eTreeRewriter_AllowsInvalidHtml6.stree.txt | 42 +- ...eTreeRewriter_AllowsInvalidHtml7.stree.txt | 52 +- ...eTreeRewriter_AllowsInvalidHtml8.stree.txt | 69 +- ...eTreeRewriter_AllowsInvalidHtml9.stree.txt | 91 +- ...atesErrorForIncompleteTagHelper1.stree.txt | 93 +- ...tesErrorForIncompleteTagHelper2.cspans.txt | 2 +- ...atesErrorForIncompleteTagHelper2.stree.txt | 58 +- ...tesErrorForIncompleteTagHelper2.tspans.txt | 2 +- ...tesErrorForIncompleteTagHelper3.cspans.txt | 4 +- ...atesErrorForIncompleteTagHelper3.stree.txt | 52 +- ...tesErrorForIncompleteTagHelper3.tspans.txt | 4 +- ...atesErrorForIncompleteTagHelper4.stree.txt | 72 +- ...plexAttributeTagHelperTagBlocks1.stree.txt | 84 +- ...plexAttributeTagHelperTagBlocks2.stree.txt | 242 ++-- ...plexAttributeTagHelperTagBlocks3.stree.txt | 93 +- ...plexAttributeTagHelperTagBlocks4.stree.txt | 251 ++-- ...plexAttributeTagHelperTagBlocks5.stree.txt | 111 +- ...plexAttributeTagHelperTagBlocks6.stree.txt | 269 +++-- ...plexAttributeTagHelperTagBlocks7.stree.txt | 175 ++- ...writesComplexTagHelperTagBlocks1.stree.txt | 34 +- ...writesComplexTagHelperTagBlocks2.stree.txt | 109 +- ...writesComplexTagHelperTagBlocks3.stree.txt | 44 +- ...writesComplexTagHelperTagBlocks4.stree.txt | 119 +- ...writesComplexTagHelperTagBlocks5.stree.txt | 69 +- ...writesComplexTagHelperTagBlocks6.stree.txt | 219 ++-- ...writesComplexTagHelperTagBlocks7.stree.txt | 100 +- ...writesComplexTagHelperTagBlocks8.stree.txt | 250 ++-- ...esOddlySpacedTagHelperTagBlocks1.stree.txt | 89 +- ...esOddlySpacedTagHelperTagBlocks2.stree.txt | 98 +- ...esOddlySpacedTagHelperTagBlocks3.stree.txt | 99 +- ...RewritesPlainTagHelperTagBlocks1.stree.txt | 17 +- ...RewritesPlainTagHelperTagBlocks2.stree.txt | 26 +- ...RewritesPlainTagHelperTagBlocks3.stree.txt | 43 +- ...RewritesPlainTagHelperTagBlocks4.stree.txt | 67 +- ...writer_RewritesScriptTagHelpers1.stree.txt | 33 +- ...writer_RewritesScriptTagHelpers2.stree.txt | 41 +- ...writer_RewritesScriptTagHelpers3.stree.txt | 73 +- ...writer_RewritesScriptTagHelpers4.stree.txt | 73 +- ...writer_RewritesScriptTagHelpers5.stree.txt | 48 +- ...writer_RewritesScriptTagHelpers6.stree.txt | 80 +- ...writer_RewritesScriptTagHelpers7.stree.txt | 91 +- ...r_RewritesSelfClosingTagHelpers1.stree.txt | 48 +- ...r_RewritesSelfClosingTagHelpers2.stree.txt | 76 +- ...r_RewritesSelfClosingTagHelpers3.stree.txt | 71 +- ...esTagHelpersWithPlainAttributes1.stree.txt | 52 +- ...esTagHelpersWithPlainAttributes2.stree.txt | 61 +- ...esTagHelpersWithPlainAttributes3.stree.txt | 79 +- ...esTagHelpersWithPlainAttributes4.stree.txt | 128 +- ...gHelpersWithQuotelessAttributes1.stree.txt | 73 +- ...gHelpersWithQuotelessAttributes2.stree.txt | 82 +- ...gHelpersWithQuotelessAttributes3.stree.txt | 98 +- ...gHelpersWithQuotelessAttributes4.stree.txt | 129 +- ...gHelpersWithQuotelessAttributes5.stree.txt | 149 ++- ...rstandsEmptyAttributeTagHelpers1.stree.txt | 31 +- ...rstandsEmptyAttributeTagHelpers2.stree.txt | 31 +- ...rstandsEmptyAttributeTagHelpers3.stree.txt | 28 +- ...rstandsEmptyAttributeTagHelpers4.stree.txt | 50 +- ...rstandsEmptyAttributeTagHelpers5.stree.txt | 46 +- ...standsMinimizedAttributes_Block1.stree.txt | 51 +- ...tandsMinimizedAttributes_Block10.stree.txt | 50 +- ...tandsMinimizedAttributes_Block11.stree.txt | 51 +- ...tandsMinimizedAttributes_Block12.stree.txt | 58 +- ...tandsMinimizedAttributes_Block13.stree.txt | 57 +- ...tandsMinimizedAttributes_Block14.stree.txt | 60 +- ...tandsMinimizedAttributes_Block15.stree.txt | 71 +- ...tandsMinimizedAttributes_Block16.stree.txt | 57 +- ...tandsMinimizedAttributes_Block17.stree.txt | 61 +- ...tandsMinimizedAttributes_Block18.stree.txt | 63 +- ...tandsMinimizedAttributes_Block19.stree.txt | 67 +- ...standsMinimizedAttributes_Block2.stree.txt | 55 +- ...tandsMinimizedAttributes_Block20.stree.txt | 68 +- ...tandsMinimizedAttributes_Block21.stree.txt | 72 +- ...tandsMinimizedAttributes_Block22.stree.txt | 68 +- ...tandsMinimizedAttributes_Block23.stree.txt | 72 +- ...tandsMinimizedAttributes_Block24.stree.txt | 68 +- ...tandsMinimizedAttributes_Block25.stree.txt | 68 +- ...tandsMinimizedAttributes_Block26.stree.txt | 68 +- ...tandsMinimizedAttributes_Block27.stree.txt | 72 +- ...tandsMinimizedAttributes_Block28.stree.txt | 68 +- ...tandsMinimizedAttributes_Block29.stree.txt | 72 +- ...standsMinimizedAttributes_Block3.stree.txt | 51 +- ...tandsMinimizedAttributes_Block30.stree.txt | 100 +- ...tandsMinimizedAttributes_Block31.stree.txt | 104 +- ...tandsMinimizedAttributes_Block32.stree.txt | 161 ++- ...tandsMinimizedAttributes_Block33.stree.txt | 165 ++- ...standsMinimizedAttributes_Block4.stree.txt | 51 +- ...standsMinimizedAttributes_Block5.stree.txt | 55 +- ...standsMinimizedAttributes_Block6.stree.txt | 50 +- ...standsMinimizedAttributes_Block7.stree.txt | 51 +- ...standsMinimizedAttributes_Block8.stree.txt | 51 +- ...standsMinimizedAttributes_Block9.stree.txt | 50 +- ...ndsMinimizedAttributes_Document1.stree.txt | 20 +- ...dsMinimizedAttributes_Document10.stree.txt | 19 +- ...dsMinimizedAttributes_Document11.stree.txt | 20 +- ...dsMinimizedAttributes_Document12.stree.txt | 27 +- ...dsMinimizedAttributes_Document13.stree.txt | 26 +- ...dsMinimizedAttributes_Document14.stree.txt | 29 +- ...dsMinimizedAttributes_Document15.stree.txt | 40 +- ...dsMinimizedAttributes_Document16.stree.txt | 26 +- ...dsMinimizedAttributes_Document17.stree.txt | 30 +- ...dsMinimizedAttributes_Document18.stree.txt | 32 +- ...dsMinimizedAttributes_Document19.stree.txt | 36 +- ...ndsMinimizedAttributes_Document2.stree.txt | 24 +- ...dsMinimizedAttributes_Document20.stree.txt | 37 +- ...dsMinimizedAttributes_Document21.stree.txt | 41 +- ...dsMinimizedAttributes_Document22.stree.txt | 37 +- ...dsMinimizedAttributes_Document23.stree.txt | 41 +- ...dsMinimizedAttributes_Document24.stree.txt | 37 +- ...dsMinimizedAttributes_Document25.stree.txt | 37 +- ...dsMinimizedAttributes_Document26.stree.txt | 37 +- ...dsMinimizedAttributes_Document27.stree.txt | 41 +- ...dsMinimizedAttributes_Document28.stree.txt | 37 +- ...dsMinimizedAttributes_Document29.stree.txt | 41 +- ...ndsMinimizedAttributes_Document3.stree.txt | 20 +- ...dsMinimizedAttributes_Document30.stree.txt | 69 +- ...dsMinimizedAttributes_Document31.stree.txt | 73 +- ...dsMinimizedAttributes_Document32.stree.txt | 130 +- ...dsMinimizedAttributes_Document33.stree.txt | 134 ++- ...ndsMinimizedAttributes_Document4.stree.txt | 20 +- ...ndsMinimizedAttributes_Document5.stree.txt | 24 +- ...ndsMinimizedAttributes_Document6.stree.txt | 19 +- ...ndsMinimizedAttributes_Document7.stree.txt | 20 +- ...ndsMinimizedAttributes_Document8.stree.txt | 20 +- ...ndsMinimizedAttributes_Document9.stree.txt | 19 +- ...MinimizedAttributes_PartialTags1.stree.txt | 16 +- ...MinimizedAttributes_PartialTags2.stree.txt | 16 +- ...MinimizedAttributes_PartialTags3.stree.txt | 16 +- ...MinimizedAttributes_PartialTags4.stree.txt | 28 +- ...MinimizedAttributes_PartialTags5.stree.txt | 16 +- ...MinimizedAttributes_PartialTags6.stree.txt | 16 +- ...MinimizedAttributes_PartialTags7.stree.txt | 22 +- ...MinimizedAttributes_PartialTags8.stree.txt | 47 +- ...sMinimizedBooleanBoundAttributes.stree.txt | 26 +- .../AllowsPrefixedTagHelpers1.stree.txt | 17 +- .../AllowsPrefixedTagHelpers10.stree.txt | 48 +- .../AllowsPrefixedTagHelpers11.stree.txt | 47 +- .../AllowsPrefixedTagHelpers2.stree.txt | 38 +- .../AllowsPrefixedTagHelpers3.stree.txt | 13 +- .../AllowsPrefixedTagHelpers4.stree.txt | 17 +- .../AllowsPrefixedTagHelpers5.stree.txt | 39 +- .../AllowsPrefixedTagHelpers6.stree.txt | 23 +- .../AllowsPrefixedTagHelpers7.stree.txt | 37 +- .../AllowsPrefixedTagHelpers8.stree.txt | 31 +- .../AllowsPrefixedTagHelpers9.stree.txt | 31 +- .../AllowsRazorCommentsAsChildren.stree.txt | 60 +- .../AllowsRazorMarkupInHtmlComment.stree.txt | 78 +- ...lowsSimpleHtmlCommentsAsChildren.stree.txt | 67 +- ...agInCSharpBlock_WithAttrTextTag1.stree.txt | 70 +- ...agInCSharpBlock_WithAttrTextTag2.stree.txt | 94 +- ...agInCSharpBlock_WithAttrTextTag3.stree.txt | 106 +- ...agInCSharpBlock_WithAttrTextTag4.stree.txt | 119 +- ...agInCSharpBlock_WithAttrTextTag5.stree.txt | 126 +- ...gInCSharpBlock_WithBlockTextTag1.stree.txt | 44 +- ...gInCSharpBlock_WithBlockTextTag2.stree.txt | 52 +- ...gInCSharpBlock_WithBlockTextTag3.stree.txt | 68 +- ...gInCSharpBlock_WithBlockTextTag4.stree.txt | 80 +- ...gInCSharpBlock_WithBlockTextTag5.stree.txt | 62 +- ...gInCSharpBlock_WithBlockTextTag6.stree.txt | 62 +- ...gInCSharpBlock_WithBlockTextTag7.stree.txt | 82 +- ...gInCSharpBlock_WithBlockTextTag8.stree.txt | 72 +- ...gInCSharpBlock_WithBlockTextTag9.stree.txt | 82 +- ...lperElementOptForIncompleteHTML1.stree.txt | 9 +- ...lperElementOptForIncompleteHTML2.stree.txt | 17 +- ...lperElementOptForIncompleteHTML3.stree.txt | 21 +- ...lperElementOptForIncompleteHTML4.stree.txt | 28 +- ...lperElementOptForIncompleteHTML5.stree.txt | 37 +- ...lperElementOptForIncompleteHTML6.stree.txt | 41 +- ...lperElementOptForIncompleteHTML7.stree.txt | 47 +- ...tForIncompleteHTMLInCSharpBlock1.stree.txt | 38 +- ...tForIncompleteHTMLInCSharpBlock2.stree.txt | 38 +- ...tForIncompleteHTMLInCSharpBlock3.stree.txt | 48 +- ...tForIncompleteHTMLInCSharpBlock4.stree.txt | 55 +- ...tForIncompleteHTMLInCSharpBlock5.stree.txt | 58 +- ...tForIncompleteHTMLInCSharpBlock6.stree.txt | 73 +- ...tForIncompleteHTMLInCSharpBlock7.stree.txt | 68 +- ...tForIncompleteHTMLInCSharpBlock8.stree.txt | 74 +- ...rIncompleteTextTagInCSharpBlock1.stree.txt | 38 +- ...rIncompleteTextTagInCSharpBlock2.stree.txt | 48 +- ...rIncompleteTextTagInCSharpBlock3.stree.txt | 55 +- ...rIncompleteTextTagInCSharpBlock4.stree.txt | 58 +- ...rIncompleteTextTagInCSharpBlock5.stree.txt | 68 +- ...rIncompleteTextTagInCSharpBlock6.stree.txt | 74 +- ...tOptOutCSharp_WithAttributeData1.stree.txt | 70 +- ...tOptOutCSharp_WithAttributeData2.stree.txt | 94 +- ...tOptOutCSharp_WithAttributeData3.stree.txt | 106 +- ...tOptOutCSharp_WithAttributeData4.stree.txt | 119 +- ...tOptOutCSharp_WithAttributeData5.stree.txt | 126 +- ...ementOptOutCSharp_WithBlockData1.stree.txt | 44 +- ...mentOptOutCSharp_WithBlockData10.stree.txt | 74 +- ...mentOptOutCSharp_WithBlockData11.stree.txt | 84 +- ...mentOptOutCSharp_WithBlockData12.stree.txt | 118 +- ...ementOptOutCSharp_WithBlockData2.stree.txt | 52 +- ...ementOptOutCSharp_WithBlockData3.stree.txt | 68 +- ...ementOptOutCSharp_WithBlockData4.stree.txt | 80 +- ...ementOptOutCSharp_WithBlockData5.stree.txt | 62 +- ...ementOptOutCSharp_WithBlockData6.stree.txt | 60 +- ...ementOptOutCSharp_WithBlockData7.stree.txt | 82 +- ...ementOptOutCSharp_WithBlockData8.stree.txt | 70 +- ...ementOptOutCSharp_WithBlockData9.stree.txt | 82 +- ...entOptOutHTML_WithAttributeData1.stree.txt | 45 +- ...entOptOutHTML_WithAttributeData2.stree.txt | 63 +- ...entOptOutHTML_WithAttributeData3.stree.txt | 76 +- ...entOptOutHTML_WithAttributeData4.stree.txt | 88 +- ...entOptOutHTML_WithAttributeData5.stree.txt | 95 +- ...ElementOptOutHTML_WithBlockData1.stree.txt | 19 +- ...lementOptOutHTML_WithBlockData10.stree.txt | 35 +- ...lementOptOutHTML_WithBlockData11.stree.txt | 51 +- ...lementOptOutHTML_WithBlockData12.stree.txt | 77 +- ...ElementOptOutHTML_WithBlockData2.stree.txt | 21 +- ...ElementOptOutHTML_WithBlockData3.stree.txt | 37 +- ...ElementOptOutHTML_WithBlockData4.stree.txt | 50 +- ...ElementOptOutHTML_WithBlockData5.stree.txt | 31 +- ...ElementOptOutHTML_WithBlockData6.stree.txt | 29 +- ...ElementOptOutHTML_WithBlockData7.stree.txt | 51 +- ...ElementOptOutHTML_WithBlockData8.stree.txt | 45 +- ...ElementOptOutHTML_WithBlockData9.stree.txt | 49 +- ...dleInvalidChildrenWithWhitespace.stree.txt | 63 +- ...pleTagHelpersWithAllowedChildren.stree.txt | 48 +- ...lpersWithAllowedChildren_OneNull.stree.txt | 48 +- .../CanHandleStartTagOnlyTagTagMode.stree.txt | 11 +- ...rrorForInconsistentTagStructures.stree.txt | 11 +- ...houtEndTagTagStructureForEndTags.stree.txt | 15 +- ...esNotRewriteSpecialTagTagHelpers1.diag.txt | 5 + ...sNotRewriteSpecialTagTagHelpers1.stree.txt | 53 +- ...esNotRewriteSpecialTagTagHelpers2.diag.txt | 5 + ...sNotRewriteSpecialTagTagHelpers2.stree.txt | 62 +- ...esNotRewriteSpecialTagTagHelpers3.diag.txt | 5 + ...sNotRewriteSpecialTagTagHelpers3.stree.txt | 48 +- ...esNotRewriteSpecialTagTagHelpers4.diag.txt | 5 + ...sNotRewriteSpecialTagTagHelpers4.stree.txt | 57 +- ...esNotRewriteSpecialTagTagHelpers5.diag.txt | 5 + ...sNotRewriteSpecialTagTagHelpers5.stree.txt | 55 +- ...esNotRewriteSpecialTagTagHelpers6.diag.txt | 5 + ...sNotRewriteSpecialTagTagHelpers6.stree.txt | 50 +- ...esNotRewriteSpecialTagTagHelpers7.diag.txt | 5 + ...sNotRewriteSpecialTagTagHelpers7.stree.txt | 54 +- ...esNotRewriteSpecialTagTagHelpers8.diag.txt | 5 + ...sNotRewriteSpecialTagTagHelpers8.stree.txt | 63 +- ...riteTextTagTransitionTagHelpers1.stree.txt | 26 +- ...riteTextTagTransitionTagHelpers2.stree.txt | 64 +- ...riteTextTagTransitionTagHelpers3.stree.txt | 78 +- ...riteTextTagTransitionTagHelpers4.stree.txt | 70 +- ...ersInInvalidHtmlTypedScriptTags1.stree.txt | 48 +- ...ersInInvalidHtmlTypedScriptTags2.stree.txt | 67 +- ...ersInInvalidHtmlTypedScriptTags3.stree.txt | 75 +- ...ersInInvalidHtmlTypedScriptTags4.stree.txt | 95 +- ...tsAsChildrenWhenFeatureFlagIsOff.stree.txt | 37 +- ...ForContentWithCommentsAsChildren.stree.txt | 61 +- ...NestedNonTagHelperTags_Correctly.stree.txt | 52 +- ...dAllowedChildrenAndRequireParent.stree.txt | 29 +- ...sCreateTagHelperBlocksCorrectly1.stree.txt | 57 +- ...CreateTagHelperBlocksCorrectly10.stree.txt | 133 ++- ...sCreateTagHelperBlocksCorrectly2.stree.txt | 57 +- ...sCreateTagHelperBlocksCorrectly3.stree.txt | 79 +- ...sCreateTagHelperBlocksCorrectly4.stree.txt | 79 +- ...sCreateTagHelperBlocksCorrectly5.stree.txt | 89 +- ...sCreateTagHelperBlocksCorrectly6.stree.txt | 89 +- ...sCreateTagHelperBlocksCorrectly7.stree.txt | 89 +- ...sCreateTagHelperBlocksCorrectly8.stree.txt | 89 +- ...sCreateTagHelperBlocksCorrectly9.stree.txt | 133 ++- ...agHelperPrefixAndAllowedChildren.stree.txt | 39 +- ...uteMismatchAndRestrictedChildren.stree.txt | 46 +- ...lformedTagHelperBlocksCorrectly1.stree.txt | 11 +- ...formedTagHelperBlocksCorrectly10.stree.txt | 51 +- ...lformedTagHelperBlocksCorrectly2.stree.txt | 27 +- ...lformedTagHelperBlocksCorrectly3.stree.txt | 44 +- ...lformedTagHelperBlocksCorrectly4.stree.txt | 23 +- ...lformedTagHelperBlocksCorrectly5.stree.txt | 34 +- ...lformedTagHelperBlocksCorrectly6.stree.txt | 51 +- ...lformedTagHelperBlocksCorrectly7.stree.txt | 39 +- ...lformedTagHelperBlocksCorrectly8.stree.txt | 56 +- ...lformedTagHelperBlocksCorrectly9.stree.txt | 34 +- ...sCreateTagHelperBlocksCorrectly1.stree.txt | 17 +- ...CreateTagHelperBlocksCorrectly10.stree.txt | 31 +- ...CreateTagHelperBlocksCorrectly11.stree.txt | 47 +- ...CreateTagHelperBlocksCorrectly12.stree.txt | 48 +- ...CreateTagHelperBlocksCorrectly13.stree.txt | 64 +- ...CreateTagHelperBlocksCorrectly14.stree.txt | 43 +- ...CreateTagHelperBlocksCorrectly15.stree.txt | 51 +- ...CreateTagHelperBlocksCorrectly16.stree.txt | 48 +- ...CreateTagHelperBlocksCorrectly17.stree.txt | 64 +- ...CreateTagHelperBlocksCorrectly18.stree.txt | 65 +- ...CreateTagHelperBlocksCorrectly19.stree.txt | 44 +- ...sCreateTagHelperBlocksCorrectly2.stree.txt | 25 +- ...CreateTagHelperBlocksCorrectly20.stree.txt | 64 +- ...CreateTagHelperBlocksCorrectly21.stree.txt | 61 +- ...CreateTagHelperBlocksCorrectly22.stree.txt | 97 +- ...CreateTagHelperBlocksCorrectly23.stree.txt | 82 +- ...CreateTagHelperBlocksCorrectly24.stree.txt | 48 +- ...CreateTagHelperBlocksCorrectly25.stree.txt | 65 +- ...CreateTagHelperBlocksCorrectly26.stree.txt | 61 +- ...CreateTagHelperBlocksCorrectly27.stree.txt | 79 +- ...CreateTagHelperBlocksCorrectly28.stree.txt | 90 +- ...CreateTagHelperBlocksCorrectly29.stree.txt | 131 +- ...sCreateTagHelperBlocksCorrectly3.stree.txt | 17 +- ...CreateTagHelperBlocksCorrectly30.stree.txt | 100 +- ...sCreateTagHelperBlocksCorrectly4.stree.txt | 25 +- ...sCreateTagHelperBlocksCorrectly5.stree.txt | 31 +- ...sCreateTagHelperBlocksCorrectly6.stree.txt | 47 +- ...sCreateTagHelperBlocksCorrectly7.stree.txt | 48 +- ...sCreateTagHelperBlocksCorrectly8.stree.txt | 64 +- ...sCreateTagHelperBlocksCorrectly9.stree.txt | 69 +- ...ewritesNestedTagHelperTagBlocks1.stree.txt | 31 +- ...ewritesNestedTagHelperTagBlocks2.stree.txt | 42 +- ...ewritesNestedTagHelperTagBlocks3.stree.txt | 75 +- ...ewritesNestedTagHelperTagBlocks4.stree.txt | 91 +- .../UnderstandsAllowedChildren1.stree.txt | 27 +- .../UnderstandsAllowedChildren10.stree.txt | 92 +- .../UnderstandsAllowedChildren11.stree.txt | 100 +- .../UnderstandsAllowedChildren12.stree.txt | 25 +- .../UnderstandsAllowedChildren13.stree.txt | 23 +- .../UnderstandsAllowedChildren14.stree.txt | 97 +- .../UnderstandsAllowedChildren2.stree.txt | 35 +- .../UnderstandsAllowedChildren3.stree.txt | 25 +- .../UnderstandsAllowedChildren4.stree.txt | 21 +- .../UnderstandsAllowedChildren5.stree.txt | 31 +- .../UnderstandsAllowedChildren6.stree.txt | 29 +- .../UnderstandsAllowedChildren7.stree.txt | 49 +- .../UnderstandsAllowedChildren8.stree.txt | 49 +- .../UnderstandsAllowedChildren9.stree.txt | 60 +- ...UnderstandsNestedRequiredParent1.stree.txt | 25 +- ...UnderstandsNestedRequiredParent2.stree.txt | 31 +- ...UnderstandsNestedRequiredParent3.stree.txt | 39 +- ...UnderstandsNestedRequiredParent4.stree.txt | 47 +- ...UnderstandsNestedRequiredParent5.stree.txt | 53 +- ...edVoidSelfClosingRequiredParent1.stree.txt | 33 +- ...edVoidSelfClosingRequiredParent2.stree.txt | 39 +- ...edVoidSelfClosingRequiredParent3.stree.txt | 41 +- ...edVoidSelfClosingRequiredParent4.stree.txt | 55 +- ...edVoidSelfClosingRequiredParent5.stree.txt | 33 +- ...edVoidSelfClosingRequiredParent6.stree.txt | 37 +- ...edVoidSelfClosingRequiredParent7.stree.txt | 41 +- ...edVoidSelfClosingRequiredParent8.stree.txt | 55 +- ...meWithAllowedChildrenForCatchAll.stree.txt | 25 +- ...wedChildrenForCatchAllWithPrefix.stree.txt | 25 +- ...standsPartialRequiredParentTags1.stree.txt | 19 +- ...standsPartialRequiredParentTags2.stree.txt | 25 +- ...standsPartialRequiredParentTags3.stree.txt | 33 +- ...standsPartialRequiredParentTags4.stree.txt | 62 +- ...standsPartialRequiredParentTags5.stree.txt | 63 +- ...standsPartialRequiredParentTags6.stree.txt | 69 +- ...agHelperPrefixAndAllowedChildren.stree.txt | 31 +- ...dAllowedChildrenAndRequireParent.stree.txt | 31 +- ...TagHelpersInHtmlTypedScriptTags1.stree.txt | 65 +- ...TagHelpersInHtmlTypedScriptTags2.stree.txt | 113 +- ...TagHelpersInHtmlTypedScriptTags3.stree.txt | 131 +- ...TagHelpersInHtmlTypedScriptTags4.stree.txt | 139 ++- .../Language/Legacy/BlockFactory.cs | 2 +- .../Language/Legacy/BlockTypes.cs | 16 +- .../Language/Legacy/ParserTestBase.cs | 57 +- .../Legacy/SyntaxNodeParserTestBase.cs | 8 +- .../Language/Legacy/SyntaxNodeWriter.cs | 43 + .../TagHelperSpan/TagHelperSpanSerializer.cs | 28 +- .../TagHelperSpan/TagHelperSpanVerifier.cs | 32 +- .../TagHelperSpan/TagHelperSpanWriter.cs | 29 +- 515 files changed, 21672 insertions(+), 8994 deletions(-) create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Legacy/LegacyTagHelperAttributeNode.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Legacy/LegacyTagHelperBlockRewriter.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperAttributeInfo.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperInfo.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Syntax/InternalSyntax/RazorSyntaxNode.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Syntax/MarkupElementRewriter.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Syntax/MarkupMinimizedTagHelperAttributeSyntax.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Syntax/MarkupTagHelperAttributeSyntax.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Syntax/MarkupTagHelperElementSyntax.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Syntax/RazorSyntaxNode.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxExtensions.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/TagHelperSpanVisitor.cs create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/MarkupElementRewriterTest.cs create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_DoesNotSpecialCase_VoidTags.cspans.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_DoesNotSpecialCase_VoidTags.stree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_EndTagsWithMissingStartTags.cspans.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_EndTagsWithMissingStartTags.stree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_IncompleteTags.cspans.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_IncompleteTags.stree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_MalformedTags_RecoversSuccessfully.cspans.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_MalformedTags_RecoversSuccessfully.stree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_MisplacedEndTags_RecoversSuccessfully.cspans.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_MisplacedEndTags_RecoversSuccessfully.stree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_SelfClosingTags.cspans.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_SelfClosingTags.stree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_StartTagsWithMissingEndTags.cspans.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_StartTagsWithMissingEndTags.stree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidNestedTags.cspans.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidNestedTags.stree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidNestedTagsMixedWithCode.cspans.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidNestedTagsMixedWithCode.stree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidTags.cspans.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidTags.stree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes1.diag.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes2.diag.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes3.diag.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes4.diag.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes5.diag.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes6.diag.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes7.diag.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers1.diag.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers2.diag.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers3.diag.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers4.diag.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers5.diag.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers6.diag.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers7.diag.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers8.diag.txt diff --git a/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs b/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs index b17fb96c9..40f70c74e 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs @@ -97,11 +97,63 @@ public override SyntaxNode VisitMarkupBlock(MarkupBlockSyntax node) return WriteBlock(node, BlockKindInternal.Markup, base.VisitMarkupBlock); } + public override SyntaxNode VisitGenericBlock(GenericBlockSyntax node) + { + if (!(node.Parent is MarkupDynamicAttributeValueSyntax) && + node.FirstAncestorOrSelf(n => n is MarkupDynamicAttributeValueSyntax) != null) + { + return WriteBlock(node, BlockKindInternal.Expression, base.VisitGenericBlock); + } + + return base.VisitGenericBlock(node); + } + + public override SyntaxNode VisitMarkupTagHelperAttributeValue(MarkupTagHelperAttributeValueSyntax node) + { + // We don't generate a classified span when the attribute value is a simple literal value. + if (node.Children.Count > 1 || + (node.Children.Count == 1 && node.Children[0] is MarkupDynamicAttributeValueSyntax)) + { + return WriteBlock(node, BlockKindInternal.Markup, base.VisitMarkupTagHelperAttributeValue); + } + + return base.VisitMarkupTagHelperAttributeValue(node); + } + public override SyntaxNode VisitMarkupTagBlock(MarkupTagBlockSyntax node) { return WriteBlock(node, BlockKindInternal.Tag, base.VisitMarkupTagBlock); } + public override SyntaxNode VisitMarkupTagHelperElement(MarkupTagHelperElementSyntax node) + { + return WriteBlock(node, BlockKindInternal.Tag, base.VisitMarkupTagHelperElement); + } + + public override SyntaxNode VisitMarkupTagHelperStartTag(MarkupTagHelperStartTagSyntax node) + { + var rewritten = new List(); + foreach (var child in node.Children) + { + if (child is MarkupTagHelperAttributeSyntax attribute) + { + var rewrittenAttribute = (MarkupTagHelperAttributeSyntax)Visit(attribute); + rewritten.Add(rewrittenAttribute); + } + else + { + rewritten.Add(child); + } + } + + return node.Update(new SyntaxList(rewritten)); + } + + public override SyntaxNode VisitMarkupTagHelperEndTag(MarkupTagHelperEndTagSyntax node) + { + return node; + } + public override SyntaxNode VisitMarkupAttributeBlock(MarkupAttributeBlockSyntax node) { return WriteBlock(node, BlockKindInternal.Markup, n => @@ -116,6 +168,13 @@ public override SyntaxNode VisitMarkupAttributeBlock(MarkupAttributeBlockSyntax }); } + public override SyntaxNode VisitMarkupTagHelperAttribute(MarkupTagHelperAttributeSyntax node) + { + var rewrittenValue = (MarkupTagHelperAttributeValueSyntax)Visit(node.Value); + + return node.Update(node.NamePrefix, node.Name, node.NameSuffix, node.EqualsToken, node.ValuePrefix, rewrittenValue, node.ValueSuffix); + } + public override SyntaxNode VisitMarkupMinimizedAttributeBlock(MarkupMinimizedAttributeBlockSyntax node) { return WriteBlock(node, BlockKindInternal.Markup, n => diff --git a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorIntermediateNodeLoweringPhase.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorIntermediateNodeLoweringPhase.cs index 2e627b8e5..66507df91 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorIntermediateNodeLoweringPhase.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorIntermediateNodeLoweringPhase.cs @@ -704,7 +704,7 @@ private void Combine(HtmlContentIntermediateNode node, Span span) } } - private void AddTagHelperAttributes(IList attributes, TagHelperBinding tagHelperBinding) + private void AddTagHelperAttributes(IList attributes, TagHelperBinding tagHelperBinding) { var descriptors = tagHelperBinding.Descriptors; var renderedBoundAttributeNames = new HashSet(StringComparer.OrdinalIgnoreCase); diff --git a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorTagHelperBinderPhase.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorTagHelperBinderPhase.cs index d76e9ce4a..dd3677b56 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorTagHelperBinderPhase.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorTagHelperBinderPhase.cs @@ -64,21 +64,9 @@ protected override void ExecuteCore(RazorCodeDocument codeDocument) return; } - var errorSink = new ErrorSink(); - var rewriter = new TagHelperParseTreeRewriter(tagHelperPrefix, descriptors, syntaxTree.Options.FeatureFlags); - - var root = syntaxTree.Root; - root = rewriter.Rewrite(root, errorSink); - - var errorList = new List(); - errorList.AddRange(errorSink.Errors); - - errorList.AddRange(descriptors.SelectMany(d => d.GetAllDiagnostics())); - - var diagnostics = CombineErrors(syntaxTree.Diagnostics, errorList); - - var newSyntaxTree = RazorSyntaxTree.Create(root, syntaxTree.Source, diagnostics, syntaxTree.Options); - codeDocument.SetSyntaxTree(newSyntaxTree); + var rewrittenSyntaxTree = TagHelperParseTreeRewriter.Rewrite(syntaxTree, tagHelperPrefix, descriptors); + + codeDocument.SetSyntaxTree(rewrittenSyntaxTree); } private void LegacyExecuteCore(RazorCodeDocument codeDocument) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlParser.cs index 238f3363a..72306a76d 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlParser.cs @@ -243,7 +243,7 @@ private void ParseTagInDocumentContext(in SyntaxListBuilder bui // If the script tag expects javascript content then we should do minimal parsing until we reach // the end script tag. Don't want to incorrectly parse a "var tag = '';" as an HTML tag. - if (scriptTag && !CurrentScriptTagExpectsHtml(builder)) + if (scriptTag && !CurrentScriptTagExpectsHtml(tagBuilder)) { tagBuilder.Add(OutputTokensAsMarkupLiteral()); var block = SyntaxFactory.MarkupTagBlock(tagBuilder.ToList()); @@ -446,7 +446,10 @@ private MarkupAttributeBlockSyntax ParseAttributePrefix( ParseAttributeValue(attributeValueBuilder, quote); } - attributeValue = SyntaxFactory.GenericBlock(attributeValueBuilder.ToList()); + if (attributeValueBuilder.Count > 0) + { + attributeValue = SyntaxFactory.GenericBlock(attributeValueBuilder.ToList()); + } } } @@ -469,6 +472,10 @@ private MarkupAttributeBlockSyntax ParseAttributePrefix( // Not a "conditional" attribute, so just read the value SkipToAndParseCode(attributeValueBuilder, token => IsEndOfAttributeValue(quote, token)); + // Output already accepted tokens if any as markup literal + var literalValue = OutputTokensAsMarkupLiteral(); + attributeValueBuilder.Add(literalValue); + // Capture the attribute value (will include everything in-between the attribute's quotes). attributeValue = SyntaxFactory.GenericBlock(attributeValueBuilder.ToList()); } @@ -795,16 +802,15 @@ private bool CurrentScriptTagExpectsHtml(in SyntaxListBuilder b IsTypeAttribute(attributeBlock)) { typeAttribute = attributeBlock; + break; } } if (typeAttribute != null) { - var contentValues = typeAttribute.Value.Children.Nodes - .OfType() - .Select(textLiteral => textLiteral.ToFullString()); + var contentValues = typeAttribute.Value.CreateRed().DescendantNodes().Where(n => n.IsToken).Cast(); - var scriptType = string.Concat(contentValues).Trim(); + var scriptType = string.Concat(contentValues.Select(t => t.Content)).Trim(); // Does not allow charset parameter (or any other parameters). return string.Equals(scriptType, "text/html", StringComparison.OrdinalIgnoreCase); diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/LegacyTagHelperAttributeNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/LegacyTagHelperAttributeNode.cs new file mode 100644 index 000000000..01f878a2f --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/LegacyTagHelperAttributeNode.cs @@ -0,0 +1,27 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +namespace Microsoft.AspNetCore.Razor.Language.Legacy +{ + internal class LegacyTagHelperAttributeNode + { + public LegacyTagHelperAttributeNode(string name, SyntaxTreeNode value, AttributeStructure attributeStructure) + { + Name = name; + Value = value; + AttributeStructure = attributeStructure; + } + + // Internal for testing + internal LegacyTagHelperAttributeNode(string name, SyntaxTreeNode value) + : this(name, value, AttributeStructure.DoubleQuotes) + { + } + + public string Name { get; } + + public SyntaxTreeNode Value { get; } + + public AttributeStructure AttributeStructure { get; } + } +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/LegacyTagHelperBlockRewriter.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/LegacyTagHelperBlockRewriter.cs new file mode 100644 index 000000000..72b127fe7 --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/LegacyTagHelperBlockRewriter.cs @@ -0,0 +1,765 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using Microsoft.AspNetCore.Razor.Language.Syntax; + +namespace Microsoft.AspNetCore.Razor.Language.Legacy +{ + internal static class LegacyTagHelperBlockRewriter + { + private static readonly string StringTypeName = typeof(string).FullName; + + public static TagHelperBlockBuilder Rewrite( + string tagName, + bool validStructure, + RazorParserFeatureFlags featureFlags, + Block tag, + TagHelperBinding bindingResult, + ErrorSink errorSink) + { + // There will always be at least one child for the '<'. + var start = tag.Children.First().Start; + var attributes = GetTagAttributes(tagName, validStructure, tag, bindingResult, errorSink, featureFlags); + var tagMode = GetTagMode(tagName, tag, bindingResult, errorSink); + + return new TagHelperBlockBuilder(tagName, tagMode, start, attributes, bindingResult); + } + + private static IList GetTagAttributes( + string tagName, + bool validStructure, + Block tagBlock, + TagHelperBinding bindingResult, + ErrorSink errorSink, + RazorParserFeatureFlags featureFlags) + { + var attributes = new List(); + + // We skip the first child "" or "/>". + // The -2 accounts for both the start and end tags. If the tag does not have a valid structure then there's + // no end tag to ignore. + var tokenOffset = validStructure ? 2 : 1; + var attributeChildren = tagBlock.Children.Skip(1).Take(tagBlock.Children.Count() - tokenOffset); + var processedBoundAttributeNames = new HashSet(StringComparer.OrdinalIgnoreCase); + + foreach (var child in attributeChildren) + { + TryParseResult result; + if (child.IsBlock) + { + result = TryParseBlock(tagName, (Block)child, bindingResult.Descriptors, errorSink, processedBoundAttributeNames); + } + else + { + result = TryParseSpan((Span)child, bindingResult.Descriptors, errorSink, processedBoundAttributeNames); + } + + // Only want to track the attribute if we succeeded in parsing its corresponding Block/Span. + if (result != null) + { + // Check if it's a non-boolean bound attribute that is minimized or if it's a bound + // non-string attribute that has null or whitespace content. + var isMinimized = result.AttributeValueNode == null; + var isValidMinimizedAttribute = featureFlags.AllowMinimizedBooleanTagHelperAttributes && result.IsBoundBooleanAttribute; + if ((isMinimized && + result.IsBoundAttribute && + !isValidMinimizedAttribute) || + (!isMinimized && + result.IsBoundNonStringAttribute && + IsNullOrWhitespaceAttributeValue(result.AttributeValueNode))) + { + var errorLocation = GetAttributeNameLocation(child, result.AttributeName); + var propertyTypeName = GetPropertyType(result.AttributeName, bindingResult.Descriptors); + var diagnostic = RazorDiagnosticFactory.CreateTagHelper_EmptyBoundAttribute(errorLocation, result.AttributeName, tagName, propertyTypeName); + errorSink.OnError(diagnostic); + } + + // Check if the attribute was a prefix match for a tag helper dictionary property but the + // dictionary key would be the empty string. + if (result.IsMissingDictionaryKey) + { + var errorLocation = GetAttributeNameLocation(child, result.AttributeName); + var diagnostic = RazorDiagnosticFactory.CreateParsing_TagHelperIndexerAttributeNameMustIncludeKey(errorLocation, result.AttributeName, tagName); + errorSink.OnError(diagnostic); + } + + var attributeNode = new LegacyTagHelperAttributeNode( + result.AttributeName, + result.AttributeValueNode, + result.AttributeStructure); + + attributes.Add(attributeNode); + } + else + { + // Error occurred while parsing the attribute. Don't try parsing the rest to avoid misleading errors. + break; + } + } + + return attributes; + } + + private static TagMode GetTagMode( + string tagName, + Block beginTagBlock, + TagHelperBinding bindingResult, + ErrorSink errorSink) + { + var childSpan = beginTagBlock.FindLastDescendentSpan(); + + // Self-closing tags are always valid despite descriptors[X].TagStructure. + if (childSpan?.Content.EndsWith("/>", StringComparison.Ordinal) ?? false) + { + return TagMode.SelfClosing; + } + + foreach (var descriptor in bindingResult.Descriptors) + { + var boundRules = bindingResult.GetBoundRules(descriptor); + var nonDefaultRule = boundRules.FirstOrDefault(rule => rule.TagStructure != TagStructure.Unspecified); + + if (nonDefaultRule?.TagStructure == TagStructure.WithoutEndTag) + { + return TagMode.StartTagOnly; + } + } + + return TagMode.StartTagAndEndTag; + } + + // This method handles cases when the attribute is a simple span attribute such as + // class="something moresomething". This does not handle complex attributes such as + // class="@myclass". Therefore the span.Content is equivalent to the entire attribute. + private static TryParseResult TryParseSpan( + Span span, + IEnumerable descriptors, + ErrorSink errorSink, + HashSet processedBoundAttributeNames) + { + var afterEquals = false; + var builder = new SpanBuilder(span.Start) + { + ChunkGenerator = span.ChunkGenerator, + EditHandler = span.EditHandler, + Kind = span.Kind + }; + + // Will contain tokens that represent a single attribute value: + var tokens = span.Tokens; + var capturedAttributeValueStart = false; + var attributeValueStartLocation = span.Start; + + // Default to DoubleQuotes. We purposefully do not persist NoQuotes ValueStyle to stay consistent with the + // TryParseBlock() variation of attribute parsing. + var attributeValueStyle = AttributeStructure.DoubleQuotes; + + // The tokenOffset is initialized to 0 to expect worst case: "class=". If a quote is found later on for + // the attribute value the tokenOffset is adjusted accordingly. + var tokenOffset = 0; + string name = null; + + // Iterate down through the tokens to find the name and the start of the value. + // We subtract the tokenOffset so we don't accept an ending quote of a span. + for (var i = 0; i < tokens.Count - tokenOffset; i++) + { + var token = tokens[i]; + + if (afterEquals) + { + // We've captured all leading whitespace, the attribute name, and an equals with an optional + // quote/double quote. We're now at: " asp-for='|...'" or " asp-for=|..." + // The goal here is to capture all tokens until the end of the attribute. Note this will not + // consume an ending quote due to the tokenOffset. + + // When tokens are accepted into SpanBuilders, their locations get altered to be offset by the + // parent which is why we need to mark our start location prior to adding the token. + // This is needed to know the location of the attribute value start within the document. + if (!capturedAttributeValueStart) + { + capturedAttributeValueStart = true; + + attributeValueStartLocation = token.Start; + } + + builder.Accept(token.Green); + } + else if (name == null && HtmlMarkupParser.IsValidAttributeNameToken(token.Green)) + { + // We've captured all leading whitespace prior to the attribute name. + // We're now at: " |asp-for='...'" or " |asp-for=..." + // The goal here is to capture the attribute name. + + var nameBuilder = new StringBuilder(); + // Move the indexer past the attribute name tokens. + for (var j = i; j < tokens.Count; j++) + { + var nameToken = tokens[j]; + if (!HtmlMarkupParser.IsValidAttributeNameToken(nameToken.Green)) + { + break; + } + + nameBuilder.Append(nameToken.Content); + i++; + } + + i--; + + name = nameBuilder.ToString(); + attributeValueStartLocation = SourceLocationTracker.Advance(attributeValueStartLocation, name); + } + else if (token.Kind == SyntaxKind.Equals) + { + // We've captured all leading whitespace and the attribute name. + // We're now at: " asp-for|='...'" or " asp-for|=..." + // The goal here is to consume the equal sign and the optional single/double-quote. + + // The coming tokens will either be a quote or value (in the case that the value is unquoted). + + SourceLocation tokenStartLocation; + + // Skip the whitespace preceding the start of the attribute value. + do + { + i++; // Start from the token after '='. + } while (i < tokens.Count && + (tokens[i].Kind == SyntaxKind.Whitespace || + tokens[i].Kind == SyntaxKind.NewLine)); + + // Check for attribute start values, aka single or double quote + if (i < tokens.Count && IsQuote(tokens[i])) + { + if (tokens[i].Kind == SyntaxKind.SingleQuote) + { + attributeValueStyle = AttributeStructure.SingleQuotes; + } + + tokenStartLocation = tokens[i].Start; + + // If there's a start quote then there must be an end quote to be valid, skip it. + tokenOffset = 1; + } + else + { + // We are at the token after equals. Go back to equals to ensure we don't skip past that token. + i--; + + tokenStartLocation = token.Start; + } + + attributeValueStartLocation = new SourceLocation( + tokenStartLocation.FilePath, + tokenStartLocation.AbsoluteIndex + 1, + tokenStartLocation.LineIndex, + tokenStartLocation.CharacterIndex + 1); + + afterEquals = true; + } + else if (token.Kind == SyntaxKind.Whitespace) + { + // We're at the start of the attribute, this branch may be hit on the first iterations of + // the loop since the parser separates attributes with their spaces included as tokens. + // We're at: "| asp-for='...'" or "| asp-for=..." + // Note: This will not be hit even for situations like asp-for ="..." because the core Razor + // parser currently does not know how to handle attributes in that format. This will be addressed + // by https://github.com/aspnet/Razor/issues/123. + + attributeValueStartLocation = SourceLocationTracker.Advance(attributeValueStartLocation, token.Content); + } + } + + // After all tokens have been added we need to set the builders start position so we do not indirectly + // modify the span's start location. + builder.Start = attributeValueStartLocation; + + if (name == null) + { + // We couldn't find a name, if the original span content was whitespace it ultimately means the tag + // that owns this "attribute" is malformed and is expecting a user to type a new attribute. + // ex: descriptors, + ErrorSink errorSink, + HashSet processedBoundAttributeNames) + { + // TODO: Accept more than just spans: https://github.com/aspnet/Razor/issues/96. + // The first child will only ever NOT be a Span if a user is doing something like: + // + + var childSpan = block.Children.First() as Span; + + if (childSpan == null || childSpan.Kind != SpanKindInternal.Markup) + { + var location = new SourceSpan(block.Start, block.Length); + var diagnostic = RazorDiagnosticFactory.CreateParsing_TagHelpersCannotHaveCSharpInTagDeclaration(location, tagName); + errorSink.OnError(diagnostic); + + return null; + } + + var builder = new BlockBuilder(block); + + // If there's only 1 child it means that it's plain text inside of the attribute. + // i.e.
    + if (builder.Children.Count == 1) + { + return TryParseSpan(childSpan, descriptors, errorSink, processedBoundAttributeNames); + } + + var nameTokens = childSpan + .Tokens + .SkipWhile(token => !HtmlMarkupParser.IsValidAttributeNameToken(token.Green)) // Skip prefix + .TakeWhile(nameToken => HtmlMarkupParser.IsValidAttributeNameToken(nameToken.Green)) + .Select(nameToken => nameToken.Content); + + var name = string.Concat(nameTokens); + if (string.IsNullOrEmpty(name)) + { + var location = new SourceSpan(childSpan.Start, childSpan.Length); + var diagnostic = RazorDiagnosticFactory.CreateParsing_TagHelperAttributesMustHaveAName(location, tagName); + errorSink.OnError(diagnostic); + + return null; + } + + // Have a name now. Able to determine correct isBoundNonStringAttribute value. + var result = CreateTryParseResult(name, descriptors, processedBoundAttributeNames); + + var firstChild = builder.Children[0] as Span; + if (firstChild != null) + { + var token = firstChild.Tokens[firstChild.Tokens.Count - 1]; + switch (token.Kind) + { + case SyntaxKind.Equals: + if (builder.Children.Count == 2 && + builder.Children[1] is Span value && + value.Kind == SpanKindInternal.Markup) + { + // Attribute value is a string literal. Eg: . + result.AttributeStructure = AttributeStructure.NoQuotes; + } + else + { + // Could be an expression, treat NoQuotes and DoubleQuotes equivalently. We purposefully do not persist NoQuotes + // ValueStyles at code generation time to protect users from rendering dynamic content with spaces + // that can break attributes. + // Ex: where @value results in the test "hello world". + // This way, the above code would render . + result.AttributeStructure = AttributeStructure.DoubleQuotes; + } + break; + case SyntaxKind.DoubleQuote: + result.AttributeStructure = AttributeStructure.DoubleQuotes; + break; + case SyntaxKind.SingleQuote: + result.AttributeStructure = AttributeStructure.SingleQuotes; + break; + default: + result.AttributeStructure = AttributeStructure.Minimized; + break; + } + } + + // Remove first child i.e. foo=" + builder.Children.RemoveAt(0); + + // Grabbing last child to check if the attribute value is quoted. + var endNode = block.Children.Last(); + if (!endNode.IsBlock) + { + var endSpan = (Span)endNode; + + // In some malformed cases e.g.

    MyTagHelper.key = value + // key=" @value" -> MyTagHelper.key = @value + // key="1 + @case" -> MyTagHelper.key = 1 + @case + // key="@int + @case" -> MyTagHelper.key = int + @case + // key="@(a + b) -> MyTagHelper.key = a + b + // key="4 + @(a + b)" -> MyTagHelper.key = 4 + @(a + b) + if (isFirstSpan && span.Kind == SpanKindInternal.Transition) + { + // do nothing. + } + else + { + var spanBuilder = new SpanBuilder(span); + + if (parentBlock.Type == BlockKindInternal.Expression && + (spanBuilder.Kind == SpanKindInternal.Transition || + spanBuilder.Kind == SpanKindInternal.MetaCode)) + { + // Change to a MarkupChunkGenerator so that the '@' \ parenthesis is generated as part of the output. + spanBuilder.ChunkGenerator = new MarkupChunkGenerator(); + } + + ConfigureNonStringAttribute(spanBuilder, result.IsDuplicateAttribute); + + span = spanBuilder.Build(); + } + } + + isFirstSpan = false; + + return span; + }); + + return result; + } + + private static Block ConvertToMarkupAttributeBlock( + Block block, + Func createMarkupAttribute) + { + var blockBuilder = new BlockBuilder + { + ChunkGenerator = block.ChunkGenerator, + Type = block.Type + }; + + foreach (var child in block.Children) + { + SyntaxTreeNode markupAttributeChild; + + if (child.IsBlock) + { + markupAttributeChild = ConvertToMarkupAttributeBlock((Block)child, createMarkupAttribute); + } + else + { + markupAttributeChild = createMarkupAttribute(block, (Span)child); + } + + blockBuilder.Children.Add(markupAttributeChild); + } + + return blockBuilder.Build(); + } + + private static Block RebuildChunkGenerators(Block block, bool isBound) + { + var builder = new BlockBuilder(block); + + // Don't want to rebuild unbound dynamic attributes. They need to run through the conditional attribute + // removal system at runtime. A conditional attribute at the parse tree rewriting level is defined by + // having at least 1 child with a DynamicAttributeBlockChunkGenerator. + if (!isBound && + block.Children.Any( + child => child.IsBlock && + ((Block)child).ChunkGenerator is DynamicAttributeBlockChunkGenerator)) + { + // The parent chunk generator must be removed because it's normally responsible for conditionally + // generating the attribute prefix (class=") and suffix ("). The prefix and suffix concepts aren't + // applicable for the TagHelper use case since the attributes are put into a dictionary like object as + // name value pairs. + builder.ChunkGenerator = ParentChunkGenerator.Null; + + return builder.Build(); + } + + var isDynamic = builder.ChunkGenerator is DynamicAttributeBlockChunkGenerator; + + // We don't want any attribute specific logic here, null out the block chunk generator. + if (isDynamic || builder.ChunkGenerator is AttributeBlockChunkGenerator) + { + builder.ChunkGenerator = ParentChunkGenerator.Null; + } + + for (var i = 0; i < builder.Children.Count; i++) + { + var child = builder.Children[i]; + + if (child.IsBlock) + { + // The child is a block, recurse down into the block to rebuild its children + builder.Children[i] = RebuildChunkGenerators((Block)child, isBound); + } + else + { + var childSpan = (Span)child; + ISpanChunkGenerator newChunkGenerator = null; + var literalGenerator = childSpan.ChunkGenerator as LiteralAttributeChunkGenerator; + + if (literalGenerator != null) + { + newChunkGenerator = new MarkupChunkGenerator(); + } + else if (isDynamic && childSpan.ChunkGenerator == SpanChunkGenerator.Null) + { + // Usually the dynamic chunk generator handles creating the null chunk generators underneath + // it. This doesn't make sense in terms of tag helpers though, we need to change null code + // generators to markup chunk generators. + + newChunkGenerator = new MarkupChunkGenerator(); + } + + // If we have a new chunk generator we'll need to re-build the child + if (newChunkGenerator != null) + { + var childSpanBuilder = new SpanBuilder(childSpan) + { + ChunkGenerator = newChunkGenerator + }; + + builder.Children[i] = childSpanBuilder.Build(); + } + } + } + + return builder.Build(); + } + + private static SourceSpan GetAttributeNameLocation(SyntaxTreeNode node, string attributeName) + { + Span span; + var nodeStart = SourceLocation.Undefined; + + if (node.IsBlock) + { + span = ((Block)node).FindFirstDescendentSpan(); + nodeStart = span.Parent.Start; + } + else + { + span = (Span)node; + nodeStart = span.Start; + } + + // Span should never be null here, this should only ever be called if an attribute was successfully parsed. + Debug.Assert(span != null); + + // Attributes must have at least one non-whitespace character to represent the tagName (even if its a C# + // expression). + var firstNonWhitespaceToken = span + .Tokens + .First(token => token.Kind != SyntaxKind.Whitespace && token.Kind != SyntaxKind.NewLine); + + var location = new SourceSpan(firstNonWhitespaceToken.Start, attributeName.Length); + return location; + } + + private static Span CreateMarkupAttribute(SpanBuilder builder, TryParseResult result) + { + Debug.Assert(builder != null); + + // If the attribute was requested by a tag helper but the corresponding property was not a string, + // then treat its value as code. A non-string value can be any C# value so we need to ensure the + // SyntaxTreeNode reflects that. + if (result.IsBoundNonStringAttribute) + { + ConfigureNonStringAttribute(builder, result.IsDuplicateAttribute); + } + + return builder.Build(); + } + + private static bool IsNullOrWhitespaceAttributeValue(SyntaxTreeNode attributeValue) + { + if (attributeValue.IsBlock) + { + foreach (var span in ((Block)attributeValue).Flatten()) + { + if (!string.IsNullOrWhiteSpace(span.Content)) + { + return false; + } + } + + return true; + } + else + { + return string.IsNullOrWhiteSpace(((Span)attributeValue).Content); + } + } + + // Determines the full name of the Type of the property corresponding to an attribute with the given name. + private static string GetPropertyType(string name, IEnumerable descriptors) + { + var firstBoundAttribute = FindFirstBoundAttribute(name, descriptors); + var isBoundToIndexer = TagHelperMatchingConventions.SatisfiesBoundAttributeIndexer(name, firstBoundAttribute); + + if (isBoundToIndexer) + { + return firstBoundAttribute?.IndexerTypeName; + } + else + { + return firstBoundAttribute?.TypeName; + } + } + + // Create a TryParseResult for given name, filling in binding details. + private static TryParseResult CreateTryParseResult( + string name, + IEnumerable descriptors, + HashSet processedBoundAttributeNames) + { + var firstBoundAttribute = FindFirstBoundAttribute(name, descriptors); + var isBoundAttribute = firstBoundAttribute != null; + var isBoundNonStringAttribute = isBoundAttribute && !firstBoundAttribute.ExpectsStringValue(name); + var isBoundBooleanAttribute = isBoundAttribute && firstBoundAttribute.ExpectsBooleanValue(name); + var isMissingDictionaryKey = isBoundAttribute && + firstBoundAttribute.IndexerNamePrefix != null && + name.Length == firstBoundAttribute.IndexerNamePrefix.Length; + + var isDuplicateAttribute = false; + if (isBoundAttribute && !processedBoundAttributeNames.Add(name)) + { + // A bound attribute with the same name has already been processed. + isDuplicateAttribute = true; + } + + return new TryParseResult + { + AttributeName = name, + IsBoundAttribute = isBoundAttribute, + IsBoundNonStringAttribute = isBoundNonStringAttribute, + IsBoundBooleanAttribute = isBoundBooleanAttribute, + IsMissingDictionaryKey = isMissingDictionaryKey, + IsDuplicateAttribute = isDuplicateAttribute + }; + } + + // Finds first TagHelperAttributeDescriptor matching given name. + private static BoundAttributeDescriptor FindFirstBoundAttribute( + string name, + IEnumerable descriptors) + { + var firstBoundAttribute = descriptors + .SelectMany(descriptor => descriptor.BoundAttributes) + .FirstOrDefault(attributeDescriptor => TagHelperMatchingConventions.CanSatisfyBoundAttribute(name, attributeDescriptor)); + + return firstBoundAttribute; + } + + private static bool IsQuote(SyntaxToken token) + { + return token.Kind == SyntaxKind.DoubleQuote || + token.Kind == SyntaxKind.SingleQuote; + } + + private static void ConfigureNonStringAttribute(SpanBuilder builder, bool isDuplicateAttribute) + { + builder.Kind = SpanKindInternal.Code; + builder.EditHandler = new ImplicitExpressionEditHandler( + builder.EditHandler.Tokenizer, + CSharpCodeParser.DefaultKeywords, + acceptTrailingDot: true) + { + AcceptedCharacters = AcceptedCharactersInternal.AnyExceptNewline + }; + + if (!isDuplicateAttribute && builder.ChunkGenerator != SpanChunkGenerator.Null) + { + // We want to mark the value of non-string bound attributes to be CSharp. + // Except in two cases, + // 1. Cases when we don't want to render the span. Eg: Transition span '@'. + // 2. Cases when it is a duplicate of a bound attribute. This should just be rendered as html. + + builder.ChunkGenerator = new ExpressionChunkGenerator(); + } + } + + private class TryParseResult + { + public string AttributeName { get; set; } + + public SyntaxTreeNode AttributeValueNode { get; set; } + + public AttributeStructure AttributeStructure { get; set; } + + public bool IsBoundAttribute { get; set; } + + public bool IsBoundNonStringAttribute { get; set; } + + public bool IsBoundBooleanAttribute { get; set; } + + public bool IsMissingDictionaryKey { get; set; } + + public bool IsDuplicateAttribute { get; set; } + } + } +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/LegacyTagHelperParseTreeRewriter.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/LegacyTagHelperParseTreeRewriter.cs index 1b6f7e61a..f92963082 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/LegacyTagHelperParseTreeRewriter.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/LegacyTagHelperParseTreeRewriter.cs @@ -226,7 +226,7 @@ private bool TryRewriteTagHelper(Block tagBlock, ErrorSink errorSink) // We're in a start TagHelper block. var validTagStructure = ValidateTagSyntax(tagName, tagBlock, errorSink); - var builder = TagHelperBlockRewriter.Rewrite( + var builder = LegacyTagHelperBlockRewriter.Rewrite( tagName, validTagStructure, _featureFlags, diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/RazorSyntaxTreeExtensions.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/RazorSyntaxTreeExtensions.cs index e3226a66c..9dbef07e2 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/RazorSyntaxTreeExtensions.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/RazorSyntaxTreeExtensions.cs @@ -28,6 +28,25 @@ public static IReadOnlyList GetClassifiedSpans(this Razo return visitor.ClassifiedSpans; } + public static IReadOnlyList GetTagHelperSpans(this RazorSyntaxTree syntaxTree) + { + if (syntaxTree == null) + { + throw new ArgumentNullException(nameof(syntaxTree)); + } + + if (syntaxTree is LegacyRazorSyntaxTree tree) + { + return GetTagHelperSpansLegacy(tree); + } + + + var visitor = new TagHelperSpanVisitor(syntaxTree.Source); + visitor.Visit(syntaxTree.Root); + + return visitor.TagHelperSpans; + } + private static IReadOnlyList GetClassifiedSpansLegacy(LegacyRazorSyntaxTree syntaxTree) { var spans = Flatten(syntaxTree); @@ -57,7 +76,7 @@ private static IReadOnlyList GetClassifiedSpansLegacy(Le return result; } - public static IReadOnlyList GetTagHelperSpans(this RazorSyntaxTree syntaxTree) + public static IReadOnlyList GetTagHelperSpansLegacy(LegacyRazorSyntaxTree syntaxTree) { if (syntaxTree == null) { diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/SpanContext.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/SpanContext.cs index 736b16948..2eff0fdac 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/SpanContext.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/SpanContext.cs @@ -26,6 +26,12 @@ public SpanContextBuilder() Reset(); } + public SpanContextBuilder(SpanContext context) + { + EditHandler = context.EditHandler; + ChunkGenerator = context.ChunkGenerator; + } + public ISpanChunkGenerator ChunkGenerator { get; set; } public SpanEditHandler EditHandler { get; set; } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperAttributeInfo.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperAttributeInfo.cs new file mode 100644 index 000000000..eb3f2464c --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperAttributeInfo.cs @@ -0,0 +1,24 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +namespace Microsoft.AspNetCore.Razor.Language.Legacy +{ + internal class TagHelperAttributeInfo + { + public TagHelperAttributeInfo( + string name, + AttributeStructure attributeStructure, + bool bound) + { + Name = name; + AttributeStructure = attributeStructure; + Bound = bound; + } + + public string Name { get; } + + public AttributeStructure AttributeStructure { get; } + + public bool Bound { get; } + } +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperAttributeNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperAttributeNode.cs index 7fa090259..139badfe5 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperAttributeNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperAttributeNode.cs @@ -1,11 +1,13 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using Microsoft.AspNetCore.Razor.Language.Syntax; + namespace Microsoft.AspNetCore.Razor.Language.Legacy { internal class TagHelperAttributeNode { - public TagHelperAttributeNode(string name, SyntaxTreeNode value, AttributeStructure attributeStructure) + public TagHelperAttributeNode(string name, SyntaxNode value, AttributeStructure attributeStructure) { Name = name; Value = value; @@ -13,14 +15,14 @@ public TagHelperAttributeNode(string name, SyntaxTreeNode value, AttributeStruct } // Internal for testing - internal TagHelperAttributeNode(string name, SyntaxTreeNode value) + internal TagHelperAttributeNode(string name, SyntaxNode value) : this(name, value, AttributeStructure.DoubleQuotes) { } public string Name { get; } - public SyntaxTreeNode Value { get; } + public SyntaxNode Value { get; } public AttributeStructure AttributeStructure { get; } } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperBlock.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperBlock.cs index b8863247b..d34beed40 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperBlock.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperBlock.cs @@ -26,7 +26,7 @@ public TagHelperBlock(TagHelperBlockBuilder source) { TagName = source.TagName; Binding = source.BindingResult; - Attributes = new List(source.Attributes); + Attributes = new List(source.Attributes); _start = source.Start; TagMode = source.TagMode; SourceStartTag = source.SourceStartTag; @@ -68,7 +68,7 @@ public TagHelperBlock(TagHelperBlockBuilder source) ///

    /// The HTML attributes. /// - public IList Attributes { get; } + public IList Attributes { get; } /// public override SourceLocation Start @@ -176,7 +176,7 @@ public override SyntaxTreeNode Clone() var existingAttribute = Attributes[i]; var clonedValue = existingAttribute.Value != null ? existingAttribute.Value.Clone() : null; tagHelperBlockBuilder.Attributes.Add( - new TagHelperAttributeNode(existingAttribute.Name, clonedValue, existingAttribute.AttributeStructure)); + new LegacyTagHelperAttributeNode(existingAttribute.Name, clonedValue, existingAttribute.AttributeStructure)); } if (SourceStartTag != null) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperBlockBuilder.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperBlockBuilder.cs index 29e39bb3a..84fbcb294 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperBlockBuilder.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperBlockBuilder.cs @@ -22,7 +22,7 @@ public TagHelperBlockBuilder(TagHelperBlock original) SourceEndTag = original.SourceEndTag; TagMode = original.TagMode; BindingResult = original.Binding; - Attributes = new List(original.Attributes); + Attributes = new List(original.Attributes); TagName = original.TagName; } @@ -39,14 +39,14 @@ public TagHelperBlockBuilder( string tagName, TagMode tagMode, SourceLocation start, - IList attributes, + IList attributes, TagHelperBinding bindingResult) { TagName = tagName; TagMode = tagMode; Start = start; BindingResult = bindingResult; - Attributes = new List(attributes); + Attributes = new List(attributes); Type = BlockKindInternal.Tag; ChunkGenerator = new TagHelperChunkGenerator(); } @@ -55,7 +55,7 @@ public TagHelperBlockBuilder( internal TagHelperBlockBuilder( string tagName, TagMode tagMode, - IList attributes, + IList attributes, IEnumerable children) { TagName = tagName; @@ -96,7 +96,7 @@ internal TagHelperBlockBuilder( /// /// The HTML attributes. /// - public IList Attributes { get; } + public IList Attributes { get; } /// /// The HTML tag name. diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperBlockRewriter.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperBlockRewriter.cs index 1aea40a74..6bdc1f3da 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperBlockRewriter.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperBlockRewriter.cs @@ -1,11 +1,9 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; -using System.Text; using Microsoft.AspNetCore.Razor.Language.Syntax; namespace Microsoft.AspNetCore.Razor.Language.Legacy @@ -14,107 +12,30 @@ internal static class TagHelperBlockRewriter { private static readonly string StringTypeName = typeof(string).FullName; - public static TagHelperBlockBuilder Rewrite( + public static MarkupTagHelperStartTagSyntax Rewrite( string tagName, bool validStructure, RazorParserFeatureFlags featureFlags, - Block tag, - TagHelperBinding bindingResult, - ErrorSink errorSink) - { - // There will always be at least one child for the '<'. - var start = tag.Children.First().Start; - var attributes = GetTagAttributes(tagName, validStructure, tag, bindingResult, errorSink, featureFlags); - var tagMode = GetTagMode(tagName, tag, bindingResult, errorSink); - - return new TagHelperBlockBuilder(tagName, tagMode, start, attributes, bindingResult); - } - - private static IList GetTagAttributes( - string tagName, - bool validStructure, - Block tagBlock, + MarkupTagBlockSyntax tag, TagHelperBinding bindingResult, ErrorSink errorSink, - RazorParserFeatureFlags featureFlags) + RazorSourceDocument source) { - var attributes = new List(); - - // We skip the first child "" or "/>". - // The -2 accounts for both the start and end tags. If the tag does not have a valid structure then there's - // no end tag to ignore. - var tokenOffset = validStructure ? 2 : 1; - var attributeChildren = tagBlock.Children.Skip(1).Take(tagBlock.Children.Count() - tokenOffset); - var processedBoundAttributeNames = new HashSet(StringComparer.OrdinalIgnoreCase); - - foreach (var child in attributeChildren) - { - TryParseResult result; - if (child.IsBlock) - { - result = TryParseBlock(tagName, (Block)child, bindingResult.Descriptors, errorSink, processedBoundAttributeNames); - } - else - { - result = TryParseSpan((Span)child, bindingResult.Descriptors, errorSink, processedBoundAttributeNames); - } - - // Only want to track the attribute if we succeeded in parsing its corresponding Block/Span. - if (result != null) - { - // Check if it's a non-boolean bound attribute that is minimized or if it's a bound - // non-string attribute that has null or whitespace content. - var isMinimized = result.AttributeValueNode == null; - var isValidMinimizedAttribute = featureFlags.AllowMinimizedBooleanTagHelperAttributes && result.IsBoundBooleanAttribute; - if ((isMinimized && - result.IsBoundAttribute && - !isValidMinimizedAttribute) || - (!isMinimized && - result.IsBoundNonStringAttribute && - IsNullOrWhitespaceAttributeValue(result.AttributeValueNode))) - { - var errorLocation = GetAttributeNameLocation(child, result.AttributeName); - var propertyTypeName = GetPropertyType(result.AttributeName, bindingResult.Descriptors); - var diagnostic = RazorDiagnosticFactory.CreateTagHelper_EmptyBoundAttribute(errorLocation, result.AttributeName, tagName, propertyTypeName); - errorSink.OnError(diagnostic); - } - - // Check if the attribute was a prefix match for a tag helper dictionary property but the - // dictionary key would be the empty string. - if (result.IsMissingDictionaryKey) - { - var errorLocation = GetAttributeNameLocation(child, result.AttributeName); - var diagnostic = RazorDiagnosticFactory.CreateParsing_TagHelperIndexerAttributeNameMustIncludeKey(errorLocation, result.AttributeName, tagName); - errorSink.OnError(diagnostic); - } - - var attributeNode = new TagHelperAttributeNode( - result.AttributeName, - result.AttributeValueNode, - result.AttributeStructure); - - attributes.Add(attributeNode); - } - else - { - // Error occurred while parsing the attribute. Don't try parsing the rest to avoid misleading errors. - break; - } - } + // There will always be at least one child for the '<'. + var rewrittenChildren = GetRewrittenChildren(tagName, validStructure, tag, bindingResult, featureFlags, errorSink, source); - return attributes; + return SyntaxFactory.MarkupTagHelperStartTag(rewrittenChildren); } - private static TagMode GetTagMode( - string tagName, - Block beginTagBlock, + public static TagMode GetTagMode( + MarkupTagBlockSyntax tagBlock, TagHelperBinding bindingResult, ErrorSink errorSink) { - var childSpan = beginTagBlock.FindLastDescendentSpan(); + var childSpan = tagBlock.GetLastToken()?.Parent; // Self-closing tags are always valid despite descriptors[X].TagStructure. - if (childSpan?.Content.EndsWith("/>", StringComparison.Ordinal) ?? false) + if (childSpan?.GetContent().EndsWith("/>", StringComparison.Ordinal) ?? false) { return TagMode.SelfClosing; } @@ -133,258 +54,193 @@ private static TagMode GetTagMode( return TagMode.StartTagAndEndTag; } - // This method handles cases when the attribute is a simple span attribute such as - // class="something moresomething". This does not handle complex attributes such as - // class="@myclass". Therefore the span.Content is equivalent to the entire attribute. - private static TryParseResult TryParseSpan( - Span span, - IEnumerable descriptors, + private static SyntaxList GetRewrittenChildren( + string tagName, + bool validStructure, + MarkupTagBlockSyntax tagBlock, + TagHelperBinding bindingResult, + RazorParserFeatureFlags featureFlags, ErrorSink errorSink, - HashSet processedBoundAttributeNames) + RazorSourceDocument source) { - var afterEquals = false; - var builder = new SpanBuilder(span.Start) - { - ChunkGenerator = span.ChunkGenerator, - EditHandler = span.EditHandler, - Kind = span.Kind - }; - - // Will contain tokens that represent a single attribute value: - var tokens = span.Tokens; - var capturedAttributeValueStart = false; - var attributeValueStartLocation = span.Start; + var tagHelperBuilder = SyntaxListBuilder.Create(); + var processedBoundAttributeNames = new HashSet(StringComparer.OrdinalIgnoreCase); - // Default to DoubleQuotes. We purposefully do not persist NoQuotes ValueStyle to stay consistent with the - // TryParseBlock() variation of attribute parsing. - var attributeValueStyle = AttributeStructure.DoubleQuotes; + if (tagBlock.Children.Count == 1) + { + // Tag with no attributes. We have nothing to rewrite here. + return tagBlock.Children; + } - // The tokenOffset is initialized to 0 to expect worst case: "class=". If a quote is found later on for - // the attribute value the tokenOffset is adjusted accordingly. - var tokenOffset = 0; - string name = null; + // Add the tag start + tagHelperBuilder.Add(tagBlock.Children.First()); - // Iterate down through the tokens to find the name and the start of the value. - // We subtract the tokenOffset so we don't accept an ending quote of a span. - for (var i = 0; i < tokens.Count - tokenOffset; i++) + // We skip the first child "" or "/>". + // If the tag does not have a valid structure then there's no close angle to ignore. + var tokenOffset = validStructure ? 1 : 0; + for (var i = 1; i < tagBlock.Children.Count - tokenOffset; i++) { - var token = tokens[i]; - - if (afterEquals) + var isMinimized = false; + var attributeNameLocation = SourceLocation.Undefined; + var child = tagBlock.Children[i]; + TryParseResult result; + if (child is MarkupAttributeBlockSyntax attributeBlock) { - // We've captured all leading whitespace, the attribute name, and an equals with an optional - // quote/double quote. We're now at: " asp-for='|...'" or " asp-for=|..." - // The goal here is to capture all tokens until the end of the attribute. Note this will not - // consume an ending quote due to the tokenOffset. - - // When tokens are accepted into SpanBuilders, their locations get altered to be offset by the - // parent which is why we need to mark our start location prior to adding the token. - // This is needed to know the location of the attribute value start within the document. - if (!capturedAttributeValueStart) - { - capturedAttributeValueStart = true; - - attributeValueStartLocation = token.Start; - } - - builder.Accept(token.Green); + attributeNameLocation = attributeBlock.Name.GetSourceLocation(source); + result = TryParseAttribute( + tagName, + attributeBlock, + bindingResult.Descriptors, + errorSink, + processedBoundAttributeNames); + tagHelperBuilder.Add(result.RewrittenAttribute); } - else if (name == null && HtmlMarkupParser.IsValidAttributeNameToken(token.Green)) + else if (child is MarkupMinimizedAttributeBlockSyntax minimizedAttributeBlock) { - // We've captured all leading whitespace prior to the attribute name. - // We're now at: " |asp-for='...'" or " |asp-for=..." - // The goal here is to capture the attribute name. + isMinimized = true; + attributeNameLocation = minimizedAttributeBlock.Name.GetSourceLocation(source); + result = TryParseMinimizedAttribute( + tagName, + minimizedAttributeBlock, + bindingResult.Descriptors, + errorSink, + processedBoundAttributeNames); + tagHelperBuilder.Add(result.RewrittenAttribute); + } + else if (child is CSharpCodeBlockSyntax) + { + // TODO: Accept more than just Markup attributes: https://github.com/aspnet/Razor/issues/96. + // Something like: + // + var location = new SourceSpan(child.GetSourceLocation(source), child.FullWidth); + var diagnostic = RazorDiagnosticFactory.CreateParsing_TagHelpersCannotHaveCSharpInTagDeclaration(location, tagName); + errorSink.OnError(diagnostic); - var nameBuilder = new StringBuilder(); - // Move the indexer past the attribute name tokens. - for (var j = i; j < tokens.Count; j++) + result = null; + } + else if (child is MarkupTextLiteralSyntax) + { + // If the original span content was whitespace it ultimately means the tag + // that owns this "attribute" is malformed and is expecting a user to type a new attribute. + // ex: descriptors, ErrorSink errorSink, HashSet processedBoundAttributeNames) { - // TODO: Accept more than just spans: https://github.com/aspnet/Razor/issues/96. - // The first child will only ever NOT be a Span if a user is doing something like: - // - - var childSpan = block.Children.First() as Span; + // Have a name now. Able to determine correct isBoundNonStringAttribute value. + var result = CreateTryParseResult(attributeBlock.Name.GetContent(), descriptors, processedBoundAttributeNames); - if (childSpan == null || childSpan.Kind != SpanKindInternal.Markup) - { - var location = new SourceSpan(block.Start, block.Length); - var diagnostic = RazorDiagnosticFactory.CreateParsing_TagHelpersCannotHaveCSharpInTagDeclaration(location, tagName); - errorSink.OnError(diagnostic); + result.AttributeStructure = AttributeStructure.Minimized; + var rewritten = SyntaxFactory.MarkupMinimizedTagHelperAttribute( + attributeBlock.NamePrefix, + attributeBlock.Name); - return null; - } + rewritten = rewritten.WithTagHelperAttributeInfo( + new TagHelperAttributeInfo(result.AttributeName, result.AttributeStructure, result.IsBoundAttribute)); - var builder = new BlockBuilder(block); + result.RewrittenAttribute = rewritten; - // If there's only 1 child it means that it's plain text inside of the attribute. - // i.e.
    - if (builder.Children.Count == 1) - { - return TryParseSpan(childSpan, descriptors, errorSink, processedBoundAttributeNames); - } + return result; + } - var nameTokens = childSpan - .Tokens - .SkipWhile(token => !HtmlMarkupParser.IsValidAttributeNameToken(token.Green)) // Skip prefix - .TakeWhile(nameToken => HtmlMarkupParser.IsValidAttributeNameToken(nameToken.Green)) - .Select(nameToken => nameToken.Content); + private static TryParseResult TryParseAttribute( + string tagName, + MarkupAttributeBlockSyntax attributeBlock, + IEnumerable descriptors, + ErrorSink errorSink, + HashSet processedBoundAttributeNames) + { + // Have a name now. Able to determine correct isBoundNonStringAttribute value. + var result = CreateTryParseResult(attributeBlock.Name.GetContent(), descriptors, processedBoundAttributeNames); - var name = string.Concat(nameTokens); - if (string.IsNullOrEmpty(name)) + if (attributeBlock.ValuePrefix == null) { - var location = new SourceSpan(childSpan.Start, childSpan.Length); - var diagnostic = RazorDiagnosticFactory.CreateParsing_TagHelperAttributesMustHaveAName(location, tagName); - errorSink.OnError(diagnostic); - - return null; + if (attributeBlock.Value is GenericBlockSyntax wrapper && + wrapper.Children.Count == 1 && + wrapper.Children[0] is MarkupLiteralAttributeValueSyntax) + { + // Attribute value is a string literal. Eg: . + result.AttributeStructure = AttributeStructure.NoQuotes; + } + else + { + // Could be an expression, treat NoQuotes and DoubleQuotes equivalently. We purposefully do not persist NoQuotes + // ValueStyles at code generation time to protect users from rendering dynamic content with spaces + // that can break attributes. + // Ex: where @value results in the test "hello world". + // This way, the above code would render . + result.AttributeStructure = AttributeStructure.DoubleQuotes; + } } - - // Have a name now. Able to determine correct isBoundNonStringAttribute value. - var result = CreateTryParseResult(name, descriptors, processedBoundAttributeNames); - - var firstChild = builder.Children[0] as Span; - if (firstChild != null) + else { - var token = firstChild.Tokens[firstChild.Tokens.Count - 1]; - switch (token.Kind) + var lastToken = attributeBlock.ValuePrefix.GetLastToken(); + switch (lastToken.Kind) { - case SyntaxKind.Equals: - if (builder.Children.Count == 2 && - builder.Children[1] is Span value && - value.Kind == SpanKindInternal.Markup) - { - // Attribute value is a string literal. Eg: . - result.AttributeStructure = AttributeStructure.NoQuotes; - } - else - { - // Could be an expression, treat NoQuotes and DoubleQuotes equivalently. We purposefully do not persist NoQuotes - // ValueStyles at code generation time to protect users from rendering dynamic content with spaces - // that can break attributes. - // Ex: where @value results in the test "hello world". - // This way, the above code would render . - result.AttributeStructure = AttributeStructure.DoubleQuotes; - } - break; case SyntaxKind.DoubleQuote: result.AttributeStructure = AttributeStructure.DoubleQuotes; break; @@ -397,262 +253,50 @@ builder.Children[1] is Span value && } } - // Remove first child i.e. foo=" - builder.Children.RemoveAt(0); - - // Grabbing last child to check if the attribute value is quoted. - var endNode = block.Children.Last(); - if (!endNode.IsBlock) + var attributeValue = attributeBlock.Value; + if (attributeValue == null) { - var endSpan = (Span)endNode; - - // In some malformed cases e.g.

    MyTagHelper.key = value - // key=" @value" -> MyTagHelper.key = @value - // key="1 + @case" -> MyTagHelper.key = 1 + @case - // key="@int + @case" -> MyTagHelper.key = int + @case - // key="@(a + b) -> MyTagHelper.key = a + b - // key="4 + @(a + b)" -> MyTagHelper.key = 4 + @(a + b) - if (isFirstSpan && span.Kind == SpanKindInternal.Transition) - { - // do nothing. - } - else - { - var spanBuilder = new SpanBuilder(span); - - if (parentBlock.Type == BlockKindInternal.Expression && - (spanBuilder.Kind == SpanKindInternal.Transition || - spanBuilder.Kind == SpanKindInternal.MetaCode)) - { - // Change to a MarkupChunkGenerator so that the '@' \ parenthesis is generated as part of the output. - spanBuilder.ChunkGenerator = new MarkupChunkGenerator(); - } - - ConfigureNonStringAttribute(spanBuilder, result.IsDuplicateAttribute); - - span = spanBuilder.Build(); - } - } - - isFirstSpan = false; + rewritten = rewritten.WithTagHelperAttributeInfo( + new TagHelperAttributeInfo(result.AttributeName, result.AttributeStructure, result.IsBoundAttribute)); - return span; - }); + result.RewrittenAttribute = rewritten; return result; } - private static Block ConvertToMarkupAttributeBlock( - Block block, - Func createMarkupAttribute) - { - var blockBuilder = new BlockBuilder - { - ChunkGenerator = block.ChunkGenerator, - Type = block.Type - }; - - foreach (var child in block.Children) - { - SyntaxTreeNode markupAttributeChild; - - if (child.IsBlock) - { - markupAttributeChild = ConvertToMarkupAttributeBlock((Block)child, createMarkupAttribute); - } - else - { - markupAttributeChild = createMarkupAttribute(block, (Span)child); - } - - blockBuilder.Children.Add(markupAttributeChild); - } - - return blockBuilder.Build(); - } - - private static Block RebuildChunkGenerators(Block block, bool isBound) - { - var builder = new BlockBuilder(block); - - // Don't want to rebuild unbound dynamic attributes. They need to run through the conditional attribute - // removal system at runtime. A conditional attribute at the parse tree rewriting level is defined by - // having at least 1 child with a DynamicAttributeBlockChunkGenerator. - if (!isBound && - block.Children.Any( - child => child.IsBlock && - ((Block)child).ChunkGenerator is DynamicAttributeBlockChunkGenerator)) - { - // The parent chunk generator must be removed because it's normally responsible for conditionally - // generating the attribute prefix (class=") and suffix ("). The prefix and suffix concepts aren't - // applicable for the TagHelper use case since the attributes are put into a dictionary like object as - // name value pairs. - builder.ChunkGenerator = ParentChunkGenerator.Null; - - return builder.Build(); - } - - var isDynamic = builder.ChunkGenerator is DynamicAttributeBlockChunkGenerator; - - // We don't want any attribute specific logic here, null out the block chunk generator. - if (isDynamic || builder.ChunkGenerator is AttributeBlockChunkGenerator) - { - builder.ChunkGenerator = ParentChunkGenerator.Null; - } - - for (var i = 0; i < builder.Children.Count; i++) - { - var child = builder.Children[i]; - - if (child.IsBlock) - { - // The child is a block, recurse down into the block to rebuild its children - builder.Children[i] = RebuildChunkGenerators((Block)child, isBound); - } - else - { - var childSpan = (Span)child; - ISpanChunkGenerator newChunkGenerator = null; - var literalGenerator = childSpan.ChunkGenerator as LiteralAttributeChunkGenerator; - - if (literalGenerator != null) - { - newChunkGenerator = new MarkupChunkGenerator(); - } - else if (isDynamic && childSpan.ChunkGenerator == SpanChunkGenerator.Null) - { - // Usually the dynamic chunk generator handles creating the null chunk generators underneath - // it. This doesn't make sense in terms of tag helpers though, we need to change null code - // generators to markup chunk generators. - - newChunkGenerator = new MarkupChunkGenerator(); - } - - // If we have a new chunk generator we'll need to re-build the child - if (newChunkGenerator != null) - { - var childSpanBuilder = new SpanBuilder(childSpan) - { - ChunkGenerator = newChunkGenerator - }; - - builder.Children[i] = childSpanBuilder.Build(); - } - } - } - - return builder.Build(); - } - - private static SourceSpan GetAttributeNameLocation(SyntaxTreeNode node, string attributeName) + private static MarkupTagHelperAttributeValueSyntax RewriteAttributeValue(TryParseResult result, RazorBlockSyntax attributeValue) { - Span span; - var nodeStart = SourceLocation.Undefined; - - if (node.IsBlock) - { - span = ((Block)node).FindFirstDescendentSpan(); - nodeStart = span.Parent.Start; - } - else - { - span = (Span)node; - nodeStart = span.Start; - } - - // Span should never be null here, this should only ever be called if an attribute was successfully parsed. - Debug.Assert(span != null); - - // Attributes must have at least one non-whitespace character to represent the tagName (even if its a C# - // expression). - var firstNonWhitespaceToken = span - .Tokens - .First(token => token.Kind != SyntaxKind.Whitespace && token.Kind != SyntaxKind.NewLine); - - var location = new SourceSpan(firstNonWhitespaceToken.Start, attributeName.Length); - return location; - } - - private static Span CreateMarkupAttribute(SpanBuilder builder, TryParseResult result) - { - Debug.Assert(builder != null); - - // If the attribute was requested by a tag helper but the corresponding property was not a string, - // then treat its value as code. A non-string value can be any C# value so we need to ensure the - // SyntaxTreeNode reflects that. + var rewriter = new AttributeValueRewriter(result); + var rewrittenValue = attributeValue; if (result.IsBoundNonStringAttribute) { - ConfigureNonStringAttribute(builder, result.IsDuplicateAttribute); + // If the attribute was requested by a tag helper but the corresponding property was not a + // string, then treat its value as code. A non-string value can be any C# value so we need + // to ensure the tree reflects that. + rewrittenValue = (RazorBlockSyntax)rewriter.Visit(attributeValue); } - return builder.Build(); - } - - private static bool IsNullOrWhitespaceAttributeValue(SyntaxTreeNode attributeValue) - { - if (attributeValue.IsBlock) - { - foreach (var span in ((Block)attributeValue).Flatten()) - { - if (!string.IsNullOrWhiteSpace(span.Content)) - { - return false; - } - } - - return true; - } - else - { - return string.IsNullOrWhiteSpace(((Span)attributeValue).Content); - } + return SyntaxFactory.MarkupTagHelperAttributeValue(rewrittenValue.Children); } // Determines the full name of the Type of the property corresponding to an attribute with the given name. @@ -715,31 +359,221 @@ private static BoundAttributeDescriptor FindFirstBoundAttribute( return firstBoundAttribute; } - private static bool IsQuote(SyntaxToken token) + private static string GetAttributeValueContent(RazorSyntaxNode attributeBlock) { - return token.Kind == SyntaxKind.DoubleQuote || - token.Kind == SyntaxKind.SingleQuote; + if (attributeBlock is MarkupTagHelperAttributeSyntax tagHelperAttribute) + { + return tagHelperAttribute.Value?.GetContent(); + } + else if (attributeBlock is MarkupAttributeBlockSyntax attribute) + { + return attribute.Value?.GetContent(); + } + + return null; } - private static void ConfigureNonStringAttribute(SpanBuilder builder, bool isDuplicateAttribute) + private class AttributeValueRewriter : SyntaxRewriter { - builder.Kind = SpanKindInternal.Code; - builder.EditHandler = new ImplicitExpressionEditHandler( - builder.EditHandler.Tokenizer, - CSharpCodeParser.DefaultKeywords, - acceptTrailingDot: true) + private readonly TryParseResult _tryParseResult; + private bool _visitedFirstSpan = false; + + public AttributeValueRewriter(TryParseResult result) { - AcceptedCharacters = AcceptedCharactersInternal.AnyExceptNewline - }; + _tryParseResult = result; + } + + public override SyntaxNode VisitCSharpTransition(CSharpTransitionSyntax node) + { + // For bound non-string attributes, we'll only allow a transition span to appear at the very + // beginning of the attribute expression. All later transitions would appear as code so that + // they are part of the generated output. E.g. + // key="@value" -> MyTagHelper.key = value + // key=" @value" -> MyTagHelper.key = @value + // key="1 + @case" -> MyTagHelper.key = 1 + @case + // key="@int + @case" -> MyTagHelper.key = int + @case + // key="@(a + b) -> MyTagHelper.key = a + b + // key="4 + @(a + b)" -> MyTagHelper.key = 4 + @(a + b) + if (_visitedFirstSpan) + { + // Change to a MarkupChunkGenerator so that the '@' \ parenthesis is generated as part of the output. + var spanContext = node.GetSpanContext(); + var newSpanContext = new SpanContext(new MarkupChunkGenerator(), spanContext.EditHandler); + + var expression = SyntaxFactory.CSharpExpressionLiteral(new SyntaxList(node.Transition)).WithSpanContext(newSpanContext); + + return base.VisitCSharpExpressionLiteral(expression); + } + + _visitedFirstSpan = true; + return base.VisitCSharpTransition(node); + } + + public override SyntaxNode VisitCSharpImplicitExpression(CSharpImplicitExpressionSyntax node) + { + if (_visitedFirstSpan) + { + var builder = SyntaxListBuilder.Create(); + if (node.Transition != null) + { + // Change to a MarkupChunkGenerator so that the '@' \ parenthesis is generated as part of the output. + var spanContext = node.GetSpanContext(); + var newSpanContext = new SpanContext(new MarkupChunkGenerator(), spanContext?.EditHandler ?? SpanEditHandler.CreateDefault((content) => Enumerable.Empty())); + + var expression = SyntaxFactory.CSharpExpressionLiteral(new SyntaxList(node.Transition.Transition)).WithSpanContext(newSpanContext); + expression = (CSharpExpressionLiteralSyntax)VisitCSharpExpressionLiteral(expression); + builder.Add(expression); + } + var rewrittenBody = (CSharpCodeBlockSyntax)VisitCSharpCodeBlock(((CSharpImplicitExpressionBodySyntax)node.Body).CSharpCode); + builder.AddRange(rewrittenBody.Children); + + return SyntaxFactory.GenericBlock(builder.ToList()); + } + + return base.VisitCSharpImplicitExpression(node); + } + + public override SyntaxNode VisitCSharpExplicitExpression(CSharpExplicitExpressionSyntax node) + { + if (_visitedFirstSpan) + { + var builder = SyntaxListBuilder.Create(); + if (node.Transition != null) + { + // Change to a MarkupChunkGenerator so that the '@' \ parenthesis is generated as part of the output. + var spanContext = node.GetSpanContext(); + var newSpanContext = new SpanContext(new MarkupChunkGenerator(), spanContext?.EditHandler ?? SpanEditHandler.CreateDefault((content) => Enumerable.Empty())); + + var expression = SyntaxFactory.CSharpExpressionLiteral(new SyntaxList(node.Transition.Transition)).WithSpanContext(newSpanContext); + expression = (CSharpExpressionLiteralSyntax)VisitCSharpExpressionLiteral(expression); + builder.Add(expression); + } + var body = (CSharpExplicitExpressionBodySyntax)node.Body; + var rewrittenOpenParen = (RazorSyntaxNode)VisitRazorMetaCode(body.OpenParen); + var rewrittenBody = (CSharpCodeBlockSyntax)VisitCSharpCodeBlock(body.CSharpCode); + var rewrittenCloseParen = (RazorSyntaxNode)VisitRazorMetaCode(body.CloseParen); + builder.Add(rewrittenOpenParen); + builder.AddRange(rewrittenBody.Children); + builder.Add(rewrittenCloseParen); + + return SyntaxFactory.GenericBlock(builder.ToList()); + } + + return base.VisitCSharpExplicitExpression(node); + } + + public override SyntaxNode VisitRazorMetaCode(RazorMetaCodeSyntax node) + { + if (_visitedFirstSpan) + { + // Change to a MarkupChunkGenerator so that the '@' \ parenthesis is generated as part of the output. + var spanContext = node.GetSpanContext(); + var newSpanContext = new SpanContext(new MarkupChunkGenerator(), spanContext.EditHandler); + + var expression = SyntaxFactory.CSharpExpressionLiteral(new SyntaxList(node.MetaCode)).WithSpanContext(newSpanContext); + + return VisitCSharpExpressionLiteral(expression); + } - if (!isDuplicateAttribute && builder.ChunkGenerator != SpanChunkGenerator.Null) + _visitedFirstSpan = true; + return base.VisitRazorMetaCode(node); + } + + public override SyntaxNode VisitCSharpExpressionLiteral(CSharpExpressionLiteralSyntax node) { - // We want to mark the value of non-string bound attributes to be CSharp. - // Except in two cases, - // 1. Cases when we don't want to render the span. Eg: Transition span '@'. - // 2. Cases when it is a duplicate of a bound attribute. This should just be rendered as html. + node = (CSharpExpressionLiteralSyntax)ConfigureNonStringAttribute(node); + + _visitedFirstSpan = true; + return base.VisitCSharpExpressionLiteral(node); + } + + public override SyntaxNode VisitMarkupLiteralAttributeValue(MarkupLiteralAttributeValueSyntax node) + { + _visitedFirstSpan = true; + + // Since this is a bound non-string attribute, we want to convert LiteralAttributeValue to just be a CSharp Expression literal. + var builder = SyntaxListBuilder.Create(); + if (node.Prefix != null) + { + builder.AddRange(node.Prefix.LiteralTokens); + } + if (node.Value != null) + { + builder.AddRange(node.Value.LiteralTokens); + } + + var expression = SyntaxFactory.CSharpExpressionLiteral(builder.ToList()); + + return VisitCSharpExpressionLiteral(expression); + } + + public override SyntaxNode VisitMarkupDynamicAttributeValue(MarkupDynamicAttributeValueSyntax node) + { + // Move the prefix to be part of the actual value. + var builder = SyntaxListBuilder.Create(); + if (node.Prefix != null) + { + builder.Add(node.Prefix); + } + if (node.Value?.Children != null) + { + builder.AddRange(node.Value.Children); + } + var rewrittenValue = SyntaxFactory.GenericBlock(builder.ToList()); + var rewritten = SyntaxFactory.MarkupDynamicAttributeValue(prefix: null, value: rewrittenValue); + + return base.VisitMarkupDynamicAttributeValue(rewritten); + } + + public override SyntaxNode VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) + { + _visitedFirstSpan = true; + return base.VisitCSharpStatementLiteral(node); + } + + public override SyntaxNode VisitMarkupTextLiteral(MarkupTextLiteralSyntax node) + { + _visitedFirstSpan = true; + var tokens = new SyntaxList(node.LiteralTokens); + var value = SyntaxFactory.CSharpExpressionLiteral(tokens); + value = (CSharpExpressionLiteralSyntax)ConfigureNonStringAttribute(value); + return value; + } + + public override SyntaxNode VisitMarkupEphemeralTextLiteral(MarkupEphemeralTextLiteralSyntax node) + { + _visitedFirstSpan = true; + var tokens = new SyntaxList(node.LiteralTokens); + var value = SyntaxFactory.CSharpExpressionLiteral(tokens); + value = (CSharpExpressionLiteralSyntax)ConfigureNonStringAttribute(value); + return value; + } + + private SyntaxNode ConfigureNonStringAttribute(SyntaxNode node) + { + var spanContext = node.GetSpanContext(); + var builder = spanContext != null ? new SpanContextBuilder(spanContext) : new SpanContextBuilder(); + builder.EditHandler = new ImplicitExpressionEditHandler( + builder.EditHandler.Tokenizer, + CSharpCodeParser.DefaultKeywords, + acceptTrailingDot: true) + { + AcceptedCharacters = AcceptedCharactersInternal.AnyExceptNewline + }; + + if (!_tryParseResult.IsDuplicateAttribute && builder.ChunkGenerator != SpanChunkGenerator.Null) + { + // We want to mark the value of non-string bound attributes to be CSharp. + // Except in two cases, + // 1. Cases when we don't want to render the span. Eg: Transition span '@'. + // 2. Cases when it is a duplicate of a bound attribute. This should just be rendered as html. + + builder.ChunkGenerator = new ExpressionChunkGenerator(); + } + + spanContext = builder.Build(); - builder.ChunkGenerator = new ExpressionChunkGenerator(); + return node.WithSpanContext(spanContext); } } @@ -747,7 +581,7 @@ private class TryParseResult { public string AttributeName { get; set; } - public SyntaxTreeNode AttributeValueNode { get; set; } + public RazorSyntaxNode RewrittenAttribute { get; set; } public AttributeStructure AttributeStructure { get; set; } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperInfo.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperInfo.cs new file mode 100644 index 000000000..b746e92b6 --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperInfo.cs @@ -0,0 +1,24 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +namespace Microsoft.AspNetCore.Razor.Language.Legacy +{ + internal class TagHelperInfo + { + public TagHelperInfo( + string tagName, + TagMode tagMode, + TagHelperBinding bindingResult) + { + TagName = tagName; + TagMode = tagMode; + BindingResult = bindingResult; + } + + public string TagName { get; } + + public TagMode TagMode { get; } + + public TagHelperBinding BindingResult { get; } + } +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperParseTreeRewriter.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperParseTreeRewriter.cs index 86364a12b..9b10973b7 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperParseTreeRewriter.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TagHelperParseTreeRewriter.cs @@ -3,88 +3,728 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Text; using Microsoft.AspNetCore.Razor.Language.Syntax; namespace Microsoft.AspNetCore.Razor.Language.Legacy { - internal class TagHelperParseTreeRewriter : SyntaxRewriter + internal class TagHelperParseTreeRewriter { - // Internal for testing. - // Null characters are invalid markup for HTML attribute values. - internal static readonly string InvalidAttributeValueMarker = "\0"; - - // From http://dev.w3.org/html5/spec/Overview.html#elements-0 - private static readonly HashSet VoidElements = new HashSet(StringComparer.OrdinalIgnoreCase) - { - "area", - "base", - "br", - "col", - "command", - "embed", - "hr", - "img", - "input", - "keygen", - "link", - "meta", - "param", - "source", - "track", - "wbr" - }; - - private readonly string _tagHelperPrefix; - private readonly List> _htmlAttributeTracker; - private readonly StringBuilder _attributeValueBuilder; - private readonly TagHelperBinder _tagHelperBinder; - private readonly Stack _trackerStack; - private RazorParserFeatureFlags _featureFlags; - private ErrorSink _errorSink; - - public TagHelperParseTreeRewriter( - string tagHelperPrefix, - IEnumerable descriptors, - RazorParserFeatureFlags featureFlags) + public static RazorSyntaxTree Rewrite(RazorSyntaxTree syntaxTree, string tagHelperPrefix, IEnumerable descriptors) { - _tagHelperPrefix = tagHelperPrefix; - _tagHelperBinder = new TagHelperBinder(tagHelperPrefix, descriptors); - _trackerStack = new Stack(); - _attributeValueBuilder = new StringBuilder(); - _htmlAttributeTracker = new List>(); - _featureFlags = featureFlags; - } + var errorSink = new ErrorSink(); + syntaxTree = MarkupElementRewriter.AddMarkupElements(syntaxTree); - public SyntaxNode Rewrite(SyntaxNode root, ErrorSink errorSink) - { - _errorSink = errorSink; + var rewriter = new Rewriter( + syntaxTree.Source, + tagHelperPrefix, + descriptors, + syntaxTree.Options.FeatureFlags, + errorSink); - var rewritten = Visit(root); + var rewritten = rewriter.Visit(syntaxTree.Root); - return rewritten; + var errorList = new List(); + errorList.AddRange(errorSink.Errors); + errorList.AddRange(descriptors.SelectMany(d => d.GetAllDiagnostics())); + + var diagnostics = CombineErrors(syntaxTree.Diagnostics, errorList).OrderBy(error => error.Span.AbsoluteIndex); + + var newSyntaxTree = RazorSyntaxTree.Create(rewritten, syntaxTree.Source, diagnostics, syntaxTree.Options); + newSyntaxTree = MarkupElementRewriter.RemoveMarkupElements(newSyntaxTree); + + return newSyntaxTree; } - public override SyntaxNode VisitMarkupTagBlock(MarkupTagBlockSyntax node) + private static IReadOnlyList CombineErrors(IReadOnlyList errors1, IReadOnlyList errors2) { - return base.VisitMarkupTagBlock(node); + var combinedErrors = new List(errors1.Count + errors2.Count); + combinedErrors.AddRange(errors1); + combinedErrors.AddRange(errors2); + + return combinedErrors; } - private class TagBlockTracker + // Internal for testing. + internal class Rewriter : SyntaxRewriter { - public TagBlockTracker(string tagName, bool isTagHelper, int depth) + // Internal for testing. + // Null characters are invalid markup for HTML attribute values. + internal static readonly string InvalidAttributeValueMarker = "\0"; + + private readonly RazorSourceDocument _source; + private readonly string _tagHelperPrefix; + private readonly List> _htmlAttributeTracker; + private readonly StringBuilder _attributeValueBuilder; + private readonly TagHelperBinder _tagHelperBinder; + private readonly Stack _trackerStack; + private readonly ErrorSink _errorSink; + private RazorParserFeatureFlags _featureFlags; + + public Rewriter( + RazorSourceDocument source, + string tagHelperPrefix, + IEnumerable descriptors, + RazorParserFeatureFlags featureFlags, + ErrorSink errorSink) + { + _source = source; + _tagHelperPrefix = tagHelperPrefix; + _tagHelperBinder = new TagHelperBinder(tagHelperPrefix, descriptors); + _trackerStack = new Stack(); + _attributeValueBuilder = new StringBuilder(); + _htmlAttributeTracker = new List>(); + _featureFlags = featureFlags; + _errorSink = errorSink; + } + + private TagTracker CurrentTracker => _trackerStack.Count > 0 ? _trackerStack.Peek() : null; + + private string CurrentParentTagName => CurrentTracker?.TagName; + + private bool CurrentParentIsTagHelper => CurrentTracker?.IsTagHelper ?? false; + + private TagHelperTracker CurrentTagHelperTracker => _trackerStack.FirstOrDefault(t => t.IsTagHelper) as TagHelperTracker; + + public override SyntaxNode VisitMarkupElement(MarkupElementSyntax node) + { + if (IsPartOfStartTag(node)) + { + // If this element is inside a start tag, it is some sort of malformed case like + //

    , where the end "p" tag is inside the start "p" tag. + // We don't want to do tag helper parsing for this tag. + return base.VisitMarkupElement(node); + } + + MarkupTagHelperStartTagSyntax tagHelperStart = null; + MarkupTagHelperEndTagSyntax tagHelperEnd = null; + TagHelperInfo tagHelperInfo = null; + + // Visit the start tag. + var startTag = (MarkupTagBlockSyntax)Visit(node.StartTag); + if (startTag != null) + { + var tagName = startTag.GetTagName(); + if (TryRewriteTagHelperStart(startTag, out tagHelperStart, out tagHelperInfo)) + { + // This is a tag helper. + if (tagHelperInfo.TagMode == TagMode.SelfClosing || tagHelperInfo.TagMode == TagMode.StartTagOnly) + { + var tagHelperElement = SyntaxFactory.MarkupTagHelperElement(tagHelperStart, body: new SyntaxList(), endTag: null); + var rewrittenTagHelper = tagHelperElement.WithTagHelperInfo(tagHelperInfo); + if (node.Body.Count == 0) + { + return rewrittenTagHelper; + } + + // This tag contains a body which needs to be moved to the parent. + var rewrittenNodes = SyntaxListBuilder.Create(); + rewrittenNodes.Add(rewrittenTagHelper); + var rewrittenBody = VisitList(node.Body); + rewrittenNodes.AddRange(rewrittenBody); + + return SyntaxFactory.MarkupElement(startTag: null, body: rewrittenNodes.ToList(), endTag: null); + } + else if (node.EndTag == null) + { + // Start tag helper with no corresponding end tag. + _errorSink.OnError( + RazorDiagnosticFactory.CreateParsing_TagHelperFoundMalformedTagHelper( + new SourceSpan(SourceLocationTracker.Advance(startTag.GetSourceLocation(_source), "<"), tagName.Length), + tagName)); + } + else + { + // Tag helper start tag. Keep track. + var tracker = new TagHelperTracker(_tagHelperPrefix, tagHelperInfo); + _trackerStack.Push(tracker); + } + } + else + { + // Non-TagHelper tag. + ValidateParentAllowsPlainTag(startTag); + + if (!startTag.IsSelfClosing() && !startTag.IsVoidElement()) + { + var tracker = new TagTracker(tagName, isTagHelper: false); + _trackerStack.Push(tracker); + } + } + } + + // Visit body between start and end tags. + var body = VisitList(node.Body); + + // Visit end tag. + var endTag = (MarkupTagBlockSyntax)Visit(node.EndTag); + if (endTag != null) + { + var tagName = endTag.GetTagName(); + if (TryRewriteTagHelperEnd(endTag, out tagHelperEnd)) + { + // This is a tag helper + if (startTag == null) + { + // The end tag helper has no corresponding start tag, create an error. + _errorSink.OnError( + RazorDiagnosticFactory.CreateParsing_TagHelperFoundMalformedTagHelper( + new SourceSpan(SourceLocationTracker.Advance(endTag.GetSourceLocation(_source), "(n => n is MarkupTagBlockSyntax); + var isPartofTagBlock = tagParent != null; + if (!isPartofTagBlock) + { + ValidateParentAllowsContent(node); + } + + return base.VisitMarkupTextLiteral(node); + } + + private bool TryRewriteTagHelperStart(MarkupTagBlockSyntax tagBlock, out MarkupTagHelperStartTagSyntax rewritten, out TagHelperInfo tagHelperInfo) + { + rewritten = null; + tagHelperInfo = null; + + // Get tag name of the current block + var tagName = tagBlock.GetTagName(); + + // Could not determine tag name, it can't be a TagHelper, continue on and track the element. + if (tagName == null) + { + return false; + } + + TagHelperBinding tagHelperBinding; + + if (!IsPotentialTagHelper(tagName, tagBlock)) + { + return false; + } + + var tracker = CurrentTagHelperTracker; + var tagNameScope = tracker?.TagName ?? string.Empty; + + // We're now in a start tag block, we first need to see if the tag block is a tag helper. + var elementAttributes = GetAttributeNameValuePairs(tagBlock); + + tagHelperBinding = _tagHelperBinder.GetBinding( + tagName, + elementAttributes, + CurrentParentTagName, + CurrentParentIsTagHelper); + + // If there aren't any TagHelperDescriptors registered then we aren't a TagHelper + if (tagHelperBinding == null) + { + // If the current tag matches the current TagHelper scope it means the parent TagHelper matched + // all the required attributes but the current one did not; therefore, we need to increment the + // OpenMatchingTags counter for current the TagHelperBlock so we don't end it too early. + // ex: We don't want the first myth to close on the inside + // tag. + if (string.Equals(tagNameScope, tagName, StringComparison.OrdinalIgnoreCase)) + { + tracker.OpenMatchingTags++; + } + + return false; + } + + ValidateParentAllowsTagHelper(tagName, tagBlock); + ValidateBinding(tagHelperBinding, tagName, tagBlock); + + // We're in a start TagHelper block. + var validTagStructure = ValidateTagSyntax(tagName, tagBlock); + + var startTag = TagHelperBlockRewriter.Rewrite( + tagName, + validTagStructure, + _featureFlags, + tagBlock, + tagHelperBinding, + _errorSink, + _source); + + var tagMode = TagHelperBlockRewriter.GetTagMode(tagBlock, tagHelperBinding, _errorSink); + tagHelperInfo = new TagHelperInfo(tagName, tagMode, tagHelperBinding); + rewritten = startTag; + + return true; + } + + private bool TryRewriteTagHelperEnd(MarkupTagBlockSyntax tagBlock, out MarkupTagHelperEndTagSyntax rewritten) + { + rewritten = null; + var tagName = tagBlock.GetTagName(); + // Could not determine tag name, it can't be a TagHelper, continue on and track the element. + if (tagName == null) + { + return false; + } + + var tracker = CurrentTagHelperTracker; + var tagNameScope = tracker?.TagName ?? string.Empty; + if (!IsPotentialTagHelper(tagName, tagBlock)) + { + return false; + } + + // Validate that our end tag matches the currently scoped tag, if not we may need to error. + if (tagNameScope.Equals(tagName, StringComparison.OrdinalIgnoreCase)) + { + // If there are additional end tags required before we can build our block it means we're in a + // situation like this: where we're at the inside . + if (tracker.OpenMatchingTags > 0) + { + tracker.OpenMatchingTags--; + + return false; + } + + ValidateTagSyntax(tagName, tagBlock); + + _trackerStack.Pop(); + } + else + { + var tagHelperBinding = _tagHelperBinder.GetBinding( + tagName, + attributes: Array.Empty>(), + parentTagName: CurrentParentTagName, + parentIsTagHelper: CurrentParentIsTagHelper); + + // If there are not TagHelperDescriptors associated with the end tag block that also have no + // required attributes then it means we can't be a TagHelper, bail out. + if (tagHelperBinding == null) + { + return false; + } + + foreach (var descriptor in tagHelperBinding.Descriptors) + { + var boundRules = tagHelperBinding.GetBoundRules(descriptor); + var invalidRule = boundRules.FirstOrDefault(rule => rule.TagStructure == TagStructure.WithoutEndTag); + + if (invalidRule != null) + { + // End tag TagHelper that states it shouldn't have an end tag. + _errorSink.OnError( + RazorDiagnosticFactory.CreateParsing_TagHelperMustNotHaveAnEndTag( + new SourceSpan(SourceLocationTracker.Advance(tagBlock.GetSourceLocation(_source), "> GetAttributeNameValuePairs(MarkupTagBlockSyntax tagBlock) + { + // Need to calculate how many children we should take that represent the attributes. + var childrenOffset = IsPartialTag(tagBlock) ? 0 : 1; + var childCount = tagBlock.Children.Count - childrenOffset; + + if (childCount <= 1) + { + return Array.Empty>(); + } + + _htmlAttributeTracker.Clear(); + + var attributes = _htmlAttributeTracker; + + for (var i = 1; i < childCount; i++) + { + if (tagBlock.Children[i] is CSharpCodeBlockSyntax) + { + // Code blocks in the attribute area of tags mangles following attributes. + // It's also not supported by TagHelpers, bail early to avoid creating bad attribute value pairs. + break; + } + + if (tagBlock.Children[i] is MarkupMinimizedAttributeBlockSyntax minimizedAttributeBlock) + { + if (minimizedAttributeBlock.Name == null) + { + _attributeValueBuilder.Append(InvalidAttributeValueMarker); + continue; + } + + var minimizedAttribute = new KeyValuePair(minimizedAttributeBlock.Name.GetContent(), string.Empty); + attributes.Add(minimizedAttribute); + continue; + } + + if (!(tagBlock.Children[i] is MarkupAttributeBlockSyntax attributeBlock)) + { + // If the parser thought these aren't attributes, we don't care about them. Move on. + continue; + } + + if (attributeBlock.Name == null) + { + _attributeValueBuilder.Append(InvalidAttributeValueMarker); + continue; + } + + if (attributeBlock.Value != null) + { + for (var j = 0; j < attributeBlock.Value.Children.Count; j++) + { + var child = attributeBlock.Value.Children[j]; + if (child is MarkupLiteralAttributeValueSyntax literalValue) + { + _attributeValueBuilder.Append(literalValue.GetContent()); + } + else + { + _attributeValueBuilder.Append(InvalidAttributeValueMarker); + } + } + } + + var attributeName = attributeBlock.Name.GetContent(); + var attributeValue = _attributeValueBuilder.ToString(); + var attribute = new KeyValuePair(attributeName, attributeValue); + attributes.Add(attribute); + + _attributeValueBuilder.Clear(); + } + + return attributes; + } + + private void ValidateParentAllowsTagHelper(string tagName, MarkupTagBlockSyntax tagBlock) + { + if (HasAllowedChildren() && + !CurrentTagHelperTracker.PrefixedAllowedChildren.Contains(tagName, StringComparer.OrdinalIgnoreCase)) + { + OnAllowedChildrenTagError(CurrentTagHelperTracker, tagName, tagBlock, _errorSink, _source); + } + } + + private void ValidateBinding( + TagHelperBinding bindingResult, + string tagName, + MarkupTagBlockSyntax tagBlock) + { + // Ensure that all descriptors associated with this tag have appropriate TagStructures. Cannot have + // multiple descriptors that expect different TagStructures (other than TagStructure.Unspecified). + TagHelperDescriptor baseDescriptor = null; + TagStructure? baseStructure = null; + foreach (var descriptor in bindingResult.Descriptors) + { + var boundRules = bindingResult.GetBoundRules(descriptor); + foreach (var rule in boundRules) + { + if (rule.TagStructure != TagStructure.Unspecified) + { + // Can't have a set of TagHelpers that expect different structures. + if (baseStructure.HasValue && baseStructure != rule.TagStructure) + { + _errorSink.OnError( + RazorDiagnosticFactory.CreateTagHelper_InconsistentTagStructure( + new SourceSpan(tagBlock.GetSourceLocation(_source), tagBlock.FullWidth), + baseDescriptor.DisplayName, + descriptor.DisplayName, + tagName)); + } + + baseDescriptor = descriptor; + baseStructure = rule.TagStructure; + } + } + } + } + + private bool ValidateTagSyntax(string tagName, MarkupTagBlockSyntax tag) + { + // We assume an invalid syntax until we verify that the tag meets all of our "valid syntax" criteria. + if (IsPartialTag(tag)) + { + var errorStart = GetTagDeclarationErrorStart(tag); + + _errorSink.OnError( + RazorDiagnosticFactory.CreateParsing_TagHelperMissingCloseAngle( + new SourceSpan(errorStart, tagName.Length), tagName)); + + return false; + } + + return true; + } + + private bool IsPotentialTagHelper(string tagName, MarkupTagBlockSyntax childBlock) + { + Debug.Assert(childBlock.Children.Count > 0); + var child = childBlock.Children[0]; + + return !string.Equals(tagName, SyntaxConstants.TextTagName, StringComparison.OrdinalIgnoreCase) || + child.Kind != SyntaxKind.MarkupTransition; + } + + private SourceLocation GetTagDeclarationErrorStart(MarkupTagBlockSyntax tagBlock) + { + var advanceBy = IsEndTag(tagBlock) ? " 0 ? + tagEndLiteral.LiteralTokens[tagEndLiteral.LiteralTokens.Count - 1] : + null; + + if (endToken != null && endToken.Kind == SyntaxKind.CloseAngle) + { + return false; + } + } + + return true; + } + + private void ValidateParentAllowsContent(SyntaxNode child) + { + if (HasAllowedChildren()) + { + var isDisallowedContent = true; + if (_featureFlags.AllowHtmlCommentsInTagHelpers) + { + // TODO: Questionable logic. Need to revisit + isDisallowedContent = !IsComment(child) && + child.Kind != SyntaxKind.MarkupTransition && + child.Kind != SyntaxKind.CSharpTransition && + child.Kind != SyntaxKind.CSharpStatementLiteral && + child.Kind != SyntaxKind.CSharpExpressionLiteral; + } + + if (isDisallowedContent) + { + var content = child.GetContent(); + if (!string.IsNullOrWhiteSpace(content)) + { + var trimmedStart = content.TrimStart(); + var whitespace = content.Substring(0, content.Length - trimmedStart.Length); + var errorStart = SourceLocationTracker.Advance(child.GetSourceLocation(_source), whitespace); + var length = trimmedStart.TrimEnd().Length; + var allowedChildren = CurrentTagHelperTracker.AllowedChildren; + var allowedChildrenString = string.Join(", ", allowedChildren); + _errorSink.OnError( + RazorDiagnosticFactory.CreateTagHelper_CannotHaveNonTagContent( + new SourceSpan(errorStart, length), + CurrentTagHelperTracker.TagName, + allowedChildrenString)); + } + } + } + } + + private void ValidateParentAllowsPlainTag(MarkupTagBlockSyntax tagBlock) + { + var tagName = tagBlock.GetTagName(); + + // Treat partial tags such as '>(), + parentTagName: CurrentParentTagName, + parentIsTagHelper: CurrentParentIsTagHelper); + + // If we found a binding for the current tag, then it is a tag helper. Use the prefixed allowed children to compare. + var allowedChildren = tagHelperBinding != null ? CurrentTagHelperTracker.PrefixedAllowedChildren : CurrentTagHelperTracker.AllowedChildren; + if (!allowedChildren.Contains(tagName, StringComparer.OrdinalIgnoreCase)) + { + OnAllowedChildrenTagError(CurrentTagHelperTracker, tagName, tagBlock, _errorSink, _source); + } + } + + private bool HasAllowedChildren() + { + // TODO: Questionable logic. Need to revisit + var currentTracker = _trackerStack.Count > 0 ? _trackerStack.Peek() : null; + + // If the current tracker is not a TagHelper then there's no AllowedChildren to enforce. + if (currentTracker == null || !currentTracker.IsTagHelper) + { + return false; + } + + return CurrentTagHelperTracker.AllowedChildren != null && CurrentTagHelperTracker.AllowedChildren.Count > 0; + } + + private bool IsPartOfStartTag(SyntaxNode node) + { + // Check if an ancestor is a start tag of a MarkupElement. + var parent = node.FirstAncestorOrSelf(n => + { + return n.Parent is MarkupElementSyntax element && element.StartTag == n; + }); + + return parent != null; + } + + internal static bool IsComment(SyntaxNode node) + { + var commentParent = node.FirstAncestorOrSelf( + n => n is RazorCommentBlockSyntax || n is MarkupCommentBlockSyntax); + + return commentParent != null; + } + + private static void OnAllowedChildrenTagError( + TagHelperTracker tracker, + string tagName, + MarkupTagBlockSyntax tagBlock, + ErrorSink errorSink, + RazorSourceDocument source) { - TagName = tagName; - IsTagHelper = isTagHelper; - Depth = depth; + var allowedChildrenString = string.Join(", ", tracker.AllowedChildren); + var errorStart = GetTagDeclarationErrorStart(tagBlock, source); + + errorSink.OnError( + RazorDiagnosticFactory.CreateTagHelper_InvalidNestedTag( + new SourceSpan(errorStart, tagName.Length), + tagName, + tracker.TagName, + allowedChildrenString)); } - public string TagName { get; } + private static SourceLocation GetTagDeclarationErrorStart(MarkupTagBlockSyntax tagBlock, RazorSourceDocument source) + { + var advanceBy = IsEndTag(tagBlock) ? " _prefixedAllowedChildren; + private readonly string _tagHelperPrefix; + + public TagHelperTracker(string tagHelperPrefix, TagHelperInfo info) + : base(info.TagName, isTagHelper: true) + { + _tagHelperPrefix = tagHelperPrefix; + Info = info; + + if (Info.BindingResult.Descriptors.Any(descriptor => descriptor.AllowedChildTags != null)) + { + AllowedChildren = Info.BindingResult.Descriptors + .Where(descriptor => descriptor.AllowedChildTags != null) + .SelectMany(descriptor => descriptor.AllowedChildTags.Select(childTag => childTag.Name)) + .Distinct(StringComparer.OrdinalIgnoreCase) + .ToList(); + } + } + + public TagHelperInfo Info { get; } + + public uint OpenMatchingTags { get; set; } + + public IReadOnlyList AllowedChildren { get; } + + public IReadOnlyList PrefixedAllowedChildren + { + get + { + if (AllowedChildren != null && _prefixedAllowedChildren == null) + { + Debug.Assert(Info.BindingResult.Descriptors.Count() >= 1); + + _prefixedAllowedChildren = AllowedChildren.Select(allowedChild => _tagHelperPrefix + allowedChild).ToList(); + } + + return _prefixedAllowedChildren; + } + } + } } } } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs index db301d646..912c8eb9c 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs @@ -825,6 +825,11 @@ protected internal void AcceptToken(IEnumerable tokens) { foreach (var token in tokens) { + foreach (var error in token.GetDiagnostics()) + { + Context.ErrorSink.OnError(error); + } + TokenBuilder.Add(token); } } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Internal.Generated.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Internal.Generated.cs index fe153e41d..0b671bd97 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Internal.Generated.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Internal.Generated.cs @@ -8,18 +8,6 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax { - internal abstract partial class RazorSyntaxNode : GreenNode - { - internal RazorSyntaxNode(SyntaxKind kind, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) - : base(kind, diagnostics, annotations) - { - } - internal RazorSyntaxNode(SyntaxKind kind) - : base(kind) - { - } - } - internal abstract partial class RazorBlockSyntax : RazorSyntaxNode { internal RazorBlockSyntax(SyntaxKind kind, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) @@ -1006,24 +994,723 @@ internal override GreenNode GetSlot(int index) internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.MarkupMinimizedAttributeBlockSyntax(this, parent, position); + return new Syntax.MarkupMinimizedAttributeBlockSyntax(this, parent, position); + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitMarkupMinimizedAttributeBlock(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitMarkupMinimizedAttributeBlock(this); + } + + public MarkupMinimizedAttributeBlockSyntax Update(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name) + { + if (namePrefix != NamePrefix || name != Name) + { + var newNode = SyntaxFactory.MarkupMinimizedAttributeBlock(namePrefix, name); + var diags = GetDiagnostics(); + if (diags != null && diags.Length > 0) + newNode = newNode.WithDiagnosticsGreen(diags); + var annotations = GetAnnotations(); + if (annotations != null && annotations.Length > 0) + newNode = newNode.WithAnnotationsGreen(annotations); + return newNode; + } + + return this; + } + + internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) + { + return new MarkupMinimizedAttributeBlockSyntax(Kind, _namePrefix, _name, diagnostics, GetAnnotations()); + } + + internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) + { + return new MarkupMinimizedAttributeBlockSyntax(Kind, _namePrefix, _name, GetDiagnostics(), annotations); + } + } + + internal sealed partial class MarkupAttributeBlockSyntax : MarkupSyntaxNode + { + private readonly MarkupTextLiteralSyntax _namePrefix; + private readonly MarkupTextLiteralSyntax _name; + private readonly MarkupTextLiteralSyntax _nameSuffix; + private readonly SyntaxToken _equalsToken; + private readonly MarkupTextLiteralSyntax _valuePrefix; + private readonly RazorBlockSyntax _value; + private readonly MarkupTextLiteralSyntax _valueSuffix; + + internal MarkupAttributeBlockSyntax(SyntaxKind kind, MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, MarkupTextLiteralSyntax valuePrefix, RazorBlockSyntax value, MarkupTextLiteralSyntax valueSuffix, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + : base(kind, diagnostics, annotations) + { + SlotCount = 7; + if (namePrefix != null) + { + AdjustFlagsAndWidth(namePrefix); + _namePrefix = namePrefix; + } + AdjustFlagsAndWidth(name); + _name = name; + if (nameSuffix != null) + { + AdjustFlagsAndWidth(nameSuffix); + _nameSuffix = nameSuffix; + } + AdjustFlagsAndWidth(equalsToken); + _equalsToken = equalsToken; + if (valuePrefix != null) + { + AdjustFlagsAndWidth(valuePrefix); + _valuePrefix = valuePrefix; + } + if (value != null) + { + AdjustFlagsAndWidth(value); + _value = value; + } + if (valueSuffix != null) + { + AdjustFlagsAndWidth(valueSuffix); + _valueSuffix = valueSuffix; + } + } + + + internal MarkupAttributeBlockSyntax(SyntaxKind kind, MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, MarkupTextLiteralSyntax valuePrefix, RazorBlockSyntax value, MarkupTextLiteralSyntax valueSuffix) + : base(kind) + { + SlotCount = 7; + if (namePrefix != null) + { + AdjustFlagsAndWidth(namePrefix); + _namePrefix = namePrefix; + } + AdjustFlagsAndWidth(name); + _name = name; + if (nameSuffix != null) + { + AdjustFlagsAndWidth(nameSuffix); + _nameSuffix = nameSuffix; + } + AdjustFlagsAndWidth(equalsToken); + _equalsToken = equalsToken; + if (valuePrefix != null) + { + AdjustFlagsAndWidth(valuePrefix); + _valuePrefix = valuePrefix; + } + if (value != null) + { + AdjustFlagsAndWidth(value); + _value = value; + } + if (valueSuffix != null) + { + AdjustFlagsAndWidth(valueSuffix); + _valueSuffix = valueSuffix; + } + } + + public MarkupTextLiteralSyntax NamePrefix { get { return _namePrefix; } } + public MarkupTextLiteralSyntax Name { get { return _name; } } + public MarkupTextLiteralSyntax NameSuffix { get { return _nameSuffix; } } + public SyntaxToken EqualsToken { get { return _equalsToken; } } + public MarkupTextLiteralSyntax ValuePrefix { get { return _valuePrefix; } } + public RazorBlockSyntax Value { get { return _value; } } + public MarkupTextLiteralSyntax ValueSuffix { get { return _valueSuffix; } } + + internal override GreenNode GetSlot(int index) + { + switch (index) + { + case 0: return _namePrefix; + case 1: return _name; + case 2: return _nameSuffix; + case 3: return _equalsToken; + case 4: return _valuePrefix; + case 5: return _value; + case 6: return _valueSuffix; + default: return null; + } + } + + internal override SyntaxNode CreateRed(SyntaxNode parent, int position) + { + return new Syntax.MarkupAttributeBlockSyntax(this, parent, position); + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitMarkupAttributeBlock(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitMarkupAttributeBlock(this); + } + + public MarkupAttributeBlockSyntax Update(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, MarkupTextLiteralSyntax valuePrefix, RazorBlockSyntax value, MarkupTextLiteralSyntax valueSuffix) + { + if (namePrefix != NamePrefix || name != Name || nameSuffix != NameSuffix || equalsToken != EqualsToken || valuePrefix != ValuePrefix || value != Value || valueSuffix != ValueSuffix) + { + var newNode = SyntaxFactory.MarkupAttributeBlock(namePrefix, name, nameSuffix, equalsToken, valuePrefix, value, valueSuffix); + var diags = GetDiagnostics(); + if (diags != null && diags.Length > 0) + newNode = newNode.WithDiagnosticsGreen(diags); + var annotations = GetAnnotations(); + if (annotations != null && annotations.Length > 0) + newNode = newNode.WithAnnotationsGreen(annotations); + return newNode; + } + + return this; + } + + internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) + { + return new MarkupAttributeBlockSyntax(Kind, _namePrefix, _name, _nameSuffix, _equalsToken, _valuePrefix, _value, _valueSuffix, diagnostics, GetAnnotations()); + } + + internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) + { + return new MarkupAttributeBlockSyntax(Kind, _namePrefix, _name, _nameSuffix, _equalsToken, _valuePrefix, _value, _valueSuffix, GetDiagnostics(), annotations); + } + } + + internal sealed partial class MarkupLiteralAttributeValueSyntax : MarkupSyntaxNode + { + private readonly MarkupTextLiteralSyntax _prefix; + private readonly MarkupTextLiteralSyntax _value; + + internal MarkupLiteralAttributeValueSyntax(SyntaxKind kind, MarkupTextLiteralSyntax prefix, MarkupTextLiteralSyntax value, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + : base(kind, diagnostics, annotations) + { + SlotCount = 2; + if (prefix != null) + { + AdjustFlagsAndWidth(prefix); + _prefix = prefix; + } + if (value != null) + { + AdjustFlagsAndWidth(value); + _value = value; + } + } + + + internal MarkupLiteralAttributeValueSyntax(SyntaxKind kind, MarkupTextLiteralSyntax prefix, MarkupTextLiteralSyntax value) + : base(kind) + { + SlotCount = 2; + if (prefix != null) + { + AdjustFlagsAndWidth(prefix); + _prefix = prefix; + } + if (value != null) + { + AdjustFlagsAndWidth(value); + _value = value; + } + } + + public MarkupTextLiteralSyntax Prefix { get { return _prefix; } } + public MarkupTextLiteralSyntax Value { get { return _value; } } + + internal override GreenNode GetSlot(int index) + { + switch (index) + { + case 0: return _prefix; + case 1: return _value; + default: return null; + } + } + + internal override SyntaxNode CreateRed(SyntaxNode parent, int position) + { + return new Syntax.MarkupLiteralAttributeValueSyntax(this, parent, position); + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitMarkupLiteralAttributeValue(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitMarkupLiteralAttributeValue(this); + } + + public MarkupLiteralAttributeValueSyntax Update(MarkupTextLiteralSyntax prefix, MarkupTextLiteralSyntax value) + { + if (prefix != Prefix || value != Value) + { + var newNode = SyntaxFactory.MarkupLiteralAttributeValue(prefix, value); + var diags = GetDiagnostics(); + if (diags != null && diags.Length > 0) + newNode = newNode.WithDiagnosticsGreen(diags); + var annotations = GetAnnotations(); + if (annotations != null && annotations.Length > 0) + newNode = newNode.WithAnnotationsGreen(annotations); + return newNode; + } + + return this; + } + + internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) + { + return new MarkupLiteralAttributeValueSyntax(Kind, _prefix, _value, diagnostics, GetAnnotations()); + } + + internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) + { + return new MarkupLiteralAttributeValueSyntax(Kind, _prefix, _value, GetDiagnostics(), annotations); + } + } + + internal sealed partial class MarkupDynamicAttributeValueSyntax : MarkupSyntaxNode + { + private readonly MarkupTextLiteralSyntax _prefix; + private readonly RazorBlockSyntax _value; + + internal MarkupDynamicAttributeValueSyntax(SyntaxKind kind, MarkupTextLiteralSyntax prefix, RazorBlockSyntax value, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + : base(kind, diagnostics, annotations) + { + SlotCount = 2; + if (prefix != null) + { + AdjustFlagsAndWidth(prefix); + _prefix = prefix; + } + AdjustFlagsAndWidth(value); + _value = value; + } + + + internal MarkupDynamicAttributeValueSyntax(SyntaxKind kind, MarkupTextLiteralSyntax prefix, RazorBlockSyntax value) + : base(kind) + { + SlotCount = 2; + if (prefix != null) + { + AdjustFlagsAndWidth(prefix); + _prefix = prefix; + } + AdjustFlagsAndWidth(value); + _value = value; + } + + public MarkupTextLiteralSyntax Prefix { get { return _prefix; } } + public RazorBlockSyntax Value { get { return _value; } } + + internal override GreenNode GetSlot(int index) + { + switch (index) + { + case 0: return _prefix; + case 1: return _value; + default: return null; + } + } + + internal override SyntaxNode CreateRed(SyntaxNode parent, int position) + { + return new Syntax.MarkupDynamicAttributeValueSyntax(this, parent, position); + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitMarkupDynamicAttributeValue(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitMarkupDynamicAttributeValue(this); + } + + public MarkupDynamicAttributeValueSyntax Update(MarkupTextLiteralSyntax prefix, RazorBlockSyntax value) + { + if (prefix != Prefix || value != Value) + { + var newNode = SyntaxFactory.MarkupDynamicAttributeValue(prefix, value); + var diags = GetDiagnostics(); + if (diags != null && diags.Length > 0) + newNode = newNode.WithDiagnosticsGreen(diags); + var annotations = GetAnnotations(); + if (annotations != null && annotations.Length > 0) + newNode = newNode.WithAnnotationsGreen(annotations); + return newNode; + } + + return this; + } + + internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) + { + return new MarkupDynamicAttributeValueSyntax(Kind, _prefix, _value, diagnostics, GetAnnotations()); + } + + internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) + { + return new MarkupDynamicAttributeValueSyntax(Kind, _prefix, _value, GetDiagnostics(), annotations); + } + } + + internal sealed partial class MarkupElementSyntax : MarkupSyntaxNode + { + private readonly MarkupTagBlockSyntax _startTag; + private readonly GreenNode _body; + private readonly MarkupTagBlockSyntax _endTag; + + internal MarkupElementSyntax(SyntaxKind kind, MarkupTagBlockSyntax startTag, GreenNode body, MarkupTagBlockSyntax endTag, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + : base(kind, diagnostics, annotations) + { + SlotCount = 3; + if (startTag != null) + { + AdjustFlagsAndWidth(startTag); + _startTag = startTag; + } + if (body != null) + { + AdjustFlagsAndWidth(body); + _body = body; + } + if (endTag != null) + { + AdjustFlagsAndWidth(endTag); + _endTag = endTag; + } + } + + + internal MarkupElementSyntax(SyntaxKind kind, MarkupTagBlockSyntax startTag, GreenNode body, MarkupTagBlockSyntax endTag) + : base(kind) + { + SlotCount = 3; + if (startTag != null) + { + AdjustFlagsAndWidth(startTag); + _startTag = startTag; + } + if (body != null) + { + AdjustFlagsAndWidth(body); + _body = body; + } + if (endTag != null) + { + AdjustFlagsAndWidth(endTag); + _endTag = endTag; + } + } + + public MarkupTagBlockSyntax StartTag { get { return _startTag; } } + public SyntaxList Body { get { return new SyntaxList(_body); } } + public MarkupTagBlockSyntax EndTag { get { return _endTag; } } + + internal override GreenNode GetSlot(int index) + { + switch (index) + { + case 0: return _startTag; + case 1: return _body; + case 2: return _endTag; + default: return null; + } + } + + internal override SyntaxNode CreateRed(SyntaxNode parent, int position) + { + return new Syntax.MarkupElementSyntax(this, parent, position); + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitMarkupElement(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitMarkupElement(this); + } + + public MarkupElementSyntax Update(MarkupTagBlockSyntax startTag, Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList body, MarkupTagBlockSyntax endTag) + { + if (startTag != StartTag || body != Body || endTag != EndTag) + { + var newNode = SyntaxFactory.MarkupElement(startTag, body, endTag); + var diags = GetDiagnostics(); + if (diags != null && diags.Length > 0) + newNode = newNode.WithDiagnosticsGreen(diags); + var annotations = GetAnnotations(); + if (annotations != null && annotations.Length > 0) + newNode = newNode.WithAnnotationsGreen(annotations); + return newNode; + } + + return this; + } + + internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) + { + return new MarkupElementSyntax(Kind, _startTag, _body, _endTag, diagnostics, GetAnnotations()); + } + + internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) + { + return new MarkupElementSyntax(Kind, _startTag, _body, _endTag, GetDiagnostics(), annotations); + } + } + + internal sealed partial class MarkupTagHelperElementSyntax : MarkupSyntaxNode + { + private readonly MarkupTagHelperStartTagSyntax _startTag; + private readonly GreenNode _body; + private readonly MarkupTagHelperEndTagSyntax _endTag; + + internal MarkupTagHelperElementSyntax(SyntaxKind kind, MarkupTagHelperStartTagSyntax startTag, GreenNode body, MarkupTagHelperEndTagSyntax endTag, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + : base(kind, diagnostics, annotations) + { + SlotCount = 3; + AdjustFlagsAndWidth(startTag); + _startTag = startTag; + if (body != null) + { + AdjustFlagsAndWidth(body); + _body = body; + } + if (endTag != null) + { + AdjustFlagsAndWidth(endTag); + _endTag = endTag; + } + } + + + internal MarkupTagHelperElementSyntax(SyntaxKind kind, MarkupTagHelperStartTagSyntax startTag, GreenNode body, MarkupTagHelperEndTagSyntax endTag) + : base(kind) + { + SlotCount = 3; + AdjustFlagsAndWidth(startTag); + _startTag = startTag; + if (body != null) + { + AdjustFlagsAndWidth(body); + _body = body; + } + if (endTag != null) + { + AdjustFlagsAndWidth(endTag); + _endTag = endTag; + } + } + + public MarkupTagHelperStartTagSyntax StartTag { get { return _startTag; } } + public SyntaxList Body { get { return new SyntaxList(_body); } } + public MarkupTagHelperEndTagSyntax EndTag { get { return _endTag; } } + + internal override GreenNode GetSlot(int index) + { + switch (index) + { + case 0: return _startTag; + case 1: return _body; + case 2: return _endTag; + default: return null; + } + } + + internal override SyntaxNode CreateRed(SyntaxNode parent, int position) + { + return new Syntax.MarkupTagHelperElementSyntax(this, parent, position); + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitMarkupTagHelperElement(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitMarkupTagHelperElement(this); + } + + public MarkupTagHelperElementSyntax Update(MarkupTagHelperStartTagSyntax startTag, Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList body, MarkupTagHelperEndTagSyntax endTag) + { + if (startTag != StartTag || body != Body || endTag != EndTag) + { + var newNode = SyntaxFactory.MarkupTagHelperElement(startTag, body, endTag); + var diags = GetDiagnostics(); + if (diags != null && diags.Length > 0) + newNode = newNode.WithDiagnosticsGreen(diags); + var annotations = GetAnnotations(); + if (annotations != null && annotations.Length > 0) + newNode = newNode.WithAnnotationsGreen(annotations); + return newNode; + } + + return this; + } + + internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) + { + return new MarkupTagHelperElementSyntax(Kind, _startTag, _body, _endTag, diagnostics, GetAnnotations()); + } + + internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) + { + return new MarkupTagHelperElementSyntax(Kind, _startTag, _body, _endTag, GetDiagnostics(), annotations); + } + } + + internal sealed partial class MarkupTagHelperStartTagSyntax : RazorBlockSyntax + { + private readonly GreenNode _children; + + internal MarkupTagHelperStartTagSyntax(SyntaxKind kind, GreenNode children, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + : base(kind, diagnostics, annotations) + { + SlotCount = 1; + if (children != null) + { + AdjustFlagsAndWidth(children); + _children = children; + } + } + + + internal MarkupTagHelperStartTagSyntax(SyntaxKind kind, GreenNode children) + : base(kind) + { + SlotCount = 1; + if (children != null) + { + AdjustFlagsAndWidth(children); + _children = children; + } + } + + public override SyntaxList Children { get { return new SyntaxList(_children); } } + + internal override GreenNode GetSlot(int index) + { + switch (index) + { + case 0: return _children; + default: return null; + } + } + + internal override SyntaxNode CreateRed(SyntaxNode parent, int position) + { + return new Syntax.MarkupTagHelperStartTagSyntax(this, parent, position); + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitMarkupTagHelperStartTag(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitMarkupTagHelperStartTag(this); + } + + public MarkupTagHelperStartTagSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) + { + if (children != Children) + { + var newNode = SyntaxFactory.MarkupTagHelperStartTag(children); + var diags = GetDiagnostics(); + if (diags != null && diags.Length > 0) + newNode = newNode.WithDiagnosticsGreen(diags); + var annotations = GetAnnotations(); + if (annotations != null && annotations.Length > 0) + newNode = newNode.WithAnnotationsGreen(annotations); + return newNode; + } + + return this; + } + + internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) + { + return new MarkupTagHelperStartTagSyntax(Kind, _children, diagnostics, GetAnnotations()); + } + + internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) + { + return new MarkupTagHelperStartTagSyntax(Kind, _children, GetDiagnostics(), annotations); + } + } + + internal sealed partial class MarkupTagHelperEndTagSyntax : RazorBlockSyntax + { + private readonly GreenNode _children; + + internal MarkupTagHelperEndTagSyntax(SyntaxKind kind, GreenNode children, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + : base(kind, diagnostics, annotations) + { + SlotCount = 1; + if (children != null) + { + AdjustFlagsAndWidth(children); + _children = children; + } + } + + + internal MarkupTagHelperEndTagSyntax(SyntaxKind kind, GreenNode children) + : base(kind) + { + SlotCount = 1; + if (children != null) + { + AdjustFlagsAndWidth(children); + _children = children; + } + } + + public override SyntaxList Children { get { return new SyntaxList(_children); } } + + internal override GreenNode GetSlot(int index) + { + switch (index) + { + case 0: return _children; + default: return null; + } + } + + internal override SyntaxNode CreateRed(SyntaxNode parent, int position) + { + return new Syntax.MarkupTagHelperEndTagSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitMarkupMinimizedAttributeBlock(this); + return visitor.VisitMarkupTagHelperEndTag(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitMarkupMinimizedAttributeBlock(this); + visitor.VisitMarkupTagHelperEndTag(this); } - public MarkupMinimizedAttributeBlockSyntax Update(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name) + public MarkupTagHelperEndTagSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) { - if (namePrefix != NamePrefix || name != Name) + if (children != Children) { - var newNode = SyntaxFactory.MarkupMinimizedAttributeBlock(namePrefix, name); + var newNode = SyntaxFactory.MarkupTagHelperEndTag(children); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -1038,26 +1725,26 @@ public MarkupMinimizedAttributeBlockSyntax Update(MarkupTextLiteralSyntax namePr internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new MarkupMinimizedAttributeBlockSyntax(Kind, _namePrefix, _name, diagnostics, GetAnnotations()); + return new MarkupTagHelperEndTagSyntax(Kind, _children, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new MarkupMinimizedAttributeBlockSyntax(Kind, _namePrefix, _name, GetDiagnostics(), annotations); + return new MarkupTagHelperEndTagSyntax(Kind, _children, GetDiagnostics(), annotations); } } - internal sealed partial class MarkupAttributeBlockSyntax : MarkupSyntaxNode + internal sealed partial class MarkupTagHelperAttributeSyntax : MarkupSyntaxNode { private readonly MarkupTextLiteralSyntax _namePrefix; private readonly MarkupTextLiteralSyntax _name; private readonly MarkupTextLiteralSyntax _nameSuffix; private readonly SyntaxToken _equalsToken; private readonly MarkupTextLiteralSyntax _valuePrefix; - private readonly RazorBlockSyntax _value; + private readonly MarkupTagHelperAttributeValueSyntax _value; private readonly MarkupTextLiteralSyntax _valueSuffix; - internal MarkupAttributeBlockSyntax(SyntaxKind kind, MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, MarkupTextLiteralSyntax valuePrefix, RazorBlockSyntax value, MarkupTextLiteralSyntax valueSuffix, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal MarkupTagHelperAttributeSyntax(SyntaxKind kind, MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, MarkupTextLiteralSyntax valuePrefix, MarkupTagHelperAttributeValueSyntax value, MarkupTextLiteralSyntax valueSuffix, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 7; @@ -1090,7 +1777,7 @@ internal MarkupAttributeBlockSyntax(SyntaxKind kind, MarkupTextLiteralSyntax nam } - internal MarkupAttributeBlockSyntax(SyntaxKind kind, MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, MarkupTextLiteralSyntax valuePrefix, RazorBlockSyntax value, MarkupTextLiteralSyntax valueSuffix) + internal MarkupTagHelperAttributeSyntax(SyntaxKind kind, MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, MarkupTextLiteralSyntax valuePrefix, MarkupTagHelperAttributeValueSyntax value, MarkupTextLiteralSyntax valueSuffix) : base(kind) { SlotCount = 7; @@ -1127,7 +1814,7 @@ internal MarkupAttributeBlockSyntax(SyntaxKind kind, MarkupTextLiteralSyntax nam public MarkupTextLiteralSyntax NameSuffix { get { return _nameSuffix; } } public SyntaxToken EqualsToken { get { return _equalsToken; } } public MarkupTextLiteralSyntax ValuePrefix { get { return _valuePrefix; } } - public RazorBlockSyntax Value { get { return _value; } } + public MarkupTagHelperAttributeValueSyntax Value { get { return _value; } } public MarkupTextLiteralSyntax ValueSuffix { get { return _valueSuffix; } } internal override GreenNode GetSlot(int index) @@ -1147,24 +1834,24 @@ internal override GreenNode GetSlot(int index) internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.MarkupAttributeBlockSyntax(this, parent, position); + return new Syntax.MarkupTagHelperAttributeSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitMarkupAttributeBlock(this); + return visitor.VisitMarkupTagHelperAttribute(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitMarkupAttributeBlock(this); + visitor.VisitMarkupTagHelperAttribute(this); } - public MarkupAttributeBlockSyntax Update(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, MarkupTextLiteralSyntax valuePrefix, RazorBlockSyntax value, MarkupTextLiteralSyntax valueSuffix) + public MarkupTagHelperAttributeSyntax Update(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, MarkupTextLiteralSyntax valuePrefix, MarkupTagHelperAttributeValueSyntax value, MarkupTextLiteralSyntax valueSuffix) { if (namePrefix != NamePrefix || name != Name || nameSuffix != NameSuffix || equalsToken != EqualsToken || valuePrefix != ValuePrefix || value != Value || valueSuffix != ValueSuffix) { - var newNode = SyntaxFactory.MarkupAttributeBlock(namePrefix, name, nameSuffix, equalsToken, valuePrefix, value, valueSuffix); + var newNode = SyntaxFactory.MarkupTagHelperAttribute(namePrefix, name, nameSuffix, equalsToken, valuePrefix, value, valueSuffix); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -1179,80 +1866,80 @@ public MarkupAttributeBlockSyntax Update(MarkupTextLiteralSyntax namePrefix, Mar internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new MarkupAttributeBlockSyntax(Kind, _namePrefix, _name, _nameSuffix, _equalsToken, _valuePrefix, _value, _valueSuffix, diagnostics, GetAnnotations()); + return new MarkupTagHelperAttributeSyntax(Kind, _namePrefix, _name, _nameSuffix, _equalsToken, _valuePrefix, _value, _valueSuffix, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new MarkupAttributeBlockSyntax(Kind, _namePrefix, _name, _nameSuffix, _equalsToken, _valuePrefix, _value, _valueSuffix, GetDiagnostics(), annotations); + return new MarkupTagHelperAttributeSyntax(Kind, _namePrefix, _name, _nameSuffix, _equalsToken, _valuePrefix, _value, _valueSuffix, GetDiagnostics(), annotations); } } - internal sealed partial class MarkupLiteralAttributeValueSyntax : MarkupSyntaxNode + internal sealed partial class MarkupMinimizedTagHelperAttributeSyntax : MarkupSyntaxNode { - private readonly MarkupTextLiteralSyntax _prefix; - private readonly MarkupTextLiteralSyntax _value; + private readonly MarkupTextLiteralSyntax _namePrefix; + private readonly MarkupTextLiteralSyntax _name; - internal MarkupLiteralAttributeValueSyntax(SyntaxKind kind, MarkupTextLiteralSyntax prefix, MarkupTextLiteralSyntax value, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal MarkupMinimizedTagHelperAttributeSyntax(SyntaxKind kind, MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 2; - if (prefix != null) + if (namePrefix != null) { - AdjustFlagsAndWidth(prefix); - _prefix = prefix; + AdjustFlagsAndWidth(namePrefix); + _namePrefix = namePrefix; } - AdjustFlagsAndWidth(value); - _value = value; + AdjustFlagsAndWidth(name); + _name = name; } - internal MarkupLiteralAttributeValueSyntax(SyntaxKind kind, MarkupTextLiteralSyntax prefix, MarkupTextLiteralSyntax value) + internal MarkupMinimizedTagHelperAttributeSyntax(SyntaxKind kind, MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name) : base(kind) { SlotCount = 2; - if (prefix != null) + if (namePrefix != null) { - AdjustFlagsAndWidth(prefix); - _prefix = prefix; + AdjustFlagsAndWidth(namePrefix); + _namePrefix = namePrefix; } - AdjustFlagsAndWidth(value); - _value = value; + AdjustFlagsAndWidth(name); + _name = name; } - public MarkupTextLiteralSyntax Prefix { get { return _prefix; } } - public MarkupTextLiteralSyntax Value { get { return _value; } } + public MarkupTextLiteralSyntax NamePrefix { get { return _namePrefix; } } + public MarkupTextLiteralSyntax Name { get { return _name; } } internal override GreenNode GetSlot(int index) { switch (index) { - case 0: return _prefix; - case 1: return _value; + case 0: return _namePrefix; + case 1: return _name; default: return null; } } internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.MarkupLiteralAttributeValueSyntax(this, parent, position); + return new Syntax.MarkupMinimizedTagHelperAttributeSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitMarkupLiteralAttributeValue(this); + return visitor.VisitMarkupMinimizedTagHelperAttribute(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitMarkupLiteralAttributeValue(this); + visitor.VisitMarkupMinimizedTagHelperAttribute(this); } - public MarkupLiteralAttributeValueSyntax Update(MarkupTextLiteralSyntax prefix, MarkupTextLiteralSyntax value) + public MarkupMinimizedTagHelperAttributeSyntax Update(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name) { - if (prefix != Prefix || value != Value) + if (namePrefix != NamePrefix || name != Name) { - var newNode = SyntaxFactory.MarkupLiteralAttributeValue(prefix, value); + var newNode = SyntaxFactory.MarkupMinimizedTagHelperAttribute(namePrefix, name); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -1267,80 +1954,73 @@ public MarkupLiteralAttributeValueSyntax Update(MarkupTextLiteralSyntax prefix, internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new MarkupLiteralAttributeValueSyntax(Kind, _prefix, _value, diagnostics, GetAnnotations()); + return new MarkupMinimizedTagHelperAttributeSyntax(Kind, _namePrefix, _name, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new MarkupLiteralAttributeValueSyntax(Kind, _prefix, _value, GetDiagnostics(), annotations); + return new MarkupMinimizedTagHelperAttributeSyntax(Kind, _namePrefix, _name, GetDiagnostics(), annotations); } } - internal sealed partial class MarkupDynamicAttributeValueSyntax : MarkupSyntaxNode + internal sealed partial class MarkupTagHelperAttributeValueSyntax : RazorBlockSyntax { - private readonly MarkupTextLiteralSyntax _prefix; - private readonly RazorBlockSyntax _value; + private readonly GreenNode _children; - internal MarkupDynamicAttributeValueSyntax(SyntaxKind kind, MarkupTextLiteralSyntax prefix, RazorBlockSyntax value, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal MarkupTagHelperAttributeValueSyntax(SyntaxKind kind, GreenNode children, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { - SlotCount = 2; - if (prefix != null) + SlotCount = 1; + if (children != null) { - AdjustFlagsAndWidth(prefix); - _prefix = prefix; + AdjustFlagsAndWidth(children); + _children = children; } - AdjustFlagsAndWidth(value); - _value = value; } - internal MarkupDynamicAttributeValueSyntax(SyntaxKind kind, MarkupTextLiteralSyntax prefix, RazorBlockSyntax value) + internal MarkupTagHelperAttributeValueSyntax(SyntaxKind kind, GreenNode children) : base(kind) { - SlotCount = 2; - if (prefix != null) + SlotCount = 1; + if (children != null) { - AdjustFlagsAndWidth(prefix); - _prefix = prefix; + AdjustFlagsAndWidth(children); + _children = children; } - AdjustFlagsAndWidth(value); - _value = value; } - public MarkupTextLiteralSyntax Prefix { get { return _prefix; } } - public RazorBlockSyntax Value { get { return _value; } } + public override SyntaxList Children { get { return new SyntaxList(_children); } } internal override GreenNode GetSlot(int index) { switch (index) { - case 0: return _prefix; - case 1: return _value; + case 0: return _children; default: return null; } } internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.MarkupDynamicAttributeValueSyntax(this, parent, position); + return new Syntax.MarkupTagHelperAttributeValueSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitMarkupDynamicAttributeValue(this); + return visitor.VisitMarkupTagHelperAttributeValue(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitMarkupDynamicAttributeValue(this); + visitor.VisitMarkupTagHelperAttributeValue(this); } - public MarkupDynamicAttributeValueSyntax Update(MarkupTextLiteralSyntax prefix, RazorBlockSyntax value) + public MarkupTagHelperAttributeValueSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) { - if (prefix != Prefix || value != Value) + if (children != Children) { - var newNode = SyntaxFactory.MarkupDynamicAttributeValue(prefix, value); + var newNode = SyntaxFactory.MarkupTagHelperAttributeValue(children); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -1355,12 +2035,12 @@ public MarkupDynamicAttributeValueSyntax Update(MarkupTextLiteralSyntax prefix, internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new MarkupDynamicAttributeValueSyntax(Kind, _prefix, _value, diagnostics, GetAnnotations()); + return new MarkupTagHelperAttributeValueSyntax(Kind, _children, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new MarkupDynamicAttributeValueSyntax(Kind, _prefix, _value, GetDiagnostics(), annotations); + return new MarkupTagHelperAttributeValueSyntax(Kind, _children, GetDiagnostics(), annotations); } } @@ -2618,6 +3298,41 @@ public virtual TResult VisitMarkupDynamicAttributeValue(MarkupDynamicAttributeVa return DefaultVisit(node); } + public virtual TResult VisitMarkupElement(MarkupElementSyntax node) + { + return DefaultVisit(node); + } + + public virtual TResult VisitMarkupTagHelperElement(MarkupTagHelperElementSyntax node) + { + return DefaultVisit(node); + } + + public virtual TResult VisitMarkupTagHelperStartTag(MarkupTagHelperStartTagSyntax node) + { + return DefaultVisit(node); + } + + public virtual TResult VisitMarkupTagHelperEndTag(MarkupTagHelperEndTagSyntax node) + { + return DefaultVisit(node); + } + + public virtual TResult VisitMarkupTagHelperAttribute(MarkupTagHelperAttributeSyntax node) + { + return DefaultVisit(node); + } + + public virtual TResult VisitMarkupMinimizedTagHelperAttribute(MarkupMinimizedTagHelperAttributeSyntax node) + { + return DefaultVisit(node); + } + + public virtual TResult VisitMarkupTagHelperAttributeValue(MarkupTagHelperAttributeValueSyntax node) + { + return DefaultVisit(node); + } + public virtual TResult VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) { return DefaultVisit(node); @@ -2767,6 +3482,41 @@ public virtual void VisitMarkupDynamicAttributeValue(MarkupDynamicAttributeValue DefaultVisit(node); } + public virtual void VisitMarkupElement(MarkupElementSyntax node) + { + DefaultVisit(node); + } + + public virtual void VisitMarkupTagHelperElement(MarkupTagHelperElementSyntax node) + { + DefaultVisit(node); + } + + public virtual void VisitMarkupTagHelperStartTag(MarkupTagHelperStartTagSyntax node) + { + DefaultVisit(node); + } + + public virtual void VisitMarkupTagHelperEndTag(MarkupTagHelperEndTagSyntax node) + { + DefaultVisit(node); + } + + public virtual void VisitMarkupTagHelperAttribute(MarkupTagHelperAttributeSyntax node) + { + DefaultVisit(node); + } + + public virtual void VisitMarkupMinimizedTagHelperAttribute(MarkupMinimizedTagHelperAttributeSyntax node) + { + DefaultVisit(node); + } + + public virtual void VisitMarkupTagHelperAttributeValue(MarkupTagHelperAttributeValueSyntax node) + { + DefaultVisit(node); + } + public virtual void VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) { DefaultVisit(node); @@ -2943,6 +3693,59 @@ public override GreenNode VisitMarkupDynamicAttributeValue(MarkupDynamicAttribut return node.Update(prefix, value); } + public override GreenNode VisitMarkupElement(MarkupElementSyntax node) + { + var startTag = (MarkupTagBlockSyntax)Visit(node.StartTag); + var body = VisitList(node.Body); + var endTag = (MarkupTagBlockSyntax)Visit(node.EndTag); + return node.Update(startTag, body, endTag); + } + + public override GreenNode VisitMarkupTagHelperElement(MarkupTagHelperElementSyntax node) + { + var startTag = (MarkupTagHelperStartTagSyntax)Visit(node.StartTag); + var body = VisitList(node.Body); + var endTag = (MarkupTagHelperEndTagSyntax)Visit(node.EndTag); + return node.Update(startTag, body, endTag); + } + + public override GreenNode VisitMarkupTagHelperStartTag(MarkupTagHelperStartTagSyntax node) + { + var children = VisitList(node.Children); + return node.Update(children); + } + + public override GreenNode VisitMarkupTagHelperEndTag(MarkupTagHelperEndTagSyntax node) + { + var children = VisitList(node.Children); + return node.Update(children); + } + + public override GreenNode VisitMarkupTagHelperAttribute(MarkupTagHelperAttributeSyntax node) + { + var namePrefix = (MarkupTextLiteralSyntax)Visit(node.NamePrefix); + var name = (MarkupTextLiteralSyntax)Visit(node.Name); + var nameSuffix = (MarkupTextLiteralSyntax)Visit(node.NameSuffix); + var equalsToken = (SyntaxToken)Visit(node.EqualsToken); + var valuePrefix = (MarkupTextLiteralSyntax)Visit(node.ValuePrefix); + var value = (MarkupTagHelperAttributeValueSyntax)Visit(node.Value); + var valueSuffix = (MarkupTextLiteralSyntax)Visit(node.ValueSuffix); + return node.Update(namePrefix, name, nameSuffix, equalsToken, valuePrefix, value, valueSuffix); + } + + public override GreenNode VisitMarkupMinimizedTagHelperAttribute(MarkupMinimizedTagHelperAttributeSyntax node) + { + var namePrefix = (MarkupTextLiteralSyntax)Visit(node.NamePrefix); + var name = (MarkupTextLiteralSyntax)Visit(node.Name); + return node.Update(namePrefix, name); + } + + public override GreenNode VisitMarkupTagHelperAttributeValue(MarkupTagHelperAttributeValueSyntax node) + { + var children = VisitList(node.Children); + return node.Update(children); + } + public override GreenNode VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) { var children = VisitList(node.Children); @@ -3188,17 +3991,12 @@ public static MarkupAttributeBlockSyntax MarkupAttributeBlock(MarkupTextLiteralS default: throw new ArgumentException("equalsToken"); } - if (value == null) - throw new ArgumentNullException(nameof(value)); return new MarkupAttributeBlockSyntax(SyntaxKind.MarkupAttributeBlock, namePrefix, name, nameSuffix, equalsToken, valuePrefix, value, valueSuffix); } public static MarkupLiteralAttributeValueSyntax MarkupLiteralAttributeValue(MarkupTextLiteralSyntax prefix, MarkupTextLiteralSyntax value) { - if (value == null) - throw new ArgumentNullException(nameof(value)); - var result = new MarkupLiteralAttributeValueSyntax(SyntaxKind.MarkupLiteralAttributeValue, prefix, value); return result; @@ -3214,6 +4012,73 @@ public static MarkupDynamicAttributeValueSyntax MarkupDynamicAttributeValue(Mark return result; } + public static MarkupElementSyntax MarkupElement(MarkupTagBlockSyntax startTag, Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList body, MarkupTagBlockSyntax endTag) + { + var result = new MarkupElementSyntax(SyntaxKind.MarkupElement, startTag, body.Node, endTag); + + return result; + } + + public static MarkupTagHelperElementSyntax MarkupTagHelperElement(MarkupTagHelperStartTagSyntax startTag, Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList body, MarkupTagHelperEndTagSyntax endTag) + { + if (startTag == null) + throw new ArgumentNullException(nameof(startTag)); + + var result = new MarkupTagHelperElementSyntax(SyntaxKind.MarkupTagHelperElement, startTag, body.Node, endTag); + + return result; + } + + public static MarkupTagHelperStartTagSyntax MarkupTagHelperStartTag(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) + { + var result = new MarkupTagHelperStartTagSyntax(SyntaxKind.MarkupTagHelperStartTag, children.Node); + + return result; + } + + public static MarkupTagHelperEndTagSyntax MarkupTagHelperEndTag(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) + { + var result = new MarkupTagHelperEndTagSyntax(SyntaxKind.MarkupTagHelperEndTag, children.Node); + + return result; + } + + public static MarkupTagHelperAttributeSyntax MarkupTagHelperAttribute(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, MarkupTextLiteralSyntax valuePrefix, MarkupTagHelperAttributeValueSyntax value, MarkupTextLiteralSyntax valueSuffix) + { + if (name == null) + throw new ArgumentNullException(nameof(name)); + if (equalsToken == null) + throw new ArgumentNullException(nameof(equalsToken)); + switch (equalsToken.Kind) + { + case SyntaxKind.Equals: + break; + default: + throw new ArgumentException("equalsToken"); + } + if (value == null) + throw new ArgumentNullException(nameof(value)); + + return new MarkupTagHelperAttributeSyntax(SyntaxKind.MarkupTagHelperAttribute, namePrefix, name, nameSuffix, equalsToken, valuePrefix, value, valueSuffix); + } + + public static MarkupMinimizedTagHelperAttributeSyntax MarkupMinimizedTagHelperAttribute(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name) + { + if (name == null) + throw new ArgumentNullException(nameof(name)); + + var result = new MarkupMinimizedTagHelperAttributeSyntax(SyntaxKind.MarkupMinimizedTagHelperAttribute, namePrefix, name); + + return result; + } + + public static MarkupTagHelperAttributeValueSyntax MarkupTagHelperAttributeValue(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) + { + var result = new MarkupTagHelperAttributeValueSyntax(SyntaxKind.MarkupTagHelperAttributeValue, children.Node); + + return result; + } + public static CSharpCodeBlockSyntax CSharpCodeBlock(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) { var result = new CSharpCodeBlockSyntax(SyntaxKind.CSharpCodeBlock, children.Node); @@ -3380,6 +4245,13 @@ internal static IEnumerable GetNodeTypes() typeof(MarkupAttributeBlockSyntax), typeof(MarkupLiteralAttributeValueSyntax), typeof(MarkupDynamicAttributeValueSyntax), + typeof(MarkupElementSyntax), + typeof(MarkupTagHelperElementSyntax), + typeof(MarkupTagHelperStartTagSyntax), + typeof(MarkupTagHelperEndTagSyntax), + typeof(MarkupTagHelperAttributeSyntax), + typeof(MarkupMinimizedTagHelperAttributeSyntax), + typeof(MarkupTagHelperAttributeValueSyntax), typeof(CSharpCodeBlockSyntax), typeof(CSharpTransitionSyntax), typeof(CSharpStatementLiteralSyntax), diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Main.Generated.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Main.Generated.cs index 8ae0fbb8c..6fe099007 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Main.Generated.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Main.Generated.cs @@ -101,6 +101,48 @@ public virtual TResult VisitMarkupDynamicAttributeValue(MarkupDynamicAttributeVa return DefaultVisit(node); } + /// Called when the visitor visits a MarkupElementSyntax node. + public virtual TResult VisitMarkupElement(MarkupElementSyntax node) + { + return DefaultVisit(node); + } + + /// Called when the visitor visits a MarkupTagHelperElementSyntax node. + public virtual TResult VisitMarkupTagHelperElement(MarkupTagHelperElementSyntax node) + { + return DefaultVisit(node); + } + + /// Called when the visitor visits a MarkupTagHelperStartTagSyntax node. + public virtual TResult VisitMarkupTagHelperStartTag(MarkupTagHelperStartTagSyntax node) + { + return DefaultVisit(node); + } + + /// Called when the visitor visits a MarkupTagHelperEndTagSyntax node. + public virtual TResult VisitMarkupTagHelperEndTag(MarkupTagHelperEndTagSyntax node) + { + return DefaultVisit(node); + } + + /// Called when the visitor visits a MarkupTagHelperAttributeSyntax node. + public virtual TResult VisitMarkupTagHelperAttribute(MarkupTagHelperAttributeSyntax node) + { + return DefaultVisit(node); + } + + /// Called when the visitor visits a MarkupMinimizedTagHelperAttributeSyntax node. + public virtual TResult VisitMarkupMinimizedTagHelperAttribute(MarkupMinimizedTagHelperAttributeSyntax node) + { + return DefaultVisit(node); + } + + /// Called when the visitor visits a MarkupTagHelperAttributeValueSyntax node. + public virtual TResult VisitMarkupTagHelperAttributeValue(MarkupTagHelperAttributeValueSyntax node) + { + return DefaultVisit(node); + } + /// Called when the visitor visits a CSharpCodeBlockSyntax node. public virtual TResult VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) { @@ -278,6 +320,48 @@ public virtual void VisitMarkupDynamicAttributeValue(MarkupDynamicAttributeValue DefaultVisit(node); } + /// Called when the visitor visits a MarkupElementSyntax node. + public virtual void VisitMarkupElement(MarkupElementSyntax node) + { + DefaultVisit(node); + } + + /// Called when the visitor visits a MarkupTagHelperElementSyntax node. + public virtual void VisitMarkupTagHelperElement(MarkupTagHelperElementSyntax node) + { + DefaultVisit(node); + } + + /// Called when the visitor visits a MarkupTagHelperStartTagSyntax node. + public virtual void VisitMarkupTagHelperStartTag(MarkupTagHelperStartTagSyntax node) + { + DefaultVisit(node); + } + + /// Called when the visitor visits a MarkupTagHelperEndTagSyntax node. + public virtual void VisitMarkupTagHelperEndTag(MarkupTagHelperEndTagSyntax node) + { + DefaultVisit(node); + } + + /// Called when the visitor visits a MarkupTagHelperAttributeSyntax node. + public virtual void VisitMarkupTagHelperAttribute(MarkupTagHelperAttributeSyntax node) + { + DefaultVisit(node); + } + + /// Called when the visitor visits a MarkupMinimizedTagHelperAttributeSyntax node. + public virtual void VisitMarkupMinimizedTagHelperAttribute(MarkupMinimizedTagHelperAttributeSyntax node) + { + DefaultVisit(node); + } + + /// Called when the visitor visits a MarkupTagHelperAttributeValueSyntax node. + public virtual void VisitMarkupTagHelperAttributeValue(MarkupTagHelperAttributeValueSyntax node) + { + DefaultVisit(node); + } + /// Called when the visitor visits a CSharpCodeBlockSyntax node. public virtual void VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) { @@ -468,6 +552,59 @@ public override SyntaxNode VisitMarkupDynamicAttributeValue(MarkupDynamicAttribu return node.Update(prefix, value); } + public override SyntaxNode VisitMarkupElement(MarkupElementSyntax node) + { + var startTag = (MarkupTagBlockSyntax)Visit(node.StartTag); + var body = VisitList(node.Body); + var endTag = (MarkupTagBlockSyntax)Visit(node.EndTag); + return node.Update(startTag, body, endTag); + } + + public override SyntaxNode VisitMarkupTagHelperElement(MarkupTagHelperElementSyntax node) + { + var startTag = (MarkupTagHelperStartTagSyntax)Visit(node.StartTag); + var body = VisitList(node.Body); + var endTag = (MarkupTagHelperEndTagSyntax)Visit(node.EndTag); + return node.Update(startTag, body, endTag); + } + + public override SyntaxNode VisitMarkupTagHelperStartTag(MarkupTagHelperStartTagSyntax node) + { + var children = VisitList(node.Children); + return node.Update(children); + } + + public override SyntaxNode VisitMarkupTagHelperEndTag(MarkupTagHelperEndTagSyntax node) + { + var children = VisitList(node.Children); + return node.Update(children); + } + + public override SyntaxNode VisitMarkupTagHelperAttribute(MarkupTagHelperAttributeSyntax node) + { + var namePrefix = (MarkupTextLiteralSyntax)Visit(node.NamePrefix); + var name = (MarkupTextLiteralSyntax)Visit(node.Name); + var nameSuffix = (MarkupTextLiteralSyntax)Visit(node.NameSuffix); + var equalsToken = (SyntaxToken)VisitToken(node.EqualsToken); + var valuePrefix = (MarkupTextLiteralSyntax)Visit(node.ValuePrefix); + var value = (MarkupTagHelperAttributeValueSyntax)Visit(node.Value); + var valueSuffix = (MarkupTextLiteralSyntax)Visit(node.ValueSuffix); + return node.Update(namePrefix, name, nameSuffix, equalsToken, valuePrefix, value, valueSuffix); + } + + public override SyntaxNode VisitMarkupMinimizedTagHelperAttribute(MarkupMinimizedTagHelperAttributeSyntax node) + { + var namePrefix = (MarkupTextLiteralSyntax)Visit(node.NamePrefix); + var name = (MarkupTextLiteralSyntax)Visit(node.Name); + return node.Update(namePrefix, name); + } + + public override SyntaxNode VisitMarkupTagHelperAttributeValue(MarkupTagHelperAttributeValueSyntax node) + { + var children = VisitList(node.Children); + return node.Update(children); + } + public override SyntaxNode VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) { var children = VisitList(node.Children); @@ -754,35 +891,31 @@ public static MarkupAttributeBlockSyntax MarkupAttributeBlock(MarkupTextLiteralS default: throw new ArgumentException("equalsToken"); } - if (value == null) - throw new ArgumentNullException(nameof(value)); return (MarkupAttributeBlockSyntax)InternalSyntax.SyntaxFactory.MarkupAttributeBlock(namePrefix == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)namePrefix.Green, name == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)name.Green, nameSuffix == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)nameSuffix.Green, (Syntax.InternalSyntax.SyntaxToken)equalsToken.Green, valuePrefix == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)valuePrefix.Green, value == null ? null : (InternalSyntax.RazorBlockSyntax)value.Green, valueSuffix == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)valueSuffix.Green).CreateRed(); } /// Creates a new MarkupAttributeBlockSyntax instance. - public static MarkupAttributeBlockSyntax MarkupAttributeBlock(MarkupTextLiteralSyntax _namePrefix, MarkupTextLiteralSyntax _name, MarkupTextLiteralSyntax _nameSuffix, MarkupTextLiteralSyntax _valuePrefix, RazorBlockSyntax _value, MarkupTextLiteralSyntax _valueSuffix) + public static MarkupAttributeBlockSyntax MarkupAttributeBlock(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, MarkupTextLiteralSyntax valuePrefix, RazorBlockSyntax value, MarkupTextLiteralSyntax valueSuffix) { - return SyntaxFactory.MarkupAttributeBlock(_namePrefix, _name, _nameSuffix, SyntaxFactory.Token(SyntaxKind.Equals), _valuePrefix, _value, _valueSuffix); + return SyntaxFactory.MarkupAttributeBlock(namePrefix, name, nameSuffix, SyntaxFactory.Token(SyntaxKind.Equals), valuePrefix, value, valueSuffix); } /// Creates a new MarkupAttributeBlockSyntax instance. - public static MarkupAttributeBlockSyntax MarkupAttributeBlock(RazorBlockSyntax value) + public static MarkupAttributeBlockSyntax MarkupAttributeBlock() { - return SyntaxFactory.MarkupAttributeBlock(default(MarkupTextLiteralSyntax), SyntaxFactory.MarkupTextLiteral(), default(MarkupTextLiteralSyntax), SyntaxFactory.Token(SyntaxKind.Equals), default(MarkupTextLiteralSyntax), value, default(MarkupTextLiteralSyntax)); + return SyntaxFactory.MarkupAttributeBlock(default(MarkupTextLiteralSyntax), SyntaxFactory.MarkupTextLiteral(), default(MarkupTextLiteralSyntax), SyntaxFactory.Token(SyntaxKind.Equals), default(MarkupTextLiteralSyntax), default(RazorBlockSyntax), default(MarkupTextLiteralSyntax)); } /// Creates a new MarkupLiteralAttributeValueSyntax instance. public static MarkupLiteralAttributeValueSyntax MarkupLiteralAttributeValue(MarkupTextLiteralSyntax prefix, MarkupTextLiteralSyntax value) { - if (value == null) - throw new ArgumentNullException(nameof(value)); return (MarkupLiteralAttributeValueSyntax)InternalSyntax.SyntaxFactory.MarkupLiteralAttributeValue(prefix == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)prefix.Green, value == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)value.Green).CreateRed(); } /// Creates a new MarkupLiteralAttributeValueSyntax instance. public static MarkupLiteralAttributeValueSyntax MarkupLiteralAttributeValue() { - return SyntaxFactory.MarkupLiteralAttributeValue(default(MarkupTextLiteralSyntax), SyntaxFactory.MarkupTextLiteral()); + return SyntaxFactory.MarkupLiteralAttributeValue(default(MarkupTextLiteralSyntax), default(MarkupTextLiteralSyntax)); } /// Creates a new MarkupDynamicAttributeValueSyntax instance. @@ -799,6 +932,111 @@ public static MarkupDynamicAttributeValueSyntax MarkupDynamicAttributeValue(Razo return SyntaxFactory.MarkupDynamicAttributeValue(default(MarkupTextLiteralSyntax), value); } + /// Creates a new MarkupElementSyntax instance. + public static MarkupElementSyntax MarkupElement(MarkupTagBlockSyntax startTag, SyntaxList body, MarkupTagBlockSyntax endTag) + { + return (MarkupElementSyntax)InternalSyntax.SyntaxFactory.MarkupElement(startTag == null ? null : (InternalSyntax.MarkupTagBlockSyntax)startTag.Green, body.Node.ToGreenList(), endTag == null ? null : (InternalSyntax.MarkupTagBlockSyntax)endTag.Green).CreateRed(); + } + + /// Creates a new MarkupElementSyntax instance. + public static MarkupElementSyntax MarkupElement(SyntaxList body = default(SyntaxList)) + { + return SyntaxFactory.MarkupElement(default(MarkupTagBlockSyntax), body, default(MarkupTagBlockSyntax)); + } + + /// Creates a new MarkupTagHelperElementSyntax instance. + public static MarkupTagHelperElementSyntax MarkupTagHelperElement(MarkupTagHelperStartTagSyntax startTag, SyntaxList body, MarkupTagHelperEndTagSyntax endTag) + { + if (startTag == null) + throw new ArgumentNullException(nameof(startTag)); + return (MarkupTagHelperElementSyntax)InternalSyntax.SyntaxFactory.MarkupTagHelperElement(startTag == null ? null : (InternalSyntax.MarkupTagHelperStartTagSyntax)startTag.Green, body.Node.ToGreenList(), endTag == null ? null : (InternalSyntax.MarkupTagHelperEndTagSyntax)endTag.Green).CreateRed(); + } + + /// Creates a new MarkupTagHelperElementSyntax instance. + public static MarkupTagHelperElementSyntax MarkupTagHelperElement(SyntaxList body = default(SyntaxList)) + { + return SyntaxFactory.MarkupTagHelperElement(SyntaxFactory.MarkupTagHelperStartTag(), body, default(MarkupTagHelperEndTagSyntax)); + } + + /// Creates a new MarkupTagHelperStartTagSyntax instance. + public static MarkupTagHelperStartTagSyntax MarkupTagHelperStartTag(SyntaxList children) + { + return (MarkupTagHelperStartTagSyntax)InternalSyntax.SyntaxFactory.MarkupTagHelperStartTag(children.Node.ToGreenList()).CreateRed(); + } + + /// Creates a new MarkupTagHelperStartTagSyntax instance. + public static MarkupTagHelperStartTagSyntax MarkupTagHelperStartTag() + { + return SyntaxFactory.MarkupTagHelperStartTag(default(SyntaxList)); + } + + /// Creates a new MarkupTagHelperEndTagSyntax instance. + public static MarkupTagHelperEndTagSyntax MarkupTagHelperEndTag(SyntaxList children) + { + return (MarkupTagHelperEndTagSyntax)InternalSyntax.SyntaxFactory.MarkupTagHelperEndTag(children.Node.ToGreenList()).CreateRed(); + } + + /// Creates a new MarkupTagHelperEndTagSyntax instance. + public static MarkupTagHelperEndTagSyntax MarkupTagHelperEndTag() + { + return SyntaxFactory.MarkupTagHelperEndTag(default(SyntaxList)); + } + + /// Creates a new MarkupTagHelperAttributeSyntax instance. + public static MarkupTagHelperAttributeSyntax MarkupTagHelperAttribute(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, MarkupTextLiteralSyntax valuePrefix, MarkupTagHelperAttributeValueSyntax value, MarkupTextLiteralSyntax valueSuffix) + { + if (name == null) + throw new ArgumentNullException(nameof(name)); + switch (equalsToken.Kind) + { + case SyntaxKind.Equals: + break; + default: + throw new ArgumentException("equalsToken"); + } + if (value == null) + throw new ArgumentNullException(nameof(value)); + return (MarkupTagHelperAttributeSyntax)InternalSyntax.SyntaxFactory.MarkupTagHelperAttribute(namePrefix == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)namePrefix.Green, name == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)name.Green, nameSuffix == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)nameSuffix.Green, (Syntax.InternalSyntax.SyntaxToken)equalsToken.Green, valuePrefix == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)valuePrefix.Green, value == null ? null : (InternalSyntax.MarkupTagHelperAttributeValueSyntax)value.Green, valueSuffix == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)valueSuffix.Green).CreateRed(); + } + + /// Creates a new MarkupTagHelperAttributeSyntax instance. + public static MarkupTagHelperAttributeSyntax MarkupTagHelperAttribute(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, MarkupTextLiteralSyntax valuePrefix, MarkupTagHelperAttributeValueSyntax value, MarkupTextLiteralSyntax valueSuffix) + { + return SyntaxFactory.MarkupTagHelperAttribute(namePrefix, name, nameSuffix, SyntaxFactory.Token(SyntaxKind.Equals), valuePrefix, value, valueSuffix); + } + + /// Creates a new MarkupTagHelperAttributeSyntax instance. + public static MarkupTagHelperAttributeSyntax MarkupTagHelperAttribute() + { + return SyntaxFactory.MarkupTagHelperAttribute(default(MarkupTextLiteralSyntax), SyntaxFactory.MarkupTextLiteral(), default(MarkupTextLiteralSyntax), SyntaxFactory.Token(SyntaxKind.Equals), default(MarkupTextLiteralSyntax), SyntaxFactory.MarkupTagHelperAttributeValue(), default(MarkupTextLiteralSyntax)); + } + + /// Creates a new MarkupMinimizedTagHelperAttributeSyntax instance. + public static MarkupMinimizedTagHelperAttributeSyntax MarkupMinimizedTagHelperAttribute(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name) + { + if (name == null) + throw new ArgumentNullException(nameof(name)); + return (MarkupMinimizedTagHelperAttributeSyntax)InternalSyntax.SyntaxFactory.MarkupMinimizedTagHelperAttribute(namePrefix == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)namePrefix.Green, name == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)name.Green).CreateRed(); + } + + /// Creates a new MarkupMinimizedTagHelperAttributeSyntax instance. + public static MarkupMinimizedTagHelperAttributeSyntax MarkupMinimizedTagHelperAttribute() + { + return SyntaxFactory.MarkupMinimizedTagHelperAttribute(default(MarkupTextLiteralSyntax), SyntaxFactory.MarkupTextLiteral()); + } + + /// Creates a new MarkupTagHelperAttributeValueSyntax instance. + public static MarkupTagHelperAttributeValueSyntax MarkupTagHelperAttributeValue(SyntaxList children) + { + return (MarkupTagHelperAttributeValueSyntax)InternalSyntax.SyntaxFactory.MarkupTagHelperAttributeValue(children.Node.ToGreenList()).CreateRed(); + } + + /// Creates a new MarkupTagHelperAttributeValueSyntax instance. + public static MarkupTagHelperAttributeValueSyntax MarkupTagHelperAttributeValue() + { + return SyntaxFactory.MarkupTagHelperAttributeValue(default(SyntaxList)); + } + /// Creates a new CSharpCodeBlockSyntax instance. public static CSharpCodeBlockSyntax CSharpCodeBlock(SyntaxList children) { diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Syntax.Generated.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Syntax.Generated.cs index 0bea811b2..8196bdb0e 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Syntax.Generated.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Syntax.Generated.cs @@ -9,14 +9,6 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax { - internal abstract partial class RazorSyntaxNode : SyntaxNode - { - internal RazorSyntaxNode(GreenNode green, SyntaxNode parent, int position) - : base(green, parent, position) - { - } - } - internal abstract partial class RazorBlockSyntax : RazorSyntaxNode { internal RazorBlockSyntax(GreenNode green, SyntaxNode parent, int position) @@ -1228,7 +1220,8 @@ public MarkupLiteralAttributeValueSyntax AddPrefixLiteralTokens(params SyntaxTok public MarkupLiteralAttributeValueSyntax AddValueLiteralTokens(params SyntaxToken[] items) { - return this.WithValue(this.Value.WithLiteralTokens(this.Value.LiteralTokens.AddRange(items))); + var _value = this.Value ?? SyntaxFactory.MarkupTextLiteral(); + return this.WithValue(_value.WithLiteralTokens(_value.LiteralTokens.AddRange(items))); } } @@ -1318,6 +1311,729 @@ public MarkupDynamicAttributeValueSyntax AddPrefixLiteralTokens(params SyntaxTok } } + internal sealed partial class MarkupElementSyntax : MarkupSyntaxNode + { + private MarkupTagBlockSyntax _startTag; + private SyntaxNode _body; + private MarkupTagBlockSyntax _endTag; + + internal MarkupElementSyntax(GreenNode green, SyntaxNode parent, int position) + : base(green, parent, position) + { + } + + public MarkupTagBlockSyntax StartTag + { + get + { + return GetRedAtZero(ref _startTag); + } + } + + public SyntaxList Body + { + get + { + return new SyntaxList(GetRed(ref _body, 1)); + } + } + + public MarkupTagBlockSyntax EndTag + { + get + { + return GetRed(ref _endTag, 2); + } + } + + internal override SyntaxNode GetNodeSlot(int index) + { + switch (index) + { + case 0: return GetRedAtZero(ref _startTag); + case 1: return GetRed(ref _body, 1); + case 2: return GetRed(ref _endTag, 2); + default: return null; + } + } + internal override SyntaxNode GetCachedSlot(int index) + { + switch (index) + { + case 0: return _startTag; + case 1: return _body; + case 2: return _endTag; + default: return null; + } + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitMarkupElement(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitMarkupElement(this); + } + + public MarkupElementSyntax Update(MarkupTagBlockSyntax startTag, SyntaxList body, MarkupTagBlockSyntax endTag) + { + if (startTag != StartTag || body != Body || endTag != EndTag) + { + var newNode = SyntaxFactory.MarkupElement(startTag, body, endTag); + var annotations = GetAnnotations(); + if (annotations != null && annotations.Length > 0) + return newNode.WithAnnotations(annotations); + return newNode; + } + + return this; + } + + public MarkupElementSyntax WithStartTag(MarkupTagBlockSyntax startTag) + { + return Update(startTag, Body, EndTag); + } + + public MarkupElementSyntax WithBody(SyntaxList body) + { + return Update(StartTag, body, EndTag); + } + + public MarkupElementSyntax WithEndTag(MarkupTagBlockSyntax endTag) + { + return Update(StartTag, Body, endTag); + } + + public MarkupElementSyntax AddStartTagChildren(params RazorSyntaxNode[] items) + { + var _startTag = this.StartTag ?? SyntaxFactory.MarkupTagBlock(); + return this.WithStartTag(_startTag.WithChildren(_startTag.Children.AddRange(items))); + } + + public MarkupElementSyntax AddBody(params RazorSyntaxNode[] items) + { + return WithBody(this.Body.AddRange(items)); + } + + public MarkupElementSyntax AddEndTagChildren(params RazorSyntaxNode[] items) + { + var _endTag = this.EndTag ?? SyntaxFactory.MarkupTagBlock(); + return this.WithEndTag(_endTag.WithChildren(_endTag.Children.AddRange(items))); + } + } + + internal sealed partial class MarkupTagHelperElementSyntax : MarkupSyntaxNode + { + private MarkupTagHelperStartTagSyntax _startTag; + private SyntaxNode _body; + private MarkupTagHelperEndTagSyntax _endTag; + + internal MarkupTagHelperElementSyntax(GreenNode green, SyntaxNode parent, int position) + : base(green, parent, position) + { + } + + public MarkupTagHelperStartTagSyntax StartTag + { + get + { + return GetRedAtZero(ref _startTag); + } + } + + public SyntaxList Body + { + get + { + return new SyntaxList(GetRed(ref _body, 1)); + } + } + + public MarkupTagHelperEndTagSyntax EndTag + { + get + { + return GetRed(ref _endTag, 2); + } + } + + internal override SyntaxNode GetNodeSlot(int index) + { + switch (index) + { + case 0: return GetRedAtZero(ref _startTag); + case 1: return GetRed(ref _body, 1); + case 2: return GetRed(ref _endTag, 2); + default: return null; + } + } + internal override SyntaxNode GetCachedSlot(int index) + { + switch (index) + { + case 0: return _startTag; + case 1: return _body; + case 2: return _endTag; + default: return null; + } + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitMarkupTagHelperElement(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitMarkupTagHelperElement(this); + } + + public MarkupTagHelperElementSyntax Update(MarkupTagHelperStartTagSyntax startTag, SyntaxList body, MarkupTagHelperEndTagSyntax endTag) + { + if (startTag != StartTag || body != Body || endTag != EndTag) + { + var newNode = SyntaxFactory.MarkupTagHelperElement(startTag, body, endTag); + var annotations = GetAnnotations(); + if (annotations != null && annotations.Length > 0) + return newNode.WithAnnotations(annotations); + return newNode; + } + + return this; + } + + public MarkupTagHelperElementSyntax WithStartTag(MarkupTagHelperStartTagSyntax startTag) + { + return Update(startTag, Body, EndTag); + } + + public MarkupTagHelperElementSyntax WithBody(SyntaxList body) + { + return Update(StartTag, body, EndTag); + } + + public MarkupTagHelperElementSyntax WithEndTag(MarkupTagHelperEndTagSyntax endTag) + { + return Update(StartTag, Body, endTag); + } + + public MarkupTagHelperElementSyntax AddStartTagChildren(params RazorSyntaxNode[] items) + { + return this.WithStartTag(this.StartTag.WithChildren(this.StartTag.Children.AddRange(items))); + } + + public MarkupTagHelperElementSyntax AddBody(params RazorSyntaxNode[] items) + { + return WithBody(this.Body.AddRange(items)); + } + + public MarkupTagHelperElementSyntax AddEndTagChildren(params RazorSyntaxNode[] items) + { + var _endTag = this.EndTag ?? SyntaxFactory.MarkupTagHelperEndTag(); + return this.WithEndTag(_endTag.WithChildren(_endTag.Children.AddRange(items))); + } + } + + internal sealed partial class MarkupTagHelperStartTagSyntax : RazorBlockSyntax + { + private SyntaxNode _children; + + internal MarkupTagHelperStartTagSyntax(GreenNode green, SyntaxNode parent, int position) + : base(green, parent, position) + { + } + + public override SyntaxList Children + { + get + { + return new SyntaxList(GetRed(ref _children, 0)); + } + } + + internal override SyntaxNode GetNodeSlot(int index) + { + switch (index) + { + case 0: return GetRedAtZero(ref _children); + default: return null; + } + } + internal override SyntaxNode GetCachedSlot(int index) + { + switch (index) + { + case 0: return _children; + default: return null; + } + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitMarkupTagHelperStartTag(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitMarkupTagHelperStartTag(this); + } + + public MarkupTagHelperStartTagSyntax Update(SyntaxList children) + { + if (children != Children) + { + var newNode = SyntaxFactory.MarkupTagHelperStartTag(children); + var annotations = GetAnnotations(); + if (annotations != null && annotations.Length > 0) + return newNode.WithAnnotations(annotations); + return newNode; + } + + return this; + } + + internal override RazorBlockSyntax WithChildrenCore(SyntaxList children) => WithChildren(children); + public new MarkupTagHelperStartTagSyntax WithChildren(SyntaxList children) + { + return Update(children); + } + internal override RazorBlockSyntax AddChildrenCore(params RazorSyntaxNode[] items) => AddChildren(items); + + public new MarkupTagHelperStartTagSyntax AddChildren(params RazorSyntaxNode[] items) + { + return WithChildren(this.Children.AddRange(items)); + } + } + + internal sealed partial class MarkupTagHelperEndTagSyntax : RazorBlockSyntax + { + private SyntaxNode _children; + + internal MarkupTagHelperEndTagSyntax(GreenNode green, SyntaxNode parent, int position) + : base(green, parent, position) + { + } + + public override SyntaxList Children + { + get + { + return new SyntaxList(GetRed(ref _children, 0)); + } + } + + internal override SyntaxNode GetNodeSlot(int index) + { + switch (index) + { + case 0: return GetRedAtZero(ref _children); + default: return null; + } + } + internal override SyntaxNode GetCachedSlot(int index) + { + switch (index) + { + case 0: return _children; + default: return null; + } + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitMarkupTagHelperEndTag(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitMarkupTagHelperEndTag(this); + } + + public MarkupTagHelperEndTagSyntax Update(SyntaxList children) + { + if (children != Children) + { + var newNode = SyntaxFactory.MarkupTagHelperEndTag(children); + var annotations = GetAnnotations(); + if (annotations != null && annotations.Length > 0) + return newNode.WithAnnotations(annotations); + return newNode; + } + + return this; + } + + internal override RazorBlockSyntax WithChildrenCore(SyntaxList children) => WithChildren(children); + public new MarkupTagHelperEndTagSyntax WithChildren(SyntaxList children) + { + return Update(children); + } + internal override RazorBlockSyntax AddChildrenCore(params RazorSyntaxNode[] items) => AddChildren(items); + + public new MarkupTagHelperEndTagSyntax AddChildren(params RazorSyntaxNode[] items) + { + return WithChildren(this.Children.AddRange(items)); + } + } + + internal sealed partial class MarkupTagHelperAttributeSyntax : MarkupSyntaxNode + { + private MarkupTextLiteralSyntax _namePrefix; + private MarkupTextLiteralSyntax _name; + private MarkupTextLiteralSyntax _nameSuffix; + private SyntaxToken _equalsToken; + private MarkupTextLiteralSyntax _valuePrefix; + private MarkupTagHelperAttributeValueSyntax _value; + private MarkupTextLiteralSyntax _valueSuffix; + + internal MarkupTagHelperAttributeSyntax(GreenNode green, SyntaxNode parent, int position) + : base(green, parent, position) + { + } + + public MarkupTextLiteralSyntax NamePrefix + { + get + { + return GetRedAtZero(ref _namePrefix); + } + } + + public MarkupTextLiteralSyntax Name + { + get + { + return GetRed(ref _name, 1); + } + } + + public MarkupTextLiteralSyntax NameSuffix + { + get + { + return GetRed(ref _nameSuffix, 2); + } + } + + public SyntaxToken EqualsToken + { + get + { + return GetRed(ref _equalsToken, 3); + } + } + + public MarkupTextLiteralSyntax ValuePrefix + { + get + { + return GetRed(ref _valuePrefix, 4); + } + } + + public MarkupTagHelperAttributeValueSyntax Value + { + get + { + return GetRed(ref _value, 5); + } + } + + public MarkupTextLiteralSyntax ValueSuffix + { + get + { + return GetRed(ref _valueSuffix, 6); + } + } + + internal override SyntaxNode GetNodeSlot(int index) + { + switch (index) + { + case 0: return GetRedAtZero(ref _namePrefix); + case 1: return GetRed(ref _name, 1); + case 2: return GetRed(ref _nameSuffix, 2); + case 3: return GetRed(ref _equalsToken, 3); + case 4: return GetRed(ref _valuePrefix, 4); + case 5: return GetRed(ref _value, 5); + case 6: return GetRed(ref _valueSuffix, 6); + default: return null; + } + } + internal override SyntaxNode GetCachedSlot(int index) + { + switch (index) + { + case 0: return _namePrefix; + case 1: return _name; + case 2: return _nameSuffix; + case 3: return _equalsToken; + case 4: return _valuePrefix; + case 5: return _value; + case 6: return _valueSuffix; + default: return null; + } + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitMarkupTagHelperAttribute(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitMarkupTagHelperAttribute(this); + } + + public MarkupTagHelperAttributeSyntax Update(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, MarkupTextLiteralSyntax valuePrefix, MarkupTagHelperAttributeValueSyntax value, MarkupTextLiteralSyntax valueSuffix) + { + if (namePrefix != NamePrefix || name != Name || nameSuffix != NameSuffix || equalsToken != EqualsToken || valuePrefix != ValuePrefix || value != Value || valueSuffix != ValueSuffix) + { + var newNode = SyntaxFactory.MarkupTagHelperAttribute(namePrefix, name, nameSuffix, equalsToken, valuePrefix, value, valueSuffix); + var annotations = GetAnnotations(); + if (annotations != null && annotations.Length > 0) + return newNode.WithAnnotations(annotations); + return newNode; + } + + return this; + } + + public MarkupTagHelperAttributeSyntax WithNamePrefix(MarkupTextLiteralSyntax namePrefix) + { + return Update(namePrefix, Name, NameSuffix, EqualsToken, ValuePrefix, Value, ValueSuffix); + } + + public MarkupTagHelperAttributeSyntax WithName(MarkupTextLiteralSyntax name) + { + return Update(NamePrefix, name, NameSuffix, EqualsToken, ValuePrefix, Value, ValueSuffix); + } + + public MarkupTagHelperAttributeSyntax WithNameSuffix(MarkupTextLiteralSyntax nameSuffix) + { + return Update(NamePrefix, Name, nameSuffix, EqualsToken, ValuePrefix, Value, ValueSuffix); + } + + public MarkupTagHelperAttributeSyntax WithEqualsToken(SyntaxToken equalsToken) + { + return Update(NamePrefix, Name, NameSuffix, equalsToken, ValuePrefix, Value, ValueSuffix); + } + + public MarkupTagHelperAttributeSyntax WithValuePrefix(MarkupTextLiteralSyntax valuePrefix) + { + return Update(NamePrefix, Name, NameSuffix, EqualsToken, valuePrefix, Value, ValueSuffix); + } + + public MarkupTagHelperAttributeSyntax WithValue(MarkupTagHelperAttributeValueSyntax value) + { + return Update(NamePrefix, Name, NameSuffix, EqualsToken, ValuePrefix, value, ValueSuffix); + } + + public MarkupTagHelperAttributeSyntax WithValueSuffix(MarkupTextLiteralSyntax valueSuffix) + { + return Update(NamePrefix, Name, NameSuffix, EqualsToken, ValuePrefix, Value, valueSuffix); + } + + public MarkupTagHelperAttributeSyntax AddNamePrefixLiteralTokens(params SyntaxToken[] items) + { + var _namePrefix = this.NamePrefix ?? SyntaxFactory.MarkupTextLiteral(); + return this.WithNamePrefix(_namePrefix.WithLiteralTokens(_namePrefix.LiteralTokens.AddRange(items))); + } + + public MarkupTagHelperAttributeSyntax AddNameLiteralTokens(params SyntaxToken[] items) + { + return this.WithName(this.Name.WithLiteralTokens(this.Name.LiteralTokens.AddRange(items))); + } + + public MarkupTagHelperAttributeSyntax AddNameSuffixLiteralTokens(params SyntaxToken[] items) + { + var _nameSuffix = this.NameSuffix ?? SyntaxFactory.MarkupTextLiteral(); + return this.WithNameSuffix(_nameSuffix.WithLiteralTokens(_nameSuffix.LiteralTokens.AddRange(items))); + } + + public MarkupTagHelperAttributeSyntax AddValuePrefixLiteralTokens(params SyntaxToken[] items) + { + var _valuePrefix = this.ValuePrefix ?? SyntaxFactory.MarkupTextLiteral(); + return this.WithValuePrefix(_valuePrefix.WithLiteralTokens(_valuePrefix.LiteralTokens.AddRange(items))); + } + + public MarkupTagHelperAttributeSyntax AddValueChildren(params RazorSyntaxNode[] items) + { + return this.WithValue(this.Value.WithChildren(this.Value.Children.AddRange(items))); + } + + public MarkupTagHelperAttributeSyntax AddValueSuffixLiteralTokens(params SyntaxToken[] items) + { + var _valueSuffix = this.ValueSuffix ?? SyntaxFactory.MarkupTextLiteral(); + return this.WithValueSuffix(_valueSuffix.WithLiteralTokens(_valueSuffix.LiteralTokens.AddRange(items))); + } + } + + internal sealed partial class MarkupMinimizedTagHelperAttributeSyntax : MarkupSyntaxNode + { + private MarkupTextLiteralSyntax _namePrefix; + private MarkupTextLiteralSyntax _name; + + internal MarkupMinimizedTagHelperAttributeSyntax(GreenNode green, SyntaxNode parent, int position) + : base(green, parent, position) + { + } + + public MarkupTextLiteralSyntax NamePrefix + { + get + { + return GetRedAtZero(ref _namePrefix); + } + } + + public MarkupTextLiteralSyntax Name + { + get + { + return GetRed(ref _name, 1); + } + } + + internal override SyntaxNode GetNodeSlot(int index) + { + switch (index) + { + case 0: return GetRedAtZero(ref _namePrefix); + case 1: return GetRed(ref _name, 1); + default: return null; + } + } + internal override SyntaxNode GetCachedSlot(int index) + { + switch (index) + { + case 0: return _namePrefix; + case 1: return _name; + default: return null; + } + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitMarkupMinimizedTagHelperAttribute(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitMarkupMinimizedTagHelperAttribute(this); + } + + public MarkupMinimizedTagHelperAttributeSyntax Update(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name) + { + if (namePrefix != NamePrefix || name != Name) + { + var newNode = SyntaxFactory.MarkupMinimizedTagHelperAttribute(namePrefix, name); + var annotations = GetAnnotations(); + if (annotations != null && annotations.Length > 0) + return newNode.WithAnnotations(annotations); + return newNode; + } + + return this; + } + + public MarkupMinimizedTagHelperAttributeSyntax WithNamePrefix(MarkupTextLiteralSyntax namePrefix) + { + return Update(namePrefix, Name); + } + + public MarkupMinimizedTagHelperAttributeSyntax WithName(MarkupTextLiteralSyntax name) + { + return Update(NamePrefix, name); + } + + public MarkupMinimizedTagHelperAttributeSyntax AddNamePrefixLiteralTokens(params SyntaxToken[] items) + { + var _namePrefix = this.NamePrefix ?? SyntaxFactory.MarkupTextLiteral(); + return this.WithNamePrefix(_namePrefix.WithLiteralTokens(_namePrefix.LiteralTokens.AddRange(items))); + } + + public MarkupMinimizedTagHelperAttributeSyntax AddNameLiteralTokens(params SyntaxToken[] items) + { + return this.WithName(this.Name.WithLiteralTokens(this.Name.LiteralTokens.AddRange(items))); + } + } + + internal sealed partial class MarkupTagHelperAttributeValueSyntax : RazorBlockSyntax + { + private SyntaxNode _children; + + internal MarkupTagHelperAttributeValueSyntax(GreenNode green, SyntaxNode parent, int position) + : base(green, parent, position) + { + } + + public override SyntaxList Children + { + get + { + return new SyntaxList(GetRed(ref _children, 0)); + } + } + + internal override SyntaxNode GetNodeSlot(int index) + { + switch (index) + { + case 0: return GetRedAtZero(ref _children); + default: return null; + } + } + internal override SyntaxNode GetCachedSlot(int index) + { + switch (index) + { + case 0: return _children; + default: return null; + } + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitMarkupTagHelperAttributeValue(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitMarkupTagHelperAttributeValue(this); + } + + public MarkupTagHelperAttributeValueSyntax Update(SyntaxList children) + { + if (children != Children) + { + var newNode = SyntaxFactory.MarkupTagHelperAttributeValue(children); + var annotations = GetAnnotations(); + if (annotations != null && annotations.Length > 0) + return newNode.WithAnnotations(annotations); + return newNode; + } + + return this; + } + + internal override RazorBlockSyntax WithChildrenCore(SyntaxList children) => WithChildren(children); + public new MarkupTagHelperAttributeValueSyntax WithChildren(SyntaxList children) + { + return Update(children); + } + internal override RazorBlockSyntax AddChildrenCore(params RazorSyntaxNode[] items) => AddChildren(items); + + public new MarkupTagHelperAttributeValueSyntax AddChildren(params RazorSyntaxNode[] items) + { + return WithChildren(this.Children.AddRange(items)); + } + } + internal abstract partial class CSharpSyntaxNode : RazorSyntaxNode { internal CSharpSyntaxNode(GreenNode green, SyntaxNode parent, int position) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/GreenNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/GreenNode.cs index d282d37ca..40797ea16 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/GreenNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/GreenNode.cs @@ -340,7 +340,7 @@ internal GreenNode GetFirstTerminal() for (int i = 0, n = node.SlotCount; i < n; i++) { var child = node.GetSlot(i); - if (child != null) + if (child != null && child.FullWidth > 0) { firstChild = child; break; @@ -362,7 +362,7 @@ internal GreenNode GetLastTerminal() for (var i = node.SlotCount - 1; i >= 0; i--) { var child = node.GetSlot(i); - if (child != null) + if (child != null && child.FullWidth > 0) { lastChild = child; break; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/InternalSyntax/RazorSyntaxNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/InternalSyntax/RazorSyntaxNode.cs new file mode 100644 index 000000000..a353a13dd --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/InternalSyntax/RazorSyntaxNode.cs @@ -0,0 +1,27 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +namespace Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax +{ + internal abstract partial class RazorSyntaxNode : GreenNode + { + protected RazorSyntaxNode(SyntaxKind kind) : base(kind) + { + } + + protected RazorSyntaxNode(SyntaxKind kind, int fullWidth) + : base(kind, fullWidth) + { + } + + protected RazorSyntaxNode(SyntaxKind kind, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + : base(kind, diagnostics, annotations) + { + } + + protected RazorSyntaxNode(SyntaxKind kind, int fullWidth, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + : base(kind, fullWidth, diagnostics, annotations) + { + } + } +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/InternalSyntax/SyntaxToken.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/InternalSyntax/SyntaxToken.cs index 6c409bec9..2b958788e 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/InternalSyntax/SyntaxToken.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/InternalSyntax/SyntaxToken.cs @@ -2,13 +2,11 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; -using System.Collections.Generic; using System.IO; -using Microsoft.AspNetCore.Razor.Language.Legacy; namespace Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax { - internal class SyntaxToken : GreenNode + internal class SyntaxToken : RazorSyntaxNode { private readonly GreenNode _leadingTrivia; private readonly GreenNode _trailingTrivia; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/MarkupElementRewriter.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/MarkupElementRewriter.cs new file mode 100644 index 000000000..7aeda1c34 --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/MarkupElementRewriter.cs @@ -0,0 +1,290 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; + +namespace Microsoft.AspNetCore.Razor.Language.Syntax +{ + internal static class MarkupElementRewriter + { + public static RazorSyntaxTree AddMarkupElements(RazorSyntaxTree syntaxTree) + { + var rewriter = new AddMarkupElementRewriter(); + var rewrittenRoot = rewriter.Visit(syntaxTree.Root); + + var newSyntaxTree = RazorSyntaxTree.Create(rewrittenRoot, syntaxTree.Source, syntaxTree.Diagnostics, syntaxTree.Options); + return newSyntaxTree; + } + + public static RazorSyntaxTree RemoveMarkupElements(RazorSyntaxTree syntaxTree) + { + var rewriter = new RemoveMarkupElementRewriter(); + var rewrittenRoot = rewriter.Visit(syntaxTree.Root); + + var newSyntaxTree = RazorSyntaxTree.Create(rewrittenRoot, syntaxTree.Source, syntaxTree.Diagnostics, syntaxTree.Options); + return newSyntaxTree; + } + + private class AddMarkupElementRewriter : SyntaxRewriter + { + private readonly Stack _startTagTracker = new Stack(); + + private TagBlockTracker CurrentTracker => _startTagTracker.Count > 0 ? _startTagTracker.Peek() : null; + + private string CurrentStartTagName => CurrentTracker?.TagName; + + public override SyntaxNode Visit(SyntaxNode node) + { + node = base.Visit(node); + + if (node != null) + { + node = RewriteNode(node); + } + + return node; + } + + private SyntaxNode RewriteNode(SyntaxNode node) + { + if (node.IsToken) + { + // Tokens don't have children. + return node; + } + + _startTagTracker.Clear(); + var children = node.ChildNodes().ToList(); + var rewrittenChildren = new List(children.Count); + for (var i = 0; i < children.Count; i++) + { + var child = children[i]; + if (!(child is MarkupTagBlockSyntax tagBlock)) + { + TrackChild(child, rewrittenChildren); + continue; + } + + var tagName = tagBlock.GetTagName(); + if (string.IsNullOrWhiteSpace(tagName) || tagBlock.IsSelfClosing()) + { + // Don't want to track incomplete, invalid (Eg. , < >), void or self-closing tags. + // Simply wrap it in a block with no body or start/end tag. + if (IsEndTag(tagBlock)) + { + // This is an error case. + BuildMarkupElement(rewrittenChildren, startTag: null, tagChildren: new List(), endTag: tagBlock); + } + else + { + BuildMarkupElement(rewrittenChildren, startTag: tagBlock, tagChildren: new List(), endTag: null); + } + } + else if (IsEndTag(tagBlock)) + { + if (string.Equals(CurrentStartTagName, tagName, StringComparison.OrdinalIgnoreCase)) + { + var startTagTracker = _startTagTracker.Pop(); + var startTag = startTagTracker.TagBlock; + + // Get the nodes between the start and the end tag. + var tagChildren = startTagTracker.Children; + + BuildMarkupElement(rewrittenChildren, startTag, tagChildren, endTag: tagBlock); + } + else + { + // Current tag scope does not match the end tag. Attempt to recover the start tag + // by looking up the previous tag scopes for a matching start tag. + if (!TryRecoverStartTag(rewrittenChildren, tagName, tagBlock)) + { + // Could not recover. The end tag doesn't have a corresponding start tag. Wrap it in a block and move on. + var rewritten = SyntaxFactory.MarkupElement(startTag: null, body: new SyntaxList(), endTag: tagBlock); + TrackChild(rewritten, rewrittenChildren); + } + } + } + else + { + // This is a start tag. Keep track of it. + _startTagTracker.Push(new TagBlockTracker(tagBlock)); + } + } + + while (_startTagTracker.Count > 0) + { + // We reached the end of the list and still have unmatched start tags + var startTagTracker = _startTagTracker.Pop(); + var startTag = startTagTracker.TagBlock; + var tagChildren = startTagTracker.Children; + BuildMarkupElement(rewrittenChildren, startTag, tagChildren, endTag: null); + } + + // We now have finished building our list of rewritten Children. + // At this point, We should have a one to one replacement for every child. The replacement can be null. + Debug.Assert(children.Count == rewrittenChildren.Count); + node = node.ReplaceNodes(children, (original, rewritten) => + { + var originalIndex = children.IndexOf(original); + if (originalIndex != -1) + { + // If this returns null, that node will be removed. + return rewrittenChildren[originalIndex]; + } + + return original; + }); + + return node; + } + + private void BuildMarkupElement(List rewrittenChildren, MarkupTagBlockSyntax startTag, List tagChildren, MarkupTagBlockSyntax endTag) + { + // We are trying to replace multiple nodes (including the start/end tag) with one rewritten node. + // Since we need to have each child node accounted for in our rewritten list, + // we'll add "null" in place of them. + // The call to SyntaxNode.ReplaceNodes() later will take care removing the nodes whose replacement is null. + + var body = tagChildren.Where(t => t != null).ToList(); + var rewritten = SyntaxFactory.MarkupElement(startTag, new SyntaxList(body), endTag); + if (startTag != null) + { + // If there was a start tag, that is where we want to put our new element. + TrackChild(rewritten, rewrittenChildren); + } + + foreach (var child in tagChildren) + { + TrackChild(null, rewrittenChildren); + } + if (endTag != null) + { + TrackChild(startTag == null ? rewritten : null, rewrittenChildren); + } + } + + private void TrackChild(SyntaxNode child, List rewrittenChildren) + { + if (CurrentTracker != null) + { + CurrentTracker.Children.Add((RazorSyntaxNode)child); + return; + } + + rewrittenChildren.Add(child); + } + + private bool TryRecoverStartTag(List rewrittenChildren, string tagName, MarkupTagBlockSyntax endTag) + { + var malformedTagCount = 0; + foreach (var tracker in _startTagTracker) + { + if (tracker.TagName.Equals(tagName, StringComparison.OrdinalIgnoreCase)) + { + break; + } + + malformedTagCount++; + } + + if (_startTagTracker.Count > malformedTagCount) + { + RewriteMalformedTags(rewrittenChildren, malformedTagCount); + + // One final rewrite, this is the rewrite that completes our target tag which is not malformed. + var startTagTracker = _startTagTracker.Pop(); + var startTag = startTagTracker.TagBlock; + var tagChildren = startTagTracker.Children; + + BuildMarkupElement(rewrittenChildren, startTag, tagChildren, endTag); + + // We were able to recover + return true; + } + + // Could not recover tag. Aka we found an end tag without a corresponding start tag. + return false; + } + + private void RewriteMalformedTags(List rewrittenChildren, int malformedTagCount) + { + for (var i = 0; i < malformedTagCount; i++) + { + var startTagTracker = _startTagTracker.Pop(); + var startTag = startTagTracker.TagBlock; + + BuildMarkupElement(rewrittenChildren, startTag, startTagTracker.Children, endTag: null); + } + } + + private bool IsEndTag(MarkupTagBlockSyntax tagBlock) + { + var childContent = tagBlock.Children.First().GetContent(); + if (string.IsNullOrEmpty(childContent)) + { + return false; + } + + // We grab the token that could be forward slash + return childContent.StartsWith("(); + } + + public MarkupTagBlockSyntax TagBlock { get; } + + public List Children { get; } + + public string TagName { get; } + } + } + + private class RemoveMarkupElementRewriter : SyntaxRewriter + { + public override SyntaxNode Visit(SyntaxNode node) + { + if (node != null) + { + node = RewriteNode(node); + } + + return base.Visit(node); + } + + private SyntaxNode RewriteNode(SyntaxNode node) + { + if (node.IsToken) + { + return node; + } + + var children = node.ChildNodes(); + for (var i = 0; i < children.Count; i++) + { + var child = children[i]; + if (!(child is MarkupElementSyntax tagElement)) + { + continue; + } + + node = node.ReplaceNode(tagElement, tagElement.ChildNodes()); + + // Since we rewrote 'node', it's children are different. Update our collection. + children = node.ChildNodes(); + } + + return node; + } + } + } +} \ No newline at end of file diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/MarkupMinimizedTagHelperAttributeSyntax.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/MarkupMinimizedTagHelperAttributeSyntax.cs new file mode 100644 index 000000000..cf1699c8b --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/MarkupMinimizedTagHelperAttributeSyntax.cs @@ -0,0 +1,34 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Collections.Generic; +using Microsoft.AspNetCore.Razor.Language.Legacy; + +namespace Microsoft.AspNetCore.Razor.Language.Syntax +{ + internal sealed partial class MarkupMinimizedTagHelperAttributeSyntax + { + private static readonly string TagHelperAttributeInfoKey = typeof(TagHelperAttributeInfo).Name; + + public TagHelperAttributeInfo TagHelperAttributeInfo + { + get + { + var tagHelperAttributeInfo = this.GetAnnotationValue(TagHelperAttributeInfoKey) as TagHelperAttributeInfo; + return tagHelperAttributeInfo; + } + } + + public MarkupMinimizedTagHelperAttributeSyntax WithTagHelperAttributeInfo(TagHelperAttributeInfo info) + { + var annotations = new List(GetAnnotations()) + { + new SyntaxAnnotation(TagHelperAttributeInfoKey, info) + }; + + var newGreen = Green.WithAnnotationsGreen(annotations.ToArray()); + + return (MarkupMinimizedTagHelperAttributeSyntax)newGreen.CreateRed(Parent, Position); + } + } +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/MarkupTagHelperAttributeSyntax.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/MarkupTagHelperAttributeSyntax.cs new file mode 100644 index 000000000..66fc6134d --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/MarkupTagHelperAttributeSyntax.cs @@ -0,0 +1,34 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Collections.Generic; +using Microsoft.AspNetCore.Razor.Language.Legacy; + +namespace Microsoft.AspNetCore.Razor.Language.Syntax +{ + internal sealed partial class MarkupTagHelperAttributeSyntax + { + private static readonly string TagHelperAttributeInfoKey = typeof(TagHelperAttributeInfo).Name; + + public TagHelperAttributeInfo TagHelperAttributeInfo + { + get + { + var tagHelperAttributeInfo = this.GetAnnotationValue(TagHelperAttributeInfoKey) as TagHelperAttributeInfo; + return tagHelperAttributeInfo; + } + } + + public MarkupTagHelperAttributeSyntax WithTagHelperAttributeInfo(TagHelperAttributeInfo info) + { + var annotations = new List(GetAnnotations()) + { + new SyntaxAnnotation(TagHelperAttributeInfoKey, info) + }; + + var newGreen = Green.WithAnnotationsGreen(annotations.ToArray()); + + return (MarkupTagHelperAttributeSyntax)newGreen.CreateRed(Parent, Position); + } + } +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/MarkupTagHelperElementSyntax.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/MarkupTagHelperElementSyntax.cs new file mode 100644 index 000000000..c55e92427 --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/MarkupTagHelperElementSyntax.cs @@ -0,0 +1,34 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Collections.Generic; +using Microsoft.AspNetCore.Razor.Language.Legacy; + +namespace Microsoft.AspNetCore.Razor.Language.Syntax +{ + internal sealed partial class MarkupTagHelperElementSyntax + { + private static readonly string TagHelperInfoKey = typeof(TagHelperInfo).Name; + + public TagHelperInfo TagHelperInfo + { + get + { + var tagHelperInfo = this.GetAnnotationValue(TagHelperInfoKey) as TagHelperInfo; + return tagHelperInfo; + } + } + + public MarkupTagHelperElementSyntax WithTagHelperInfo(TagHelperInfo info) + { + var annotations = new List(GetAnnotations()) + { + new SyntaxAnnotation(TagHelperInfoKey, info) + }; + + var newGreen = Green.WithAnnotationsGreen(annotations.ToArray()); + + return (MarkupTagHelperElementSyntax)newGreen.CreateRed(Parent, Position); + } + } +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/RazorSyntaxNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/RazorSyntaxNode.cs new file mode 100644 index 000000000..6ed220f3d --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/RazorSyntaxNode.cs @@ -0,0 +1,13 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +namespace Microsoft.AspNetCore.Razor.Language.Syntax +{ + internal abstract partial class RazorSyntaxNode : SyntaxNode + { + public RazorSyntaxNode(GreenNode green, SyntaxNode parent, int position) + : base(green, parent, position) + { + } + } +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/Syntax.xml b/src/Microsoft.AspNetCore.Razor.Language/Syntax/Syntax.xml index 38d957d3b..f7c018060 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/Syntax.xml +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/Syntax.xml @@ -1,10 +1,10 @@  - + + - @@ -83,19 +83,60 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxExtensions.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxExtensions.cs new file mode 100644 index 000000000..055180ca9 --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxExtensions.cs @@ -0,0 +1,53 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +namespace Microsoft.AspNetCore.Razor.Language.Syntax +{ + internal partial class MarkupTextLiteralSyntax + { + protected override string GetDebuggerDisplay() + { + return string.Format("{0} [{1}]", base.GetDebuggerDisplay(), this.GetContent()); + } + } + + internal partial class MarkupEphemeralTextLiteralSyntax + { + protected override string GetDebuggerDisplay() + { + return string.Format("{0} [{1}]", base.GetDebuggerDisplay(), this.GetContent()); + } + } + + internal partial class CSharpStatementLiteralSyntax + { + protected override string GetDebuggerDisplay() + { + return string.Format("{0} [{1}]", base.GetDebuggerDisplay(), this.GetContent()); + } + } + + internal partial class CSharpExpressionLiteralSyntax + { + protected override string GetDebuggerDisplay() + { + return string.Format("{0} [{1}]", base.GetDebuggerDisplay(), this.GetContent()); + } + } + + internal partial class CSharpEphemeralTextLiteralSyntax + { + protected override string GetDebuggerDisplay() + { + return string.Format("{0} [{1}]", base.GetDebuggerDisplay(), this.GetContent()); + } + } + + internal partial class UnclassifiedTextLiteralSyntax + { + protected override string GetDebuggerDisplay() + { + return string.Format("{0} [{1}]", base.GetDebuggerDisplay(), this.GetContent()); + } + } +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxKind.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxKind.cs index 1d43e98ad..75dd554ab 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxKind.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxKind.cs @@ -18,6 +18,7 @@ internal enum SyntaxKind : byte // Markup MarkupBlock, MarkupTransition, + MarkupElement, MarkupTagBlock, MarkupTextLiteral, MarkupEphemeralTextLiteral, @@ -26,6 +27,12 @@ internal enum SyntaxKind : byte MarkupMinimizedAttributeBlock, MarkupLiteralAttributeValue, MarkupDynamicAttributeValue, + MarkupTagHelperElement, + MarkupTagHelperStartTag, + MarkupTagHelperEndTag, + MarkupTagHelperAttribute, + MarkupMinimizedTagHelperAttribute, + MarkupTagHelperAttributeValue, // CSharp CSharpStatement, diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNode.cs index c3cc28569..ee0cccd4c 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNode.cs @@ -87,7 +87,7 @@ public bool HasTrailingTrivia public bool ContainsAnnotations => Green.ContainsAnnotations; - private string SerializedValue => SyntaxSerializer.Serialize(this); + internal string SerializedValue => SyntaxSerializer.Serialize(this); public abstract TResult Accept(SyntaxVisitor visitor); @@ -393,7 +393,7 @@ public virtual string ToFullString() return Green.ToFullString(); } - private string GetDebuggerDisplay() + protected virtual string GetDebuggerDisplay() { if (IsToken) { diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNodeExtensions.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNodeExtensions.cs index cee747b97..81103d781 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNodeExtensions.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNodeExtensions.cs @@ -10,6 +10,27 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax { internal static class SyntaxNodeExtensions { + // From http://dev.w3.org/html5/spec/Overview.html#elements-0 + private static readonly HashSet VoidElements = new HashSet(StringComparer.OrdinalIgnoreCase) + { + "area", + "base", + "br", + "col", + "command", + "embed", + "hr", + "img", + "input", + "keygen", + "link", + "meta", + "param", + "source", + "track", + "wbr" + }; + public static TNode WithAnnotations(this TNode node, params SyntaxAnnotation[] annotations) where TNode : SyntaxNode { if (node == null) @@ -96,6 +117,28 @@ public static SpanContext GetSpanContext(this SyntaxNode node) return context is SpanContext ? (SpanContext)context : null; } + public static TNode WithSpanContext(this TNode node, SpanContext spanContext) where TNode : SyntaxNode + { + if (node == null) + { + throw new ArgumentNullException(nameof(node)); + } + + var newAnnotation = new SyntaxAnnotation(SyntaxConstants.SpanContextKind, spanContext); + + var newAnnotations = new List(); + newAnnotations.Add(newAnnotation); + foreach (var annotation in node.GetAnnotations()) + { + if (annotation.Kind != newAnnotation.Kind) + { + newAnnotations.Add(annotation); + } + } + + return node.WithAnnotations(newAnnotations.ToArray()); + } + /// /// Creates a new tree of nodes with the specified nodes, tokens and trivia replaced. /// @@ -200,5 +243,99 @@ public static string GetContent(this TNode node) where TNode : SyntaxNode var content = string.Concat(tokens.Select(t => t.Content)); return content; } + + public static string GetTagName(this MarkupTagBlockSyntax tagBlock) + { + if (tagBlock == null) + { + throw new ArgumentNullException(nameof(tagBlock)); + } + + var child = tagBlock.Children[0]; + + if (tagBlock.Children.Count == 0 || !(child is MarkupTextLiteralSyntax)) + { + return null; + } + + var childLiteral = (MarkupTextLiteralSyntax)child; + SyntaxToken textToken = null; + for (var i = 0; i < childLiteral.LiteralTokens.Count; i++) + { + var token = childLiteral.LiteralTokens[i]; + + if (token != null && + (token.Kind == SyntaxKind.Whitespace || token.Kind == SyntaxKind.Text)) + { + textToken = token; + break; + } + } + + if (textToken == null) + { + return null; + } + + return textToken.Kind == SyntaxKind.Whitespace ? null : textToken.Content; + } + + public static string GetTagName(this MarkupTagHelperStartTagSyntax tagBlock) + { + if (tagBlock == null) + { + throw new ArgumentNullException(nameof(tagBlock)); + } + + var child = tagBlock.Children[0]; + + if (tagBlock.Children.Count == 0 || !(child is MarkupTextLiteralSyntax)) + { + return null; + } + + var childLiteral = (MarkupTextLiteralSyntax)child; + SyntaxToken textToken = null; + for (var i = 0; i < childLiteral.LiteralTokens.Count; i++) + { + var token = childLiteral.LiteralTokens[i]; + + if (token != null && + (token.Kind == SyntaxKind.Whitespace || token.Kind == SyntaxKind.Text)) + { + textToken = token; + break; + } + } + + if (textToken == null) + { + return null; + } + + return textToken.Kind == SyntaxKind.Whitespace ? null : textToken.Content; + } + + public static bool IsSelfClosing(this MarkupTagBlockSyntax tagBlock) + { + if (tagBlock == null) + { + throw new ArgumentNullException(nameof(tagBlock)); + } + + var lastChild = tagBlock.ChildNodes().LastOrDefault(); + + return lastChild?.GetContent().EndsWith("/>", StringComparison.Ordinal) ?? false; + } + + public static bool IsVoidElement(this MarkupTagBlockSyntax tagBlock) + { + if (tagBlock == null) + { + throw new ArgumentNullException(nameof(tagBlock)); + } + + return VoidElements.Contains(tagBlock.GetTagName()); + } } } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxSerializer.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxSerializer.cs index 9191b0a8a..24e6584a5 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxSerializer.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxSerializer.cs @@ -134,6 +134,25 @@ private void WriteNode(SyntaxNode node) WriteSeparator(); Write($"FullWidth: {node.FullWidth}"); + if (node is MarkupTagHelperElementSyntax tagHelperElement) + { + WriteTagHelperElement(tagHelperElement); + } + else if (node is MarkupTagHelperAttributeSyntax tagHelperAttribute) + { + WriteTagHelperAttributeInfo(tagHelperAttribute.TagHelperAttributeInfo); + } + else if (node is MarkupMinimizedTagHelperAttributeSyntax minimizedTagHelperAttribute) + { + WriteTagHelperAttributeInfo(minimizedTagHelperAttribute.TagHelperAttributeInfo); + } + + if (ShouldDisplayNodeContent(node)) + { + WriteSeparator(); + Write($"[{node.GetContent()}]"); + } + var annotation = node.GetAnnotations().FirstOrDefault(a => a.Kind == SyntaxConstants.SpanContextKind); if (annotation != null && annotation.Data is SpanContext context) { @@ -148,6 +167,34 @@ private void WriteNode(SyntaxNode node) } } + private void WriteTagHelperElement(MarkupTagHelperElementSyntax node) + { + // Write tag name + WriteSeparator(); + Write($"{node.TagHelperInfo.TagName}[{node.TagHelperInfo.TagMode}]"); + + // Write descriptors + foreach (var descriptor in node.TagHelperInfo.BindingResult.Descriptors) + { + WriteSeparator(); + + // Get the type name without the namespace. + var typeName = descriptor.Name.Substring(descriptor.Name.LastIndexOf('.') + 1); + Write(typeName); + } + } + + private void WriteTagHelperAttributeInfo(TagHelperAttributeInfo info) + { + // Write attributes + WriteSeparator(); + Write(info.Name); + WriteSeparator(); + Write(info.AttributeStructure); + WriteSeparator(); + Write(info.Bound ? "Bound" : "Unbound"); + } + private void WriteToken(SyntaxToken token) { WriteIndent(); @@ -202,6 +249,23 @@ protected void Write(object value) _writer.Write(value); } + + private static bool ShouldDisplayNodeContent(SyntaxNode node) + { + return node.Kind == SyntaxKind.MarkupTextLiteral || + node.Kind == SyntaxKind.MarkupEphemeralTextLiteral || + node.Kind == SyntaxKind.MarkupTagBlock || + node.Kind == SyntaxKind.MarkupAttributeBlock || + node.Kind == SyntaxKind.MarkupMinimizedAttributeBlock || + node.Kind == SyntaxKind.MarkupTagHelperAttribute || + node.Kind == SyntaxKind.MarkupMinimizedTagHelperAttribute || + node.Kind == SyntaxKind.MarkupLiteralAttributeValue || + node.Kind == SyntaxKind.MarkupDynamicAttributeValue || + node.Kind == SyntaxKind.CSharpStatementLiteral || + node.Kind == SyntaxKind.CSharpExpressionLiteral || + node.Kind == SyntaxKind.CSharpEphemeralTextLiteral || + node.Kind == SyntaxKind.UnclassifiedTextLiteral; + } } } } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxToken.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxToken.cs index 503c20cee..76833bec1 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxToken.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxToken.cs @@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax { - internal class SyntaxToken : SyntaxNode + internal class SyntaxToken : RazorSyntaxNode { internal SyntaxToken(GreenNode green, SyntaxNode parent, int position) : this(green, parent, null, position) diff --git a/src/Microsoft.AspNetCore.Razor.Language/TagHelperSpanVisitor.cs b/src/Microsoft.AspNetCore.Razor.Language/TagHelperSpanVisitor.cs new file mode 100644 index 000000000..35b1e0ee7 --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/TagHelperSpanVisitor.cs @@ -0,0 +1,30 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Collections.Generic; +using Microsoft.AspNetCore.Razor.Language.Legacy; +using Microsoft.AspNetCore.Razor.Language.Syntax; + +namespace Microsoft.AspNetCore.Razor.Language +{ + internal class TagHelperSpanVisitor : SyntaxRewriter + { + private RazorSourceDocument _source; + private List _spans; + + public TagHelperSpanVisitor(RazorSourceDocument source) + { + _source = source; + _spans = new List(); + } + + public IReadOnlyList TagHelperSpans => _spans; + + public override SyntaxNode VisitMarkupTagHelperElement(MarkupTagHelperElementSyntax node) + { + var span = new TagHelperSpanInternal(node.GetSourceSpan(_source), node.TagHelperInfo.BindingResult); + _spans.Add(span); + return base.VisitMarkupTagHelperElement(node); + } + } +} diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/MarkupElementRewriterTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/MarkupElementRewriterTest.cs new file mode 100644 index 000000000..47cdc4793 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/MarkupElementRewriterTest.cs @@ -0,0 +1,159 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Text; +using Microsoft.AspNetCore.Razor.Language.Syntax; +using Xunit; + +namespace Microsoft.AspNetCore.Razor.Language.Legacy +{ + public class MarkupElementRewriterTest : CsHtmlMarkupParserTestBase + { + public MarkupElementRewriterTest() + { + UseNewSyntaxTree = true; + } + + [Fact] + public void Rewrites_ValidTags() + { + // Arrange + var content = @" +
    Foo
    +

    Bar

    +"; + + // Act & Assert + RewriterTest(content); + } + + [Fact] + public void Rewrites_ValidNestedTags() + { + // Arrange + var content = @" +
    + Foo +

    Bar

    + Baz +
    "; + + // Act & Assert + RewriterTest(content); + } + + [Fact] + public void Rewrites_ValidNestedTagsMixedWithCode() + { + // Arrange + var content = @" +
    + Foo +

    @Bar

    + @{ var x = Bar; } +
    +"; + + // Act & Assert + RewriterTest(content); + } + + [Fact] + public void Rewrites_EndTagsWithMissingStartTags() + { + // Arrange + var content = @" +Foo
    +"; + + // Act & Assert + RewriterTest(content); + } + + [Fact] + public void Rewrites_StartTagsWithMissingEndTags() + { + // Arrange + var content = @" +
    + Foo +

    + Bar + +"; + + // Act & Assert + RewriterTest(content); + } + + [Fact] + public void Rewrites_SelfClosingTags() + { + // Arrange + var content = @" +
    Foo +"; + + // Act & Assert + RewriterTest(content); + } + + [Fact] + public void Rewrites_MalformedTags_RecoversSuccessfully() + { + // Arrange + var content = @" +

    contentfooter
    +"; + + // Act & Assert + RewriterTest(content); + } + + [Fact] + public void Rewrites_MisplacedEndTags_RecoversSuccessfully() + { + // Arrange + var content = @" +
    contentfooter
    +"; + + // Act & Assert + RewriterTest(content); + } + + [Fact] + public void Rewrites_DoesNotSpecialCase_VoidTags() + { + // Arrange + var content = @" +Foo +"; + + // Act & Assert + RewriterTest(content); + } + + [Fact] + public void Rewrites_IncompleteTags() + { + // Arrange + var content = @" +<
    >Foo< > +"; + + // Act & Assert + RewriterTest(content); + } + + private void RewriterTest(string input) + { + var syntaxTree = ParseDocument(input, designTime: false); + var rewritten = MarkupElementRewriter.AddMarkupElements(syntaxTree); + BaselineTest(rewritten); + + var unrewritten = MarkupElementRewriter.RemoveMarkupElements(rewritten); + Assert.Equal(syntaxTree.Root.SerializedValue, unrewritten.Root.SerializedValue); + } + } +} \ No newline at end of file diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperBlockRewriterTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperBlockRewriterTest.cs index 09431eddd..d90569e4a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperBlockRewriterTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperBlockRewriterTest.cs @@ -9,6 +9,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { public class TagHelperBlockRewriterTest : TagHelperRewritingTestBase { + public TagHelperBlockRewriterTest() + { + UseNewSyntaxTree = true; + } + public static TagHelperDescriptor[] SymbolBoundAttributes_Descriptors = new[] { TagHelperDescriptorBuilder.Create("CatchAllTagHelper", "SomeAssembly") diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperBlockTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperBlockTest.cs index 971e97f36..57b085461 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperBlockTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperBlockTest.cs @@ -16,7 +16,7 @@ public void Clone_ClonesTagHelperChildren() var tagHelper = new TagHelperBlockBuilder( "p", TagMode.StartTagAndEndTag, - attributes: new List(), + attributes: new List(), children: new[] { new SpanBuilder(SourceLocation.Zero).Build(), @@ -41,10 +41,10 @@ public void Clone_ClonesTagHelperAttributes() var tagHelper = (TagHelperBlock)new TagHelperBlockBuilder( "p", TagMode.StartTagAndEndTag, - attributes: new List() + attributes: new List() { - new TagHelperAttributeNode("class", new SpanBuilder(SourceLocation.Zero).Build(), AttributeStructure.NoQuotes), - new TagHelperAttributeNode("checked", new SpanBuilder(SourceLocation.Undefined).Build(), AttributeStructure.NoQuotes) + new LegacyTagHelperAttributeNode("class", new SpanBuilder(SourceLocation.Zero).Build(), AttributeStructure.NoQuotes), + new LegacyTagHelperAttributeNode("checked", new SpanBuilder(SourceLocation.Undefined).Build(), AttributeStructure.NoQuotes) }, children: Enumerable.Empty()).Build(); @@ -66,7 +66,7 @@ public void Clone_ClonesTagHelperSourceStartTag() var tagHelper = (TagHelperBlock)new TagHelperBlockBuilder( "p", TagMode.StartTagAndEndTag, - attributes: new List(), + attributes: new List(), children: Enumerable.Empty()) { SourceStartTag = new BlockBuilder() @@ -91,7 +91,7 @@ public void Clone_ClonesTagHelperSourceEndTag() var tagHelper = (TagHelperBlock)new TagHelperBlockBuilder( "p", TagMode.StartTagAndEndTag, - attributes: new List(), + attributes: new List(), children: Enumerable.Empty()) { SourceEndTag = new BlockBuilder() diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperParseTreeRewriterTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperParseTreeRewriterTest.cs index d78125f36..8b6c5b0e7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperParseTreeRewriterTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperParseTreeRewriterTest.cs @@ -4,12 +4,18 @@ using System; using System.Collections.Generic; using System.Linq; +using Microsoft.AspNetCore.Razor.Language.Syntax; using Xunit; namespace Microsoft.AspNetCore.Razor.Language.Legacy { public class TagHelperParseTreeRewriterTest : TagHelperRewritingTestBase { + public TagHelperParseTreeRewriterTest() + { + UseNewSyntaxTree = true; + } + public static TheoryData GetAttributeNameValuePairsData { get @@ -29,13 +35,13 @@ public static TheoryData GetAttributeNameValuePairsData { "", new[] { kvp("href", csharp) } }, { "", new[] { kvp("href", $"prefix{csharp} suffix") } }, { "", new[] { kvp("href", "~/home") } }, - { "", new[] { kvp("href", "~/home"), kvp("", "") } }, + { "", new[] { kvp("href", "~/home") } }, { "", new[] { kvp("href", $"{csharp}::0"), kvp("class", "btn btn-success"), kvp("random", "") } }, { "", new[] { kvp("href", "") } }, - { " ", new[] { kvp("href", "\"> ") } }, { "(), parseResult.Options.FeatureFlags); + var document = parseResult.Root; + var parseTreeRewriter = new TagHelperParseTreeRewriter.Rewriter( + parseResult.Source, + null, + Enumerable.Empty(), + parseResult.Options.FeatureFlags, + errorSink); // Assert - Guard - var rootBlock = Assert.IsType(document); - var child = Assert.Single(rootBlock.Children); - var tagBlock = Assert.IsType(child); - Assert.Equal(BlockKindInternal.Tag, tagBlock.Type); + var rootBlock = Assert.IsType(document); + var rootMarkup = Assert.IsType(rootBlock.Document); + var childBlock = Assert.Single(rootMarkup.Children); + var tagBlock = Assert.IsType(childBlock); Assert.Empty(errorSink.Errors); // Act diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperRewritingTestBase.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperRewritingTestBase.cs index f38b4f530..050e72598 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperRewritingTestBase.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperRewritingTestBase.cs @@ -69,25 +69,13 @@ internal void EvaluateData( string tagHelperPrefix = null, RazorParserFeatureFlags featureFlags = null) { - var syntaxTree = ParseDocument(documentContent); + var syntaxTree = ParseDocument(documentContent, featureFlags: featureFlags); var errorSink = new ErrorSink(); RazorSyntaxTree rewrittenTree = null; if (UseNewSyntaxTree) { - var parseTreeRewriter = new TagHelperParseTreeRewriter( - tagHelperPrefix, - descriptors, - featureFlags ?? syntaxTree.Options.FeatureFlags); - - var actualTree = parseTreeRewriter.Rewrite(syntaxTree.Root, errorSink); - - var allErrors = syntaxTree.Diagnostics.Concat(errorSink.Errors); - var actualErrors = allErrors - .OrderBy(error => error.Span.AbsoluteIndex) - .ToList(); - - rewrittenTree = RazorSyntaxTree.Create(actualTree, syntaxTree.Source, actualErrors, syntaxTree.Options); + rewrittenTree = TagHelperParseTreeRewriter.Rewrite(syntaxTree, tagHelperPrefix, descriptors); } else { diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_DoesNotSpecialCase_VoidTags.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_DoesNotSpecialCase_VoidTags.cspans.txt new file mode 100644 index 000000000..d9ab213c7 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_DoesNotSpecialCase_VoidTags.cspans.txt @@ -0,0 +1,5 @@ +Markup span at (0:0,0 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [22] ) +Markup span at (2:1,0 [7] ) (Accepts:Any) - Parent: Tag block at (2:1,0 [7] ) +Markup span at (9:1,7 [3] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [22] ) +Markup span at (12:1,10 [8] ) (Accepts:Any) - Parent: Tag block at (12:1,10 [8] ) +Markup span at (20:1,18 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [22] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_DoesNotSpecialCase_VoidTags.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_DoesNotSpecialCase_VoidTags.stree.txt new file mode 100644 index 000000000..ba5f6c0b5 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_DoesNotSpecialCase_VoidTags.stree.txt @@ -0,0 +1,20 @@ +RazorDocument - [0..22)::22 - [LFFooLF] + MarkupBlock - [0..22)::22 + MarkupTextLiteral - [0..2)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupElement - [2..20)::18 + MarkupTagBlock - [2..9)::7 - [] + MarkupTextLiteral - [2..9)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; + MarkupTextLiteral - [9..12)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTagBlock - [12..20)::8 - [] + MarkupTextLiteral - [12..20)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[input]; + CloseAngle;[>]; + MarkupTextLiteral - [20..22)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_EndTagsWithMissingStartTags.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_EndTagsWithMissingStartTags.cspans.txt new file mode 100644 index 000000000..017a6ad43 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_EndTagsWithMissingStartTags.cspans.txt @@ -0,0 +1,3 @@ +Markup span at (0:0,0 [5] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [13] ) +Markup span at (5:1,3 [6] ) (Accepts:Any) - Parent: Tag block at (5:1,3 [6] ) +Markup span at (11:1,9 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [13] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_EndTagsWithMissingStartTags.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_EndTagsWithMissingStartTags.stree.txt new file mode 100644 index 000000000..3fccc12be --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_EndTagsWithMissingStartTags.stree.txt @@ -0,0 +1,14 @@ +RazorDocument - [0..13)::13 - [LFFoo
    LF] + MarkupBlock - [0..13)::13 + MarkupTextLiteral - [0..5)::5 - [LFFoo] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Text;[Foo]; + MarkupElement - [5..11)::6 + MarkupTagBlock - [5..11)::6 - [
    ] + MarkupTextLiteral - [5..11)::6 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [11..13)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_IncompleteTags.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_IncompleteTags.cspans.txt new file mode 100644 index 000000000..245badb59 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_IncompleteTags.cspans.txt @@ -0,0 +1,8 @@ +Markup span at (0:0,0 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [27] ) +Markup span at (2:1,0 [1] ) (Accepts:Any) - Parent: Tag block at (2:1,0 [1] ) +Markup span at (3:1,1 [5] ) (Accepts:Any) - Parent: Tag block at (3:1,1 [5] ) +Markup span at (8:1,6 [4] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [27] ) +Markup span at (12:1,10 [2] ) (Accepts:Any) - Parent: Tag block at (12:1,10 [2] ) +Markup span at (14:1,12 [6] ) (Accepts:Any) - Parent: Tag block at (14:1,12 [6] ) +Markup span at (20:1,18 [5] ) (Accepts:Any) - Parent: Tag block at (20:1,18 [5] ) +Markup span at (25:1,23 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [27] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_IncompleteTags.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_IncompleteTags.stree.txt new file mode 100644 index 000000000..31f5bd670 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_IncompleteTags.stree.txt @@ -0,0 +1,36 @@ +RazorDocument - [0..27)::27 - [LF<
    >Foo< >LF] + MarkupBlock - [0..27)::27 + MarkupTextLiteral - [0..2)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupElement - [2..3)::1 + MarkupTagBlock - [2..3)::1 - [<] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupElement - [3..20)::17 + MarkupTagBlock - [3..8)::5 - [
    ] + MarkupTextLiteral - [3..8)::5 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [8..12)::4 - [>Foo] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + Text;[Foo]; + MarkupElement - [12..14)::2 + MarkupTagBlock - [12..14)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + MarkupTagBlock - [14..20)::6 - [
    ] + MarkupTextLiteral - [14..20)::6 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupElement - [20..25)::5 + MarkupTagBlock - [20..25)::5 - [< >] + MarkupTextLiteral - [20..25)::5 - [< >] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTextLiteral - [25..27)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_MalformedTags_RecoversSuccessfully.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_MalformedTags_RecoversSuccessfully.cspans.txt new file mode 100644 index 000000000..616773a7c --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_MalformedTags_RecoversSuccessfully.cspans.txt @@ -0,0 +1,7 @@ +Markup span at (0:0,0 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [35] ) +Markup span at (2:1,0 [5] ) (Accepts:Any) - Parent: Tag block at (2:1,0 [5] ) +Markup span at (7:1,5 [7] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [35] ) +Markup span at (14:1,12 [7] ) (Accepts:Any) - Parent: Tag block at (14:1,12 [7] ) +Markup span at (21:1,19 [6] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [35] ) +Markup span at (27:1,25 [6] ) (Accepts:Any) - Parent: Tag block at (27:1,25 [6] ) +Markup span at (33:1,31 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [35] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_MalformedTags_RecoversSuccessfully.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_MalformedTags_RecoversSuccessfully.stree.txt new file mode 100644 index 000000000..9ea3d31fb --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_MalformedTags_RecoversSuccessfully.stree.txt @@ -0,0 +1,29 @@ +RazorDocument - [0..35)::35 - [LF
    contentfooter
    LF] + MarkupBlock - [0..35)::35 + MarkupTextLiteral - [0..2)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupElement - [2..33)::31 + MarkupTagBlock - [2..7)::5 - [
    ] + MarkupTextLiteral - [2..7)::5 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [7..14)::7 - [content] - Gen - SpanEditHandler;Accepts:Any + Text;[content]; + MarkupElement - [14..21)::7 + MarkupTagBlock - [14..21)::7 - [] + MarkupTextLiteral - [14..21)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[span]; + CloseAngle;[>]; + MarkupTextLiteral - [21..27)::6 - [footer] - Gen - SpanEditHandler;Accepts:Any + Text;[footer]; + MarkupTagBlock - [27..33)::6 - [
    ] + MarkupTextLiteral - [27..33)::6 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [33..35)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_MisplacedEndTags_RecoversSuccessfully.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_MisplacedEndTags_RecoversSuccessfully.cspans.txt new file mode 100644 index 000000000..d19254baf --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_MisplacedEndTags_RecoversSuccessfully.cspans.txt @@ -0,0 +1,8 @@ +Markup span at (0:0,0 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [41] ) +Markup span at (2:1,0 [5] ) (Accepts:Any) - Parent: Tag block at (2:1,0 [5] ) +Markup span at (7:1,5 [7] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [41] ) +Markup span at (14:1,12 [6] ) (Accepts:Any) - Parent: Tag block at (14:1,12 [6] ) +Markup span at (20:1,18 [6] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [41] ) +Markup span at (26:1,24 [6] ) (Accepts:Any) - Parent: Tag block at (26:1,24 [6] ) +Markup span at (32:1,30 [7] ) (Accepts:Any) - Parent: Tag block at (32:1,30 [7] ) +Markup span at (39:1,37 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [41] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_MisplacedEndTags_RecoversSuccessfully.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_MisplacedEndTags_RecoversSuccessfully.stree.txt new file mode 100644 index 000000000..459c938fb --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_MisplacedEndTags_RecoversSuccessfully.stree.txt @@ -0,0 +1,35 @@ +RazorDocument - [0..41)::41 - [LF
    contentfooter
    LF] + MarkupBlock - [0..41)::41 + MarkupTextLiteral - [0..2)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupElement - [2..32)::30 + MarkupTagBlock - [2..7)::5 - [
    ] + MarkupTextLiteral - [2..7)::5 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [7..14)::7 - [content] - Gen - SpanEditHandler;Accepts:Any + Text;[content]; + MarkupElement - [14..26)::12 + MarkupTagBlock - [14..20)::6 - [] + MarkupTextLiteral - [14..20)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[span]; + CloseAngle;[>]; + MarkupTextLiteral - [20..26)::6 - [footer] - Gen - SpanEditHandler;Accepts:Any + Text;[footer]; + MarkupTagBlock - [26..32)::6 - [
    ] + MarkupTextLiteral - [26..32)::6 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupElement - [32..39)::7 + MarkupTagBlock - [32..39)::7 - [] + MarkupTextLiteral - [32..39)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[span]; + CloseAngle;[>]; + MarkupTextLiteral - [39..41)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_SelfClosingTags.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_SelfClosingTags.cspans.txt new file mode 100644 index 000000000..68917ae59 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_SelfClosingTags.cspans.txt @@ -0,0 +1,5 @@ +Markup span at (0:0,0 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [22] ) +Markup span at (2:1,0 [5] ) (Accepts:Any) - Parent: Tag block at (2:1,0 [5] ) +Markup span at (7:1,5 [3] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [22] ) +Markup span at (10:1,8 [10] ) (Accepts:Any) - Parent: Tag block at (10:1,8 [10] ) +Markup span at (20:1,18 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [22] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_SelfClosingTags.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_SelfClosingTags.stree.txt new file mode 100644 index 000000000..d8fe2f2b5 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_SelfClosingTags.stree.txt @@ -0,0 +1,23 @@ +RazorDocument - [0..22)::22 - [LF
    FooLF] + MarkupBlock - [0..22)::22 + MarkupTextLiteral - [0..2)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupElement - [2..7)::5 + MarkupTagBlock - [2..7)::5 - [
    ] + MarkupTextLiteral - [2..7)::5 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTextLiteral - [7..10)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupElement - [10..20)::10 + MarkupTagBlock - [10..20)::10 - [] + MarkupTextLiteral - [10..20)::10 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[custom]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTextLiteral - [20..22)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_StartTagsWithMissingEndTags.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_StartTagsWithMissingEndTags.cspans.txt new file mode 100644 index 000000000..23600f15f --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_StartTagsWithMissingEndTags.cspans.txt @@ -0,0 +1,7 @@ +Markup span at (0:0,0 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [59] ) +Markup span at (2:1,0 [5] ) (Accepts:Any) - Parent: Tag block at (2:1,0 [5] ) +Markup span at (7:1,5 [15] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [59] ) +Markup span at (22:3,4 [3] ) (Accepts:Any) - Parent: Tag block at (22:3,4 [3] ) +Markup span at (25:3,7 [23] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [59] ) +Markup span at (48:5,8 [9] ) (Accepts:Any) - Parent: Tag block at (48:5,8 [9] ) +Markup span at (57:5,17 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [59] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_StartTagsWithMissingEndTags.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_StartTagsWithMissingEndTags.stree.txt new file mode 100644 index 000000000..6ded51cb3 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_StartTagsWithMissingEndTags.stree.txt @@ -0,0 +1,37 @@ +RazorDocument - [0..59)::59 - [LF
    LF FooLF

    LF BarLF LF] + MarkupBlock - [0..59)::59 + MarkupTextLiteral - [0..2)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupElement - [2..59)::57 + MarkupTagBlock - [2..7)::5 - [

    ] + MarkupTextLiteral - [2..7)::5 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [7..22)::15 - [LF FooLF ] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Whitespace;[ ]; + Text;[Foo]; + NewLine;[LF]; + Whitespace;[ ]; + MarkupElement - [22..59)::37 + MarkupTagBlock - [22..25)::3 - [

    ] + MarkupTextLiteral - [22..25)::3 - [

    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [25..48)::23 - [LF BarLF ] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Whitespace;[ ]; + Text;[Bar]; + NewLine;[LF]; + Whitespace;[ ]; + MarkupElement - [48..57)::9 + MarkupTagBlock - [48..57)::9 - [] + MarkupTextLiteral - [48..57)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [57..59)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidNestedTags.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidNestedTags.cspans.txt new file mode 100644 index 000000000..63be5f5b1 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidNestedTags.cspans.txt @@ -0,0 +1,8 @@ +Markup span at (0:0,0 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [49] ) +Markup span at (2:1,0 [5] ) (Accepts:Any) - Parent: Tag block at (2:1,0 [5] ) +Markup span at (7:1,5 [15] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [49] ) +Markup span at (22:3,4 [3] ) (Accepts:Any) - Parent: Tag block at (22:3,4 [3] ) +Markup span at (25:3,7 [3] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [49] ) +Markup span at (28:3,10 [4] ) (Accepts:Any) - Parent: Tag block at (28:3,10 [4] ) +Markup span at (32:3,14 [11] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [49] ) +Markup span at (43:5,0 [6] ) (Accepts:Any) - Parent: Tag block at (43:5,0 [6] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidNestedTags.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidNestedTags.stree.txt new file mode 100644 index 000000000..2ed5c377e --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidNestedTags.stree.txt @@ -0,0 +1,41 @@ +RazorDocument - [0..49)::49 - [LF

    LF FooLF

    Bar

    LF BazLF
    ] + MarkupBlock - [0..49)::49 + MarkupTextLiteral - [0..2)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupElement - [2..49)::47 + MarkupTagBlock - [2..7)::5 - [
    ] + MarkupTextLiteral - [2..7)::5 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [7..22)::15 - [LF FooLF ] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Whitespace;[ ]; + Text;[Foo]; + NewLine;[LF]; + Whitespace;[ ]; + MarkupElement - [22..32)::10 + MarkupTagBlock - [22..25)::3 - [

    ] + MarkupTextLiteral - [22..25)::3 - [

    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [25..28)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupTagBlock - [28..32)::4 - [

    ] + MarkupTextLiteral - [28..32)::4 - [

    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [32..43)::11 - [LF BazLF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Whitespace;[ ]; + Text;[Baz]; + NewLine;[LF]; + MarkupTagBlock - [43..49)::6 - [
    ] + MarkupTextLiteral - [43..49)::6 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidNestedTagsMixedWithCode.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidNestedTagsMixedWithCode.cspans.txt new file mode 100644 index 000000000..27e228bcc --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidNestedTagsMixedWithCode.cspans.txt @@ -0,0 +1,16 @@ +Markup span at (0:0,0 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [66] ) +Markup span at (2:1,0 [5] ) (Accepts:Any) - Parent: Tag block at (2:1,0 [5] ) +Markup span at (7:1,5 [15] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [66] ) +Markup span at (22:3,4 [3] ) (Accepts:Any) - Parent: Tag block at (22:3,4 [3] ) +Transition span at (25:3,7 [1] ) (Accepts:None) - Parent: Expression block at (25:3,7 [4] ) +Code span at (26:3,8 [3] ) (Accepts:NonWhitespace) - Parent: Expression block at (25:3,7 [4] ) +Markup span at (29:3,11 [4] ) (Accepts:Any) - Parent: Tag block at (29:3,11 [4] ) +Markup span at (33:3,15 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [66] ) +Code span at (35:4,0 [4] ) (Accepts:Any) - Parent: Statement block at (35:4,0 [21] ) +Transition span at (39:4,4 [1] ) (Accepts:None) - Parent: Statement block at (39:4,4 [17] ) +MetaCode span at (40:4,5 [1] ) (Accepts:None) - Parent: Statement block at (39:4,4 [17] ) +Code span at (41:4,6 [14] ) (Accepts:Any) - Parent: Statement block at (39:4,4 [17] ) +MetaCode span at (55:4,20 [1] ) (Accepts:None) - Parent: Statement block at (39:4,4 [17] ) +Markup span at (56:4,21 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [66] ) +Markup span at (58:5,0 [6] ) (Accepts:Any) - Parent: Tag block at (58:5,0 [6] ) +Markup span at (64:5,6 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [66] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidNestedTagsMixedWithCode.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidNestedTagsMixedWithCode.stree.txt new file mode 100644 index 000000000..e02aadd04 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidNestedTagsMixedWithCode.stree.txt @@ -0,0 +1,71 @@ +RazorDocument - [0..66)::66 - [LF
    LF FooLF

    @Bar

    LF @{ var x = Bar; }LF
    LF] + MarkupBlock - [0..66)::66 + MarkupTextLiteral - [0..2)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupElement - [2..64)::62 + MarkupTagBlock - [2..7)::5 - [
    ] + MarkupTextLiteral - [2..7)::5 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [7..22)::15 - [LF FooLF ] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Whitespace;[ ]; + Text;[Foo]; + NewLine;[LF]; + Whitespace;[ ]; + MarkupElement - [22..33)::11 + MarkupTagBlock - [22..25)::3 - [

    ] + MarkupTextLiteral - [22..25)::3 - [

    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + CSharpCodeBlock - [25..29)::4 + CSharpImplicitExpression - [25..29)::4 + CSharpTransition - [25..26)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [26..29)::3 + CSharpCodeBlock - [26..29)::3 + CSharpExpressionLiteral - [26..29)::3 - [Bar] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[Bar]; + MarkupTagBlock - [29..33)::4 - [

    ] + MarkupTextLiteral - [29..33)::4 - [

    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [33..35)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [35..56)::21 + CSharpStatementLiteral - [35..39)::4 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + CSharpStatement - [39..56)::17 + CSharpTransition - [39..40)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [40..56)::16 + RazorMetaCode - [40..41)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [41..55)::14 + CSharpStatementLiteral - [41..55)::14 - [ var x = Bar; ] - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[x]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[Bar]; + Semicolon;[;]; + Whitespace;[ ]; + RazorMetaCode - [55..56)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [56..58)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupTagBlock - [58..64)::6 - [
    ] + MarkupTextLiteral - [58..64)::6 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [64..66)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidTags.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidTags.cspans.txt new file mode 100644 index 000000000..cbaaaf377 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidTags.cspans.txt @@ -0,0 +1,9 @@ +Markup span at (0:0,0 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [30] ) +Markup span at (2:1,0 [5] ) (Accepts:Any) - Parent: Tag block at (2:1,0 [5] ) +Markup span at (7:1,5 [3] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [30] ) +Markup span at (10:1,8 [6] ) (Accepts:Any) - Parent: Tag block at (10:1,8 [6] ) +Markup span at (16:1,14 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [30] ) +Markup span at (18:2,0 [3] ) (Accepts:Any) - Parent: Tag block at (18:2,0 [3] ) +Markup span at (21:2,3 [3] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [30] ) +Markup span at (24:2,6 [4] ) (Accepts:Any) - Parent: Tag block at (24:2,6 [4] ) +Markup span at (28:2,10 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [30] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidTags.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidTags.stree.txt new file mode 100644 index 000000000..b728f69df --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/MarkupElementRewriterTest/Rewrites_ValidTags.stree.txt @@ -0,0 +1,36 @@ +RazorDocument - [0..30)::30 - [LF
    Foo
    LF

    Bar

    LF] + MarkupBlock - [0..30)::30 + MarkupTextLiteral - [0..2)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupElement - [2..16)::14 + MarkupTagBlock - [2..7)::5 - [
    ] + MarkupTextLiteral - [2..7)::5 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [7..10)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTagBlock - [10..16)::6 - [
    ] + MarkupTextLiteral - [10..16)::6 - [
    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [16..18)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupElement - [18..28)::10 + MarkupTagBlock - [18..21)::3 - [

    ] + MarkupTextLiteral - [18..21)::3 - [

    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [21..24)::3 - [Bar] - Gen - SpanEditHandler;Accepts:Any + Text;[Bar]; + MarkupTagBlock - [24..28)::4 - [

    ] + MarkupTextLiteral - [24..28)::4 - [

    ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [28..30)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures1.stree.txt index 4dbeb051a..b808d1118 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures1.stree.txt @@ -1,3 +1,14 @@ -Markup block - Gen - 15 - (0:0,0) - Tag block - Gen - 15 - (0:0,0) - input - InputTagHelper1 - InputTagHelper2 - StartTagAndEndTag - ... +RazorDocument - [0..15)::15 - [] + MarkupBlock - [0..15)::15 + MarkupTagHelperElement - [0..15)::15 - input[StartTagAndEndTag] - InputTagHelper1 - InputTagHelper2 + MarkupTagHelperStartTag - [0..7)::7 + MarkupTextLiteral - [0..7)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [7..15)::8 + MarkupTextLiteral - [7..15)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[input]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures2.stree.txt index b44a4b21d..db3dcb140 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures2.stree.txt @@ -1,3 +1,10 @@ -Markup block - Gen - 9 - (0:0,0) - Tag block - Gen - 9 - (0:0,0) - input - InputTagHelper1 - InputTagHelper2 - SelfClosing - +RazorDocument - [0..9)::9 - [] + MarkupBlock - [0..9)::9 + MarkupTagHelperElement - [0..9)::9 - input[SelfClosing] - InputTagHelper1 - InputTagHelper2 + MarkupTagHelperStartTag - [0..9)::9 + MarkupTextLiteral - [0..9)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures3.stree.txt index 2102dbe69..5ff3c5be2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures3.stree.txt @@ -1,6 +1,23 @@ -Markup block - Gen - 19 - (0:0,0) - Tag block - Gen - 19 - (0:0,0) - input - InputTagHelper1 - InputTagHelper2 - StartTagOnly - - type - SingleQuotes - Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Text;[text]; +RazorDocument - [0..19)::19 - [] + MarkupBlock - [0..19)::19 + MarkupTagHelperElement - [0..19)::19 - input[StartTagOnly] - InputTagHelper1 - InputTagHelper2 + MarkupTagHelperStartTag - [0..19)::19 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..18)::12 - type - SingleQuotes - Unbound - [ type='text'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..11)::4 - [type] - Gen - SpanEditHandler;Accepts:Any + Text;[type]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [13..17)::4 + MarkupLiteralAttributeValue - [13..17)::4 - [text] + MarkupTextLiteral - [13..17)::4 - [text] - Gen - SpanEditHandler;Accepts:Any + Text;[text]; + MarkupTextLiteral - [17..18)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [18..19)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures4.stree.txt index ebca51245..f1523da71 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures4.stree.txt @@ -1,5 +1,14 @@ -Markup block - Gen - 14 - (0:0,0) - Tag block - Gen - 7 - (0:0,0) - input - InputTagHelper1 - InputTagHelper2 - StartTagOnly - - Tag block - Gen - 7 - (7:0,7) - input - InputTagHelper1 - InputTagHelper2 - StartTagOnly - +RazorDocument - [0..14)::14 - [] + MarkupBlock - [0..14)::14 + MarkupTagHelperElement - [0..7)::7 - input[StartTagOnly] - InputTagHelper1 - InputTagHelper2 + MarkupTagHelperStartTag - [0..7)::7 + MarkupTextLiteral - [0..7)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; + MarkupTagHelperElement - [7..14)::7 - input[StartTagOnly] - InputTagHelper1 - InputTagHelper2 + MarkupTagHelperStartTag - [7..14)::7 + MarkupTextLiteral - [7..14)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures5.stree.txt index 98ba558c6..01d07394e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures5.stree.txt @@ -1,6 +1,29 @@ -Markup block - Gen - 27 - (0:0,0) - Tag block - Gen - 27 - (0:0,0) - input - InputTagHelper1 - InputTagHelper2 - StartTagAndEndTag - ... - type - SingleQuotes - Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Text;[text]; +RazorDocument - [0..27)::27 - [] + MarkupBlock - [0..27)::27 + MarkupTagHelperElement - [0..27)::27 - input[StartTagAndEndTag] - InputTagHelper1 - InputTagHelper2 + MarkupTagHelperStartTag - [0..19)::19 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..18)::12 - type - SingleQuotes - Unbound - [ type='text'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..11)::4 - [type] - Gen - SpanEditHandler;Accepts:Any + Text;[type]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [13..17)::4 + MarkupLiteralAttributeValue - [13..17)::4 - [text] + MarkupTextLiteral - [13..17)::4 - [text] - Gen - SpanEditHandler;Accepts:Any + Text;[text]; + MarkupTextLiteral - [17..18)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [18..19)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [19..27)::8 + MarkupTextLiteral - [19..27)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[input]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures6.stree.txt index b44a4b21d..db3dcb140 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures6.stree.txt @@ -1,3 +1,10 @@ -Markup block - Gen - 9 - (0:0,0) - Tag block - Gen - 9 - (0:0,0) - input - InputTagHelper1 - InputTagHelper2 - SelfClosing - +RazorDocument - [0..9)::9 - [] + MarkupBlock - [0..9)::9 + MarkupTagHelperElement - [0..9)::9 - input[SelfClosing] - InputTagHelper1 - InputTagHelper2 + MarkupTagHelperStartTag - [0..9)::9 + MarkupTextLiteral - [0..9)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures7.stree.txt index b44a4b21d..db3dcb140 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/AllowsCompatibleTagStructures7.stree.txt @@ -1,3 +1,10 @@ -Markup block - Gen - 9 - (0:0,0) - Tag block - Gen - 9 - (0:0,0) - input - InputTagHelper1 - InputTagHelper2 - SelfClosing - +RazorDocument - [0..9)::9 - [] + MarkupBlock - [0..9)::9 + MarkupTagHelperElement - [0..9)::9 - input[SelfClosing] - InputTagHelper1 - InputTagHelper2 + MarkupTagHelperStartTag - [0..9)::9 + MarkupTextLiteral - [0..9)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes1.diag.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes1.diag.txt new file mode 100644 index 000000000..7854af144 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes1.diag.txt @@ -0,0 +1,5 @@ +(0,0): Error RZ3003: Invalid tag helper bound property '[item]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[item]' because the name contains a '[' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[item]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[item]' because the name contains a ']' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[(item)]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[(item)]' because the name contains a '[' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[(item)]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[(item)]' because the name contains a ']' character. +(0,0): Error RZ3003: Invalid tag helper bound property '*something' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '*something' because the name contains a '*' character. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes1.stree.txt index ad29f8c58..a7cce2797 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes1.stree.txt @@ -1,7 +1,35 @@ -Markup block - Gen - 30 - (0:0,0) - Tag block - Gen - 30 - (0:0,0) - ul - CatchAllTagHelper - StartTagAndEndTag -
      ...
    - bound - Minimized - [item] - SingleQuotes - Code span - Gen - [items] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (18:0,18) - Tokens:1 - SyntaxKind.Text;[items]; +RazorDocument - [0..30)::30 - [
      ] + MarkupBlock - [0..30)::30 + MarkupTagHelperElement - [0..30)::30 - ul[StartTagAndEndTag] - CatchAllTagHelper + MarkupTagHelperStartTag - [0..25)::25 + MarkupTextLiteral - [0..3)::3 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[ul]; + MarkupMinimizedTagHelperAttribute - [3..9)::6 - bound - Minimized - Unbound - [ bound] + MarkupTextLiteral - [3..4)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [4..9)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + MarkupTagHelperAttribute - [9..24)::15 - [item] - SingleQuotes - Bound - [ [item]='items'] + MarkupTextLiteral - [9..10)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [10..16)::6 - [[item]] - Gen - SpanEditHandler;Accepts:Any + LeftBracket;[[]; + Text;[item]; + RightBracket;[]]; + Equals;[=]; + MarkupTextLiteral - [17..18)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [18..23)::5 + CSharpExpressionLiteral - [18..23)::5 - [items] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[items]; + MarkupTextLiteral - [23..24)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [24..25)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [25..30)::5 + MarkupTextLiteral - [25..30)::5 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[ul]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes2.diag.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes2.diag.txt new file mode 100644 index 000000000..7854af144 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes2.diag.txt @@ -0,0 +1,5 @@ +(0,0): Error RZ3003: Invalid tag helper bound property '[item]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[item]' because the name contains a '[' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[item]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[item]' because the name contains a ']' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[(item)]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[(item)]' because the name contains a '[' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[(item)]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[(item)]' because the name contains a ']' character. +(0,0): Error RZ3003: Invalid tag helper bound property '*something' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '*something' because the name contains a '*' character. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes2.stree.txt index 904af28c5..d05b1ec9b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes2.stree.txt @@ -1,7 +1,35 @@ -Markup block - Gen - 32 - (0:0,0) - Tag block - Gen - 32 - (0:0,0) - ul - CatchAllTagHelper - StartTagAndEndTag -
        ...
      - bound - Minimized - [(item)] - SingleQuotes - Code span - Gen - [items] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (20:0,20) - Tokens:1 - SyntaxKind.Text;[items]; +RazorDocument - [0..32)::32 - [
        ] + MarkupBlock - [0..32)::32 + MarkupTagHelperElement - [0..32)::32 - ul[StartTagAndEndTag] - CatchAllTagHelper + MarkupTagHelperStartTag - [0..27)::27 + MarkupTextLiteral - [0..3)::3 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[ul]; + MarkupMinimizedTagHelperAttribute - [3..9)::6 - bound - Minimized - Unbound - [ bound] + MarkupTextLiteral - [3..4)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [4..9)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + MarkupTagHelperAttribute - [9..26)::17 - [(item)] - SingleQuotes - Bound - [ [(item)]='items'] + MarkupTextLiteral - [9..10)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [10..18)::8 - [[(item)]] - Gen - SpanEditHandler;Accepts:Any + LeftBracket;[[]; + Text;[(item)]; + RightBracket;[]]; + Equals;[=]; + MarkupTextLiteral - [19..20)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [20..25)::5 + CSharpExpressionLiteral - [20..25)::5 - [items] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[items]; + MarkupTextLiteral - [25..26)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [26..27)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [27..32)::5 + MarkupTextLiteral - [27..32)::5 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[ul]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes3.diag.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes3.diag.txt new file mode 100644 index 000000000..7854af144 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes3.diag.txt @@ -0,0 +1,5 @@ +(0,0): Error RZ3003: Invalid tag helper bound property '[item]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[item]' because the name contains a '[' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[item]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[item]' because the name contains a ']' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[(item)]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[(item)]' because the name contains a '[' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[(item)]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[(item)]' because the name contains a ']' character. +(0,0): Error RZ3003: Invalid tag helper bound property '*something' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '*something' because the name contains a '*' character. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes3.stree.txt index ab79e046b..a039e44df 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes3.stree.txt @@ -1,12 +1,37 @@ -Markup block - Gen - 55 - (0:0,0) - Tag block - Gen - 55 - (0:0,0) - button - CatchAllTagHelper - StartTagAndEndTag - - bound - Minimized - (click) - SingleQuotes - Code span - Gen - [doSomething()] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (23:0,23) - Tokens:1 - SyntaxKind.Text;[doSomething()]; - SyntaxKind.HtmlTextLiteral - [Click Me] - [38..46) - FullWidth: 8 - Slots: 1 - SyntaxKind.List - [Click Me] - [38..46) - FullWidth: 8 - Slots: 3 - SyntaxKind.Text;[Click]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Me]; +RazorDocument - [0..55)::55 - [] + MarkupBlock - [0..55)::55 + MarkupTagHelperElement - [0..55)::55 - button[StartTagAndEndTag] - CatchAllTagHelper + MarkupTagHelperStartTag - [0..38)::38 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[button]; + MarkupMinimizedTagHelperAttribute - [7..13)::6 - bound - Minimized - Unbound - [ bound] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..13)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + MarkupTagHelperAttribute - [13..37)::24 - (click) - SingleQuotes - Bound - [ (click)='doSomething()'] + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [14..21)::7 - [(click)] - Gen - SpanEditHandler;Accepts:Any + Text;[(click)]; + Equals;[=]; + MarkupTextLiteral - [22..23)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [23..36)::13 + CSharpExpressionLiteral - [23..36)::13 - [doSomething()] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[doSomething()]; + MarkupTextLiteral - [36..37)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [37..38)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [38..46)::8 - [Click Me] - Gen - SpanEditHandler;Accepts:Any + Text;[Click]; + Whitespace;[ ]; + Text;[Me]; + MarkupTagHelperEndTag - [46..55)::9 + MarkupTextLiteral - [46..55)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[button]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes4.diag.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes4.diag.txt new file mode 100644 index 000000000..7854af144 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes4.diag.txt @@ -0,0 +1,5 @@ +(0,0): Error RZ3003: Invalid tag helper bound property '[item]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[item]' because the name contains a '[' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[item]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[item]' because the name contains a ']' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[(item)]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[(item)]' because the name contains a '[' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[(item)]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[(item)]' because the name contains a ']' character. +(0,0): Error RZ3003: Invalid tag helper bound property '*something' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '*something' because the name contains a '*' character. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes4.stree.txt index 57140b16a..70377c3b3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes4.stree.txt @@ -1,12 +1,37 @@ -Markup block - Gen - 56 - (0:0,0) - Tag block - Gen - 56 - (0:0,0) - button - CatchAllTagHelper - StartTagAndEndTag - - bound - Minimized - (^click) - SingleQuotes - Code span - Gen - [doSomething()] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (24:0,24) - Tokens:1 - SyntaxKind.Text;[doSomething()]; - SyntaxKind.HtmlTextLiteral - [Click Me] - [39..47) - FullWidth: 8 - Slots: 1 - SyntaxKind.List - [Click Me] - [39..47) - FullWidth: 8 - Slots: 3 - SyntaxKind.Text;[Click]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Me]; +RazorDocument - [0..56)::56 - [] + MarkupBlock - [0..56)::56 + MarkupTagHelperElement - [0..56)::56 - button[StartTagAndEndTag] - CatchAllTagHelper + MarkupTagHelperStartTag - [0..39)::39 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[button]; + MarkupMinimizedTagHelperAttribute - [7..13)::6 - bound - Minimized - Unbound - [ bound] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..13)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + MarkupTagHelperAttribute - [13..38)::25 - (^click) - SingleQuotes - Bound - [ (^click)='doSomething()'] + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [14..22)::8 - [(^click)] - Gen - SpanEditHandler;Accepts:Any + Text;[(^click)]; + Equals;[=]; + MarkupTextLiteral - [23..24)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [24..37)::13 + CSharpExpressionLiteral - [24..37)::13 - [doSomething()] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[doSomething()]; + MarkupTextLiteral - [37..38)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [38..39)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [39..47)::8 - [Click Me] - Gen - SpanEditHandler;Accepts:Any + Text;[Click]; + Whitespace;[ ]; + Text;[Me]; + MarkupTagHelperEndTag - [47..56)::9 + MarkupTextLiteral - [47..56)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[button]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes5.diag.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes5.diag.txt new file mode 100644 index 000000000..7854af144 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes5.diag.txt @@ -0,0 +1,5 @@ +(0,0): Error RZ3003: Invalid tag helper bound property '[item]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[item]' because the name contains a '[' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[item]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[item]' because the name contains a ']' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[(item)]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[(item)]' because the name contains a '[' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[(item)]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[(item)]' because the name contains a ']' character. +(0,0): Error RZ3003: Invalid tag helper bound property '*something' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '*something' because the name contains a '*' character. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes5.stree.txt index 920c93304..c8a8a2866 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes5.stree.txt @@ -1,7 +1,34 @@ -Markup block - Gen - 46 - (0:0,0) - Tag block - Gen - 46 - (0:0,0) - template - CatchAllTagHelper - StartTagAndEndTag - - bound - Minimized - *something - SingleQuotes - Markup span - Gen - [value] - SpanEditHandler;Accepts:Any - (28:0,28) - Tokens:1 - SyntaxKind.Text;[value]; +RazorDocument - [0..46)::46 - [] + MarkupBlock - [0..46)::46 + MarkupTagHelperElement - [0..46)::46 - template[StartTagAndEndTag] - CatchAllTagHelper + MarkupTagHelperStartTag - [0..35)::35 + MarkupTextLiteral - [0..9)::9 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[template]; + MarkupMinimizedTagHelperAttribute - [9..15)::6 - bound - Minimized - Unbound - [ bound] + MarkupTextLiteral - [9..10)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [10..15)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + MarkupTagHelperAttribute - [15..34)::19 - *something - SingleQuotes - Bound - [ *something='value'] + MarkupTextLiteral - [15..16)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [16..26)::10 - [*something] - Gen - SpanEditHandler;Accepts:Any + Text;[*something]; + Equals;[=]; + MarkupTextLiteral - [27..28)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [28..33)::5 + MarkupLiteralAttributeValue - [28..33)::5 - [value] + MarkupTextLiteral - [28..33)::5 - [value] - Gen - SpanEditHandler;Accepts:Any + Text;[value]; + MarkupTextLiteral - [33..34)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [34..35)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [35..46)::11 + MarkupTextLiteral - [35..46)::11 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[template]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes6.diag.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes6.diag.txt new file mode 100644 index 000000000..7854af144 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes6.diag.txt @@ -0,0 +1,5 @@ +(0,0): Error RZ3003: Invalid tag helper bound property '[item]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[item]' because the name contains a '[' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[item]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[item]' because the name contains a ']' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[(item)]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[(item)]' because the name contains a '[' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[(item)]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[(item)]' because the name contains a ']' character. +(0,0): Error RZ3003: Invalid tag helper bound property '*something' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '*something' because the name contains a '*' character. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes6.stree.txt index 011d30b1d..b50fadba4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes6.stree.txt @@ -1,5 +1,25 @@ -Markup block - Gen - 33 - (0:0,0) - Tag block - Gen - 33 - (0:0,0) - div - CatchAllTagHelper - StartTagAndEndTag -
        ...
        - bound - Minimized - #localminimized - Minimized +RazorDocument - [0..33)::33 - [
        ] + MarkupBlock - [0..33)::33 + MarkupTagHelperElement - [0..33)::33 - div[StartTagAndEndTag] - CatchAllTagHelper + MarkupTagHelperStartTag - [0..27)::27 + MarkupTextLiteral - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + MarkupMinimizedTagHelperAttribute - [4..10)::6 - bound - Minimized - Unbound - [ bound] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + MarkupMinimizedTagHelperAttribute - [10..26)::16 - #localminimized - Minimized - Unbound - [ #localminimized] + MarkupTextLiteral - [10..11)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [11..26)::15 - [#localminimized] - Gen - SpanEditHandler;Accepts:Any + Text;[#localminimized]; + MarkupTextLiteral - [26..27)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [27..33)::6 + MarkupTextLiteral - [27..33)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes7.diag.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes7.diag.txt new file mode 100644 index 000000000..7854af144 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes7.diag.txt @@ -0,0 +1,5 @@ +(0,0): Error RZ3003: Invalid tag helper bound property '[item]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[item]' because the name contains a '[' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[item]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[item]' because the name contains a ']' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[(item)]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[(item)]' because the name contains a '[' character. +(0,0): Error RZ3003: Invalid tag helper bound property '[(item)]' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '[(item)]' because the name contains a ']' character. +(0,0): Error RZ3003: Invalid tag helper bound property '*something' on tag helper 'CatchAllTagHelper'. Tag helpers cannot bind to HTML attributes with name '*something' because the name contains a '*' character. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes7.stree.txt index bf8ef9828..c3dc3b8f3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes7.stree.txt @@ -1,7 +1,34 @@ -Markup block - Gen - 32 - (0:0,0) - Tag block - Gen - 32 - (0:0,0) - div - CatchAllTagHelper - StartTagAndEndTag -
        ...
        - bound - Minimized - #local - SingleQuotes - Markup span - Gen - [value] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.Text;[value]; +RazorDocument - [0..32)::32 - [
        ] + MarkupBlock - [0..32)::32 + MarkupTagHelperElement - [0..32)::32 - div[StartTagAndEndTag] - CatchAllTagHelper + MarkupTagHelperStartTag - [0..26)::26 + MarkupTextLiteral - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + MarkupMinimizedTagHelperAttribute - [4..10)::6 - bound - Minimized - Unbound - [ bound] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + MarkupTagHelperAttribute - [10..25)::15 - #local - SingleQuotes - Bound - [ #local='value'] + MarkupTextLiteral - [10..11)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [11..17)::6 - [#local] - Gen - SpanEditHandler;Accepts:Any + Text;[#local]; + Equals;[=]; + MarkupTextLiteral - [18..19)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [19..24)::5 + MarkupLiteralAttributeValue - [19..24)::5 - [value] + MarkupTextLiteral - [19..24)::5 - [value] - Gen - SpanEditHandler;Accepts:Any + Text;[value]; + MarkupTextLiteral - [24..25)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [25..26)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [26..32)::6 + MarkupTextLiteral - [26..32)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure1.stree.txt index 64f951bb8..764c76b22 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure1.stree.txt @@ -1,3 +1,8 @@ -Markup block - Gen - 7 - (0:0,0) - Tag block - Gen - 7 - (0:0,0) - input - InputTagHelper - StartTagOnly - +RazorDocument - [0..7)::7 - [] + MarkupBlock - [0..7)::7 + MarkupTagHelperElement - [0..7)::7 - input[StartTagOnly] - InputTagHelper + MarkupTagHelperStartTag - [0..7)::7 + MarkupTextLiteral - [0..7)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure2.stree.txt index aca74df1f..ef3f989c7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure2.stree.txt @@ -1,6 +1,23 @@ -Markup block - Gen - 19 - (0:0,0) - Tag block - Gen - 19 - (0:0,0) - input - InputTagHelper - StartTagOnly - - type - SingleQuotes - Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Text;[text]; +RazorDocument - [0..19)::19 - [] + MarkupBlock - [0..19)::19 + MarkupTagHelperElement - [0..19)::19 - input[StartTagOnly] - InputTagHelper + MarkupTagHelperStartTag - [0..19)::19 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..18)::12 - type - SingleQuotes - Unbound - [ type='text'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..11)::4 - [type] - Gen - SpanEditHandler;Accepts:Any + Text;[type]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [13..17)::4 + MarkupLiteralAttributeValue - [13..17)::4 - [text] + MarkupTextLiteral - [13..17)::4 - [text] - Gen - SpanEditHandler;Accepts:Any + Text;[text]; + MarkupTextLiteral - [17..18)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [18..19)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure3.stree.txt index 5940efaad..6ab1d8b0a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure3.stree.txt @@ -1,5 +1,14 @@ -Markup block - Gen - 14 - (0:0,0) - Tag block - Gen - 7 - (0:0,0) - input - InputTagHelper - StartTagOnly - - Tag block - Gen - 7 - (7:0,7) - input - InputTagHelper - StartTagOnly - +RazorDocument - [0..14)::14 - [] + MarkupBlock - [0..14)::14 + MarkupTagHelperElement - [0..7)::7 - input[StartTagOnly] - InputTagHelper + MarkupTagHelperStartTag - [0..7)::7 + MarkupTextLiteral - [0..7)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; + MarkupTagHelperElement - [7..14)::7 - input[StartTagOnly] - InputTagHelper + MarkupTagHelperStartTag - [7..14)::7 + MarkupTextLiteral - [7..14)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure4.stree.txt index e79b6cc22..a0ed923db 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure4.stree.txt @@ -1,8 +1,29 @@ -Markup block - Gen - 26 - (0:0,0) - Tag block - Gen - 19 - (0:0,0) - input - InputTagHelper - StartTagOnly - - type - SingleQuotes - Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Text;[text]; - Tag block - Gen - 7 - (19:0,19) - input - InputTagHelper - StartTagOnly - +RazorDocument - [0..26)::26 - [] + MarkupBlock - [0..26)::26 + MarkupTagHelperElement - [0..19)::19 - input[StartTagOnly] - InputTagHelper + MarkupTagHelperStartTag - [0..19)::19 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..18)::12 - type - SingleQuotes - Unbound - [ type='text'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..11)::4 - [type] - Gen - SpanEditHandler;Accepts:Any + Text;[type]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [13..17)::4 + MarkupLiteralAttributeValue - [13..17)::4 - [text] + MarkupTextLiteral - [13..17)::4 - [text] - Gen - SpanEditHandler;Accepts:Any + Text;[text]; + MarkupTextLiteral - [17..18)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [18..19)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperElement - [19..26)::7 - input[StartTagOnly] - InputTagHelper + MarkupTagHelperStartTag - [19..26)::7 + MarkupTextLiteral - [19..26)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure5.stree.txt index f78886eb6..39b59d94d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleWithoutEndTagTagStructure5.stree.txt @@ -1,16 +1,25 @@ -Markup block - Gen - 25 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (5:0,5) - input - InputTagHelper - StartTagOnly - - Tag block - Gen - 7 - (12:0,12) - input - InputTagHelper - StartTagOnly - - Tag block - Gen - 6 - (19:0,19) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..25)::25 - [
        ] + MarkupBlock - [0..25)::25 + MarkupTagBlock - [0..5)::5 - [
        ] + MarkupTextLiteral - [0..5)::5 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTagHelperElement - [5..12)::7 - input[StartTagOnly] - InputTagHelper + MarkupTagHelperStartTag - [5..12)::7 + MarkupTextLiteral - [5..12)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; + MarkupTagHelperElement - [12..19)::7 - input[StartTagOnly] - InputTagHelper + MarkupTagHelperStartTag - [12..19)::7 + MarkupTextLiteral - [12..19)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; + MarkupTagBlock - [19..25)::6 - [
        ] + MarkupTextLiteral - [19..25)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes1.stree.txt index 94077ed99..a262c5ff0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes1.stree.txt @@ -1,5 +1,22 @@ -Markup block - Gen - 17 - (0:0,0) - Tag block - Gen - 17 - (0:0,0) - myth - mythTagHelper - SelfClosing - - bound - SingleQuotes - Markup block - Gen - 0 - (0:0,0) +RazorDocument - [0..17)::17 - [] + MarkupBlock - [0..17)::17 + MarkupTagHelperElement - [0..17)::17 - myth[SelfClosing] - mythTagHelper + MarkupTagHelperStartTag - [0..17)::17 + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[myth]; + MarkupTagHelperAttribute - [5..14)::9 - bound - SingleQuotes - Bound - [ bound=''] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [13..13)::0 + MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [14..17)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes10.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes10.stree.txt index 1e5707cb2..ae6f222d4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes10.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes10.stree.txt @@ -1,5 +1,22 @@ -Markup block - Gen - 17 - (0:0,0) - Tag block - Gen - 17 - (0:0,0) - myth - mythTagHelper - SelfClosing - - BouND - SingleQuotes - Markup block - Gen - 0 - (0:0,0) +RazorDocument - [0..17)::17 - [] + MarkupBlock - [0..17)::17 + MarkupTagHelperElement - [0..17)::17 - myth[SelfClosing] - mythTagHelper + MarkupTagHelperStartTag - [0..17)::17 + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[myth]; + MarkupTagHelperAttribute - [5..14)::9 - BouND - SingleQuotes - Bound - [ BouND=''] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [BouND] - Gen - SpanEditHandler;Accepts:Any + Text;[BouND]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [13..13)::0 + MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [14..17)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes11.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes11.stree.txt index 895d34342..c86964422 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes11.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes11.stree.txt @@ -1,7 +1,33 @@ -Markup block - Gen - 29 - (0:0,0) - Tag block - Gen - 29 - (0:0,0) - myth - mythTagHelper - SelfClosing - - BOUND - SingleQuotes - Markup block - Gen - 0 - (0:0,0) - bOUnd - DoubleQuotes - Markup block - Gen - 0 - (0:0,0) +RazorDocument - [0..29)::29 - [] + MarkupBlock - [0..29)::29 + MarkupTagHelperElement - [0..29)::29 - myth[SelfClosing] - mythTagHelper + MarkupTagHelperStartTag - [0..29)::29 + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[myth]; + MarkupTagHelperAttribute - [5..14)::9 - BOUND - SingleQuotes - Bound - [ BOUND=''] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [BOUND] - Gen - SpanEditHandler;Accepts:Any + Text;[BOUND]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [13..13)::0 + MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttribute - [14..26)::12 - bOUnd - DoubleQuotes - Bound - [ bOUnd=""] + MarkupTextLiteral - [14..18)::4 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [18..23)::5 - [bOUnd] - Gen - SpanEditHandler;Accepts:Any + Text;[bOUnd]; + Equals;[=]; + MarkupTextLiteral - [24..25)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [25..25)::0 + MarkupTextLiteral - [25..26)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [26..29)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes12.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes12.stree.txt index 3f7219cfd..42711fb36 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes12.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes12.stree.txt @@ -1,8 +1,37 @@ -Markup block - Gen - 32 - (0:0,0) - Tag block - Gen - 32 - (0:0,0) - myth - mythTagHelper - StartTagAndEndTag - ... - BOUND - DoubleQuotes - Code span - Gen - [] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (12:0,12) - Tokens:0 - nAMe - SingleQuotes - Markup span - Gen - [john] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.Text;[john]; +RazorDocument - [0..32)::32 - [] + MarkupBlock - [0..32)::32 + MarkupTagHelperElement - [0..32)::32 - myth[StartTagAndEndTag] - mythTagHelper + MarkupTagHelperStartTag - [0..25)::25 + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[myth]; + MarkupTagHelperAttribute - [5..12)::7 - BOUND - DoubleQuotes - Bound - [ BOUND=] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [BOUND] - Gen - SpanEditHandler;Accepts:Any + Text;[BOUND]; + Equals;[=]; + MarkupTagHelperAttributeValue - [12..12)::0 + CSharpExpressionLiteral - [12..12)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + MarkupTagHelperAttribute - [12..24)::12 - nAMe - SingleQuotes - Bound - [ nAMe='john'] + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [13..17)::4 - [nAMe] - Gen - SpanEditHandler;Accepts:Any + Text;[nAMe]; + Equals;[=]; + MarkupTextLiteral - [18..19)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [19..23)::4 + MarkupLiteralAttributeValue - [19..23)::4 - [john] + MarkupTextLiteral - [19..23)::4 - [john] - Gen - SpanEditHandler;Accepts:Any + Text;[john]; + MarkupTextLiteral - [23..24)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [24..25)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [25..32)::7 + MarkupTextLiteral - [25..32)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[myth]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes13.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes13.stree.txt index b845c365b..0973fb942 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes13.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes13.stree.txt @@ -1,15 +1,34 @@ -Markup block - Gen - 28 - (0:0,0) - Tag block - Gen - 28 - (0:0,0) - myth - mythTagHelper - SelfClosing - - bound - SingleQuotes - Markup block - Gen - 11 - (13:0,13) - Markup block - Gen - 9 - (13:0,13) - Code span - Gen - [ ] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (13:0,13) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 5 - (17:0,17) - Code span - Gen - [@] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (17:0,17) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [true] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (18:0,18) - Tokens:1 - SyntaxKind.Keyword;[true]; - Code span - Gen - [ ] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (22:0,22) - Tokens:1 - SyntaxKind.Whitespace;[ ]; +RazorDocument - [0..28)::28 - [] + MarkupBlock - [0..28)::28 + MarkupTagHelperElement - [0..28)::28 - myth[SelfClosing] - mythTagHelper + MarkupTagHelperStartTag - [0..28)::28 + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[myth]; + MarkupTagHelperAttribute - [5..25)::20 - bound - SingleQuotes - Bound - [ bound=' @true '] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [13..24)::11 + MarkupDynamicAttributeValue - [13..22)::9 - [ @true] + GenericBlock - [13..22)::9 + CSharpExpressionLiteral - [13..17)::4 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + CSharpCodeBlock - [17..22)::5 + GenericBlock - [17..22)::5 + CSharpExpressionLiteral - [17..18)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Transition;[@]; + CSharpExpressionLiteral - [18..22)::4 - [true] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Keyword;[true]; + CSharpExpressionLiteral - [22..24)::2 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + MarkupTextLiteral - [24..25)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [25..28)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes14.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes14.stree.txt index c9d3cd8f4..fd2dd7e90 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes14.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes14.stree.txt @@ -1,19 +1,38 @@ -Markup block - Gen - 30 - (0:0,0) - Tag block - Gen - 30 - (0:0,0) - myth - mythTagHelper - SelfClosing - - bound - SingleQuotes - Markup block - Gen - 13 - (13:0,13) - Markup block - Gen - 11 - (13:0,13) - Code span - Gen - [ ] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (13:0,13) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 7 - (17:0,17) - Code span - Gen - [@] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (17:0,17) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [(] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (18:0,18) - Tokens:1 - SyntaxKind.LeftParenthesis;[(]; - Code span - Gen - [true] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (19:0,19) - Tokens:1 - SyntaxKind.Keyword;[true]; - Code span - Gen - [)] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (23:0,23) - Tokens:1 - SyntaxKind.RightParenthesis;[)]; - Code span - Gen - [ ] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (24:0,24) - Tokens:1 - SyntaxKind.Whitespace;[ ]; +RazorDocument - [0..30)::30 - [] + MarkupBlock - [0..30)::30 + MarkupTagHelperElement - [0..30)::30 - myth[SelfClosing] - mythTagHelper + MarkupTagHelperStartTag - [0..30)::30 + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[myth]; + MarkupTagHelperAttribute - [5..27)::22 - bound - SingleQuotes - Bound - [ bound=' @(true) '] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [13..26)::13 + MarkupDynamicAttributeValue - [13..24)::11 - [ @(true)] + GenericBlock - [13..24)::11 + CSharpExpressionLiteral - [13..17)::4 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + CSharpCodeBlock - [17..24)::7 + GenericBlock - [17..24)::7 + CSharpExpressionLiteral - [17..18)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Transition;[@]; + CSharpExpressionLiteral - [18..19)::1 - [(] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + LeftParenthesis;[(]; + CSharpExpressionLiteral - [19..23)::4 - [true] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Keyword;[true]; + CSharpExpressionLiteral - [23..24)::1 - [)] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + RightParenthesis;[)]; + CSharpExpressionLiteral - [24..26)::2 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + MarkupTextLiteral - [26..27)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [27..30)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes2.stree.txt index 5e1b11242..57eb5f5e2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes2.stree.txt @@ -1,7 +1,25 @@ -Markup block - Gen - 25 - (0:0,0) - Tag block - Gen - 25 - (0:0,0) - myth - mythTagHelper - SelfClosing - - bound - SingleQuotes - Code span - Gen - [ true] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (13:0,13) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[true]; +RazorDocument - [0..25)::25 - [] + MarkupBlock - [0..25)::25 + MarkupTagHelperElement - [0..25)::25 - myth[SelfClosing] - mythTagHelper + MarkupTagHelperStartTag - [0..25)::25 + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[myth]; + MarkupTagHelperAttribute - [5..22)::17 - bound - SingleQuotes - Bound - [ bound=' true'] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [13..21)::8 + CSharpExpressionLiteral - [13..21)::8 - [ true] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + Text;[true]; + MarkupTextLiteral - [21..22)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [22..25)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes3.stree.txt index 4bb87440b..f231f9a73 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes3.stree.txt @@ -1,6 +1,24 @@ -Markup block - Gen - 21 - (0:0,0) - Tag block - Gen - 21 - (0:0,0) - myth - mythTagHelper - SelfClosing - - bound - SingleQuotes - Code span - Gen - [ ] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (13:0,13) - Tokens:1 - SyntaxKind.Whitespace;[ ]; +RazorDocument - [0..21)::21 - [] + MarkupBlock - [0..21)::21 + MarkupTagHelperElement - [0..21)::21 - myth[SelfClosing] - mythTagHelper + MarkupTagHelperStartTag - [0..21)::21 + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[myth]; + MarkupTagHelperAttribute - [5..18)::13 - bound - SingleQuotes - Bound - [ bound=' '] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [13..17)::4 + CSharpExpressionLiteral - [13..17)::4 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + MarkupTextLiteral - [17..18)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [18..21)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes4.stree.txt index 969f962e5..11ccd79a9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes4.stree.txt @@ -1,7 +1,33 @@ -Markup block - Gen - 27 - (0:0,0) - Tag block - Gen - 27 - (0:0,0) - myth - mythTagHelper - SelfClosing - - bound - SingleQuotes - Markup block - Gen - 0 - (0:0,0) - bound - DoubleQuotes - Markup block - Gen - 0 - (0:0,0) +RazorDocument - [0..27)::27 - [] + MarkupBlock - [0..27)::27 + MarkupTagHelperElement - [0..27)::27 - myth[SelfClosing] - mythTagHelper + MarkupTagHelperStartTag - [0..27)::27 + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[myth]; + MarkupTagHelperAttribute - [5..14)::9 - bound - SingleQuotes - Bound - [ bound=''] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [13..13)::0 + MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttribute - [14..24)::10 - bound - DoubleQuotes - Bound - [ bound=""] + MarkupTextLiteral - [14..16)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [16..21)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + Equals;[=]; + MarkupTextLiteral - [22..23)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [23..23)::0 + MarkupTextLiteral - [23..24)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [24..27)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes5.stree.txt index 9fe79d886..6a180b1e5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes5.stree.txt @@ -1,9 +1,37 @@ -Markup block - Gen - 30 - (0:0,0) - Tag block - Gen - 30 - (0:0,0) - myth - mythTagHelper - SelfClosing - - bound - SingleQuotes - Code span - Gen - [ ] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (13:0,13) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - bound - DoubleQuotes - Code span - Gen - [ ] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (24:0,24) - Tokens:1 - SyntaxKind.Whitespace;[ ]; +RazorDocument - [0..30)::30 - [] + MarkupBlock - [0..30)::30 + MarkupTagHelperElement - [0..30)::30 - myth[SelfClosing] - mythTagHelper + MarkupTagHelperStartTag - [0..30)::30 + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[myth]; + MarkupTagHelperAttribute - [5..15)::10 - bound - SingleQuotes - Bound - [ bound=' '] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [13..14)::1 + CSharpExpressionLiteral - [13..14)::1 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + MarkupTextLiteral - [14..15)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttribute - [15..27)::12 - bound - DoubleQuotes - Bound - [ bound=" "] + MarkupTextLiteral - [15..17)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [17..22)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + Equals;[=]; + MarkupTextLiteral - [23..24)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [24..26)::2 + CSharpExpressionLiteral - [24..26)::2 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + MarkupTextLiteral - [26..27)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [27..30)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes6.stree.txt index 74bc8eaad..6d2664ae0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes6.stree.txt @@ -1,8 +1,32 @@ -Markup block - Gen - 29 - (0:0,0) - Tag block - Gen - 29 - (0:0,0) - myth - mythTagHelper - SelfClosing - - bound - SingleQuotes - Code span - Gen - [true] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (13:0,13) - Tokens:1 - SyntaxKind.Text;[true]; - bound - DoubleQuotes - Code span - Gen - [] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (25:0,25) - Tokens:0 +RazorDocument - [0..29)::29 - [] + MarkupBlock - [0..29)::29 + MarkupTagHelperElement - [0..29)::29 - myth[SelfClosing] - mythTagHelper + MarkupTagHelperStartTag - [0..29)::29 + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[myth]; + MarkupTagHelperAttribute - [5..18)::13 - bound - SingleQuotes - Bound - [ bound='true'] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [13..17)::4 + CSharpExpressionLiteral - [13..17)::4 - [true] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[true]; + MarkupTextLiteral - [17..18)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttribute - [18..25)::7 - bound - DoubleQuotes - Bound - [ bound=] + MarkupTextLiteral - [18..19)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [19..24)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + Equals;[=]; + MarkupTagHelperAttributeValue - [25..25)::0 + CSharpExpressionLiteral - [25..25)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + MarkupTextLiteral - [25..29)::4 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes7.stree.txt index a8883ba89..3c34b2f07 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes7.stree.txt @@ -1,7 +1,30 @@ -Markup block - Gen - 23 - (0:0,0) - Tag block - Gen - 23 - (0:0,0) - myth - mythTagHelper - SelfClosing - - bound - DoubleQuotes - Code span - Gen - [] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (12:0,12) - Tokens:0 - name - SingleQuotes - Markup block - Gen - 0 - (0:0,0) +RazorDocument - [0..23)::23 - [] + MarkupBlock - [0..23)::23 + MarkupTagHelperElement - [0..23)::23 - myth[SelfClosing] - mythTagHelper + MarkupTagHelperStartTag - [0..23)::23 + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[myth]; + MarkupTagHelperAttribute - [5..12)::7 - bound - DoubleQuotes - Bound - [ bound=] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + Equals;[=]; + MarkupTagHelperAttributeValue - [12..12)::0 + CSharpExpressionLiteral - [12..12)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + MarkupTagHelperAttribute - [12..20)::8 - name - SingleQuotes - Bound - [ name=''] + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [13..17)::4 - [name] - Gen - SpanEditHandler;Accepts:Any + Text;[name]; + Equals;[=]; + MarkupTextLiteral - [18..19)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [19..19)::0 + MarkupTextLiteral - [19..20)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [20..23)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes8.stree.txt index 055da346b..85dd4faec 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes8.stree.txt @@ -1,8 +1,33 @@ -Markup block - Gen - 25 - (0:0,0) - Tag block - Gen - 25 - (0:0,0) - myth - mythTagHelper - SelfClosing - - bound - DoubleQuotes - Code span - Gen - [] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (12:0,12) - Tokens:0 - name - SingleQuotes - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.Whitespace;[ ]; +RazorDocument - [0..25)::25 - [] + MarkupBlock - [0..25)::25 + MarkupTagHelperElement - [0..25)::25 - myth[SelfClosing] - mythTagHelper + MarkupTagHelperStartTag - [0..25)::25 + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[myth]; + MarkupTagHelperAttribute - [5..12)::7 - bound - DoubleQuotes - Bound - [ bound=] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + Equals;[=]; + MarkupTagHelperAttributeValue - [12..12)::0 + CSharpExpressionLiteral - [12..12)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + MarkupTagHelperAttribute - [12..22)::10 - name - SingleQuotes - Bound - [ name=' '] + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [13..17)::4 - [name] - Gen - SpanEditHandler;Accepts:Any + Text;[name]; + Equals;[=]; + MarkupTextLiteral - [18..19)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [19..21)::2 + MarkupLiteralAttributeValue - [19..21)::2 - [ ] + MarkupTextLiteral - [19..21)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [21..22)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [22..25)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes9.stree.txt index 35e2d2f71..7dd90b6e4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes9.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes9.stree.txt @@ -1,13 +1,54 @@ -Markup block - Gen - 46 - (0:0,0) - Tag block - Gen - 46 - (0:0,0) - myth - mythTagHelper - SelfClosing - - bound - SingleQuotes - Code span - Gen - [true] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (13:0,13) - Tokens:1 - SyntaxKind.Text;[true]; - name - SingleQuotes - Markup span - Gen - [john] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:1 - SyntaxKind.Text;[john]; - bound - DoubleQuotes - Code span - Gen - [] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (37:0,37) - Tokens:0 - name - DoubleQuotes - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (43:0,43) - Tokens:0 +RazorDocument - [0..46)::46 - [] + MarkupBlock - [0..46)::46 + MarkupTagHelperElement - [0..46)::46 - myth[SelfClosing] - mythTagHelper + MarkupTagHelperStartTag - [0..46)::46 + MarkupTextLiteral - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[myth]; + MarkupTagHelperAttribute - [5..18)::13 - bound - SingleQuotes - Bound - [ bound='true'] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [13..17)::4 + CSharpExpressionLiteral - [13..17)::4 - [true] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[true]; + MarkupTextLiteral - [17..18)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttribute - [18..30)::12 - name - SingleQuotes - Bound - [ name='john'] + MarkupTextLiteral - [18..19)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [19..23)::4 - [name] - Gen - SpanEditHandler;Accepts:Any + Text;[name]; + Equals;[=]; + MarkupTextLiteral - [24..25)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [25..29)::4 + MarkupLiteralAttributeValue - [25..29)::4 - [john] + MarkupTextLiteral - [25..29)::4 - [john] - Gen - SpanEditHandler;Accepts:Any + Text;[john]; + MarkupTextLiteral - [29..30)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttribute - [30..37)::7 - bound - DoubleQuotes - Bound - [ bound=] + MarkupTextLiteral - [30..31)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [31..36)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + Equals;[=]; + MarkupTagHelperAttributeValue - [37..37)::0 + CSharpExpressionLiteral - [37..37)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + MarkupTagHelperAttribute - [37..43)::6 - name - DoubleQuotes - Bound - [ name=] + MarkupTextLiteral - [37..38)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [38..42)::4 - [name] - Gen - SpanEditHandler;Accepts:Any + Text;[name]; + Equals;[=]; + MarkupTagHelperAttributeValue - [43..43)::0 + MarkupTextLiteral - [43..43)::0 - [] + MarkupTextLiteral - [43..46)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper1.stree.txt index a6461887d..2ecc04668 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper1.stree.txt @@ -1,3 +1,7 @@ -Markup block - Gen - 2 - (0:0,0) - Tag block - Gen - 2 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper2.stree.txt index fde439812..186cf6f22 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper2.stree.txt @@ -1,3 +1,13 @@ -Markup block - Gen - 6 - (0:0,0) - Tag block - Gen - 6 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [3..6)::3 + MarkupTextLiteral - [3..6)::3 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper3.stree.txt index ca5b20b10..03d64a025 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper3.stree.txt @@ -1,5 +1,13 @@ -Markup block - Gen - 10 - (0:0,0) - Tag block - Gen - 10 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - Tag block - Gen - 7 - (3:0,3) - strong - strongtaghelper - StartTagAndEndTag - ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..10)::7 - strong[StartTagAndEndTag] - strongtaghelper + MarkupTagHelperStartTag - [3..10)::7 + MarkupTextLiteral - [3..10)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper4.stree.txt index e3c28c4d4..a2c7689c0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper4.stree.txt @@ -1,5 +1,14 @@ -Markup block - Gen - 11 - (0:0,0) - Tag block - Gen - 11 - (0:0,0) - strong - strongtaghelper - StartTagAndEndTag - - 3 - (8:0,8) - p - ptaghelper - StartTagAndEndTag -

        +RazorDocument - [0..11)::11 - [] + MarkupBlock - [0..11)::11 + MarkupTagHelperElement - [0..11)::11 - strong[StartTagAndEndTag] - strongtaghelper + MarkupTagHelperStartTag - [0..8)::8 + MarkupTextLiteral - [0..8)::8 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + Whitespace;[ ]; + MarkupTagHelperElement - [8..11)::3 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [8..11)::3 + MarkupTextLiteral - [8..11)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper5.stree.txt index 605e599c3..257185be8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper5.stree.txt @@ -1,3 +1,13 @@ -Markup block - Gen - 16 - (0:0,0) - Tag block - Gen - 16 - (0:0,0) - strong - strongtaghelper - StartTagAndEndTag - - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + Whitespace;[ ]; + MarkupTagHelperEndTag - [8..16)::8 + MarkupTextLiteral - [8..16)::8 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper6.stree.txt index 509e76037..eb31c8240 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper6.stree.txt @@ -1,20 +1,25 @@ -Markup block - Gen - 16 - (0:0,0) - Tag block - Gen - 1 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 1 - (1:0,1) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 9 - (2:0,2) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ ] - [11..12) - FullWidth: 1 - Slots: 1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 1 - (12:0,12) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 3 - (13:0,13) - p - ptaghelper - StartTagAndEndTag -

        +RazorDocument - [0..16)::16 - [<< <

        ] + MarkupBlock - [0..16)::16 + MarkupTagBlock - [0..1)::1 - [<] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagBlock - [1..2)::1 - [<] + MarkupTextLiteral - [1..2)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagBlock - [2..11)::9 - [] + MarkupTextLiteral - [2..11)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [11..12)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [12..13)::1 - [<] + MarkupTextLiteral - [12..13)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagHelperElement - [13..16)::3 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [13..16)::3 + MarkupTextLiteral - [13..16)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper7.stree.txt index 336b1dea6..978081f9b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper7.stree.txt @@ -1,22 +1,26 @@ -Markup block - Gen - 16 - (0:0,0) - Tag block - Gen - 1 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 1 - (1:0,1) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 14 - (2:0,2) - strong - strongtaghelper - StartTagAndEndTag - - SyntaxKind.HtmlTextLiteral - [> ] - [10..12) - FullWidth: 2 - Slots: 1 - SyntaxKind.List - [> ] - [10..12) - FullWidth: 2 - Slots: 2 - SyntaxKind.CloseAngle;[>]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 1 - (12:0,12) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 2 - (13:0,13) - Markup span - Gen - [<>] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:2 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..16)::16 - [<<> <<>>] + MarkupBlock - [0..16)::16 + MarkupTagBlock - [0..1)::1 - [<] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagBlock - [1..2)::1 - [<] + MarkupTextLiteral - [1..2)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagHelperElement - [2..16)::14 - strong[StartTagAndEndTag] - strongtaghelper + MarkupTagHelperStartTag - [2..10)::8 + MarkupTextLiteral - [2..10)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [10..12)::2 - [> ] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + Whitespace;[ ]; + MarkupTagBlock - [12..13)::1 - [<] + MarkupTextLiteral - [12..13)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagBlock - [13..15)::2 - [<>] + MarkupTextLiteral - [13..15)::2 - [<>] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + CloseAngle;[>]; + MarkupTextLiteral - [15..16)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper8.stree.txt index d82821826..3cf0bb56b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelper8.stree.txt @@ -1,13 +1,24 @@ -Markup block - Gen - 25 - (0:0,0) - Tag block - Gen - 4 - (0:0,0) - Markup span - Gen - [ - 21 - (4:0,4) - strong - strongtaghelper - StartTagAndEndTag - ... - Tag block - Gen - 4 - (12:0,12) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..25)::25 - [

        ] + MarkupBlock - [0..25)::25 + MarkupTagBlock - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[str]; + MarkupTagHelperElement - [4..25)::21 - strong[StartTagAndEndTag] - strongtaghelper + MarkupTagHelperStartTag - [4..12)::8 + MarkupTextLiteral - [4..12)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [12..16)::4 - [

        ] + MarkupTextLiteral - [12..16)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [16..25)::9 + MarkupTextLiteral - [16..25)::9 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes1.stree.txt index 22d283205..8d96abb6a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes1.stree.txt @@ -1,5 +1,17 @@ -Markup block - Gen - 10 - (0:0,0) - Tag block - Gen - 10 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..10)::8 - class - SingleQuotes - Unbound - [ class='] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [10..10)::0 + MarkupTextLiteral - [10..10)::0 - [] diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes10.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes10.stree.txt index 1c6dcfdb7..1e2a6f13b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes10.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes10.stree.txt @@ -1,6 +1,28 @@ -Markup block - Gen - 31 - (0:0,0) - Tag block - Gen - 31 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - class - NoQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..31)::31 - [

        ] + MarkupBlock - [0..31)::31 + MarkupTagHelperElement - [0..31)::31 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..31)::31 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..12)::10 - class - NoQuotes - Unbound - [ class=btn] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTagHelperAttributeValue - [9..12)::3 + MarkupLiteralAttributeValue - [9..12)::3 - [btn] + MarkupTextLiteral - [9..12)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [12..31)::19 - [" bar="foo"] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + Whitespace;[ ]; + Text;[bar]; + Equals;[=]; + DoubleQuote;["]; + Text;[foo]; + DoubleQuote;["]; + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes11.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes11.stree.txt index aee82e9ea..b557217f0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes11.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes11.stree.txt @@ -1,14 +1,37 @@ -Markup block - Gen - 31 - (0:0,0) - Tag block - Gen - 31 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - 8 - (10:0,10) - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - [ bar=] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bar]; - SyntaxKind.Equals;[=]; - foo - Minimized - Tag block - Gen - 8 - (23:0,23) - strong - strongtaghelper - StartTagAndEndTag - +RazorDocument - [0..31)::31 - [

        ] + MarkupBlock - [0..31)::31 + MarkupTagHelperElement - [0..31)::31 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..23)::23 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..19)::17 - class - DoubleQuotes - Unbound - [ class="btn bar="] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..18)::8 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupLiteralAttributeValue - [13..18)::5 - [ bar=] + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [14..18)::4 - [bar=] - Gen - SpanEditHandler;Accepts:Any + Text;[bar]; + Equals;[=]; + MarkupTextLiteral - [18..19)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupMinimizedTagHelperAttribute - [19..23)::4 - foo" - Minimized - Unbound - [foo"] + MarkupTextLiteral - [19..23)::4 - [foo"] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + DoubleQuote;["]; + MarkupTagHelperElement - [23..31)::8 - strong[StartTagAndEndTag] - strongtaghelper + MarkupTagHelperStartTag - [23..31)::8 + MarkupTextLiteral - [23..31)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes12.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes12.stree.txt index 622e414b0..a1e7d384b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes12.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes12.stree.txt @@ -1,12 +1,39 @@ -Markup block - Gen - 28 - (0:0,0) - Tag block - Gen - 28 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup block - Gen - 8 - (10:0,10) - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - [ bar=] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bar]; - SyntaxKind.Equals;[=]; - foo - Minimized +RazorDocument - [0..28)::28 - [

        ] + MarkupBlock - [0..28)::28 + MarkupTagHelperElement - [0..28)::28 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..24)::24 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..19)::17 - class - DoubleQuotes - Unbound - [ class="btn bar="] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..18)::8 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupLiteralAttributeValue - [13..18)::5 - [ bar=] + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [14..18)::4 - [bar=] - Gen - SpanEditHandler;Accepts:Any + Text;[bar]; + Equals;[=]; + MarkupTextLiteral - [18..19)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupMinimizedTagHelperAttribute - [19..23)::4 - foo" - Minimized - Unbound - [foo"] + MarkupTextLiteral - [19..23)::4 - [foo"] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + DoubleQuote;["]; + MarkupTextLiteral - [23..24)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [24..28)::4 + MarkupTextLiteral - [24..28)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes13.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes13.stree.txt index d1b413266..9fddb8a45 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes13.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes13.stree.txt @@ -1,3 +1,32 @@ -Markup block - Gen - 33 - (0:0,0) - Tag block - Gen - 33 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        +RazorDocument - [0..33)::33 - [

        ] + MarkupBlock - [0..33)::33 + MarkupTagHelperElement - [0..33)::33 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..29)::29 + MarkupTextLiteral - [0..3)::3 - [

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + Whitespace;[ ]; + CSharpCodeBlock - [3..16)::13 + CSharpImplicitExpression - [3..16)::13 + CSharpTransition - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [4..16)::12 + CSharpCodeBlock - [4..16)::12 + CSharpExpressionLiteral - [4..16)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [16..29)::13 - [ class="btn">] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[class]; + Equals;[=]; + DoubleQuote;["]; + Text;[btn]; + DoubleQuote;["]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [29..33)::4 + MarkupTextLiteral - [29..33)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes14.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes14.stree.txt index 1f20b3328..8fd1e19d1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes14.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes14.stree.txt @@ -1,3 +1,30 @@ -Markup block - Gen - 27 - (0:0,0) - Tag block - Gen - 27 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        +RazorDocument - [0..27)::27 - [

        ] + MarkupBlock - [0..27)::27 + MarkupTagHelperElement - [0..27)::27 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..23)::23 + MarkupTextLiteral - [0..3)::3 - [

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + Whitespace;[ ]; + CSharpCodeBlock - [3..16)::13 + CSharpImplicitExpression - [3..16)::13 + CSharpTransition - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [4..16)::12 + CSharpCodeBlock - [4..16)::12 + CSharpExpressionLiteral - [4..16)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [16..23)::7 - [="btn">] - Gen - SpanEditHandler;Accepts:Any + Equals;[=]; + DoubleQuote;["]; + Text;[btn]; + DoubleQuote;["]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [23..27)::4 + MarkupTextLiteral - [23..27)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes15.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes15.stree.txt index cc5b56ea8..c5701d7ca 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes15.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes15.stree.txt @@ -1,13 +1,33 @@ -Markup block - Gen - 28 - (0:0,0) - Tag block - Gen - 28 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - class - DoubleQuotes - Markup block - Gen - 13 - (9:0,9) - Markup block - Gen - 13 - (9:0,9) - Expression block - Gen - 13 - (9:0,9) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (10:0,10) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; +RazorDocument - [0..28)::28 - [

        ] + MarkupBlock - [0..28)::28 + MarkupTagHelperElement - [0..28)::28 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..28)::28 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..22)::20 - class - DoubleQuotes - Unbound - [ class=@DateTime.Now] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTagHelperAttributeValue - [9..22)::13 + MarkupDynamicAttributeValue - [9..22)::13 - [@DateTime.Now] + GenericBlock - [9..22)::13 + CSharpCodeBlock - [9..22)::13 + CSharpImplicitExpression - [9..22)::13 + CSharpTransition - [9..10)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [10..22)::12 + CSharpCodeBlock - [10..22)::12 + CSharpExpressionLiteral - [10..22)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [22..28)::6 - [">

        ] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + CloseAngle;[>]; + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes16.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes16.stree.txt index 95fd33dca..14dbf9afa 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes16.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes16.stree.txt @@ -1,13 +1,25 @@ -Markup block - Gen - 15 - (0:0,0) - Tag block - Gen - 15 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..15)::13 - class - DoubleQuotes - Unbound - [ class="@do {] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..15)::5 + MarkupDynamicAttributeValue - [10..15)::5 - [@do {] + GenericBlock - [10..15)::5 + CSharpCodeBlock - [10..15)::5 + CSharpTransition - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [11..15)::4 - [do {] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes17.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes17.stree.txt index a5d10c090..6647fcda0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes17.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes17.stree.txt @@ -1,14 +1,26 @@ -Markup block - Gen - 21 - (0:0,0) - Tag block - Gen - 21 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - class - DoubleQuotes - Markup block - Gen - 11 - (10:0,10) - Markup block - Gen - 11 - (10:0,10) - Statement block - Gen - 11 - (10:0,10) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [do {">

        ] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:4 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.StringLiteral;[">

        ];RZ1000(15:0,15 [1] ) +RazorDocument - [0..21)::21 - [

        ] + MarkupBlock - [0..21)::21 + MarkupTagHelperElement - [0..21)::21 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..21)::21 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..21)::19 - class - DoubleQuotes - Unbound - [ class="@do {">

        ] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..21)::11 + MarkupDynamicAttributeValue - [10..21)::11 - [@do {">

        ] + GenericBlock - [10..21)::11 + CSharpCodeBlock - [10..21)::11 + CSharpTransition - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [11..21)::10 - [do {">

        ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + StringLiteral;[">

        ];RZ1000(15:0,15 [1] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes18.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes18.stree.txt index 1903f8d6b..fee2f382b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes18.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes18.stree.txt @@ -1,3 +1,29 @@ -Markup block - Gen - 33 - (0:0,0) - Tag block - Gen - 33 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        +RazorDocument - [0..33)::33 - [

        ] + MarkupBlock - [0..33)::33 + MarkupTagHelperElement - [0..33)::33 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..33)::33 + MarkupTextLiteral - [0..3)::3 - [

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + Whitespace;[ ]; + CSharpCodeBlock - [3..33)::30 + CSharpTransition - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [4..29)::25 - [do { someattribute="btn">] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[someattribute]; + Assign;[=]; + StringLiteral;["btn"]; + GreaterThan;[>]; + MarkupBlock - [29..33)::4 + MarkupTagBlock - [29..33)::4 - [

        ] + MarkupTextLiteral - [29..33)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [33..33)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes19.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes19.stree.txt index aeef6d802..45be04ab9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes19.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes19.stree.txt @@ -1,6 +1,41 @@ -Markup block - Gen - 38 - (0:0,0) - Tag block - Gen - 38 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - NoQuotes - Markup span - Gen - [some] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[some]; +RazorDocument - [0..38)::38 - [

        ] + MarkupBlock - [0..38)::38 + MarkupTagHelperElement - [0..38)::38 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..34)::34 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..13)::11 - class - NoQuotes - Unbound - [ class=some] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTagHelperAttributeValue - [9..13)::4 + MarkupLiteralAttributeValue - [9..13)::4 - [some] + MarkupTextLiteral - [9..13)::4 - [some] - Gen - SpanEditHandler;Accepts:Any + Text;[some]; + MarkupTextLiteral - [13..26)::13 - [=thing attr="] - Gen - SpanEditHandler;Accepts:Any + Equals;[=]; + Text;[thing]; + Whitespace;[ ]; + Text;[attr]; + Equals;[=]; + DoubleQuote;["]; + CSharpCodeBlock - [26..32)::6 + CSharpImplicitExpression - [26..32)::6 + CSharpTransition - [26..27)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [27..32)::5 + CSharpCodeBlock - [27..32)::5 + CSharpExpressionLiteral - [27..32)::5 - [value] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[value]; + MarkupTextLiteral - [32..34)::2 - [">] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [34..38)::4 + MarkupTextLiteral - [34..38)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes2.stree.txt index 6dea6ef53..74ca653ce 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes2.stree.txt @@ -1,6 +1,27 @@ -Markup block - Gen - 24 - (0:0,0) - Tag block - Gen - 24 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - bar - DoubleQuotes - Markup span - Gen - [false] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:1 - SyntaxKind.Text;[false]; +RazorDocument - [0..24)::24 - [

        ] + MarkupBlock - [0..24)::24 + MarkupTagHelperElement - [0..24)::24 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..24)::24 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - bar - DoubleQuotes - Unbound - [ bar="false"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..6)::3 - [bar] - Gen - SpanEditHandler;Accepts:Any + Text;[bar]; + Equals;[=]; + MarkupTextLiteral - [7..8)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [8..13)::5 + MarkupLiteralAttributeValue - [8..13)::5 - [false] + MarkupTextLiteral - [8..13)::5 - [false] - Gen - SpanEditHandler;Accepts:Any + Text;[false]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [14..24)::10 - [" ] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + Whitespace;[ ]; + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes3.stree.txt index 79a06f3d1..dc36bfdea 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes3.stree.txt @@ -1,12 +1,26 @@ -Markup block - Gen - 23 - (0:0,0) - Tag block - Gen - 23 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ] + MarkupBlock - [0..23)::23 + MarkupTagHelperElement - [0..23)::23 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..23)::23 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..23)::21 - bar - SingleQuotes - Unbound - [ bar='false ] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..6)::3 - [bar] - Gen - SpanEditHandler;Accepts:Any + Text;[bar]; + Equals;[=]; + MarkupTextLiteral - [7..8)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [8..23)::15 + MarkupLiteralAttributeValue - [8..13)::5 - [false] + MarkupTextLiteral - [8..13)::5 - [false] - Gen - SpanEditHandler;Accepts:Any + Text;[false]; + MarkupLiteralAttributeValue - [13..23)::10 - [ ] + MarkupTextLiteral - [13..15)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [15..23)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes4.stree.txt index ef7059ece..61bff8f7a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes4.stree.txt @@ -1,11 +1,27 @@ -Markup block - Gen - 23 - (0:0,0) - Tag block - Gen - 23 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - 14 - (8:0,8) - Markup span - Gen - [false] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:1 - SyntaxKind.Text;[false]; - Markup span - Gen - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..23)::21 - bar - SingleQuotes - Unbound - [ bar='false - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..6)::3 - [bar] - Gen - SpanEditHandler;Accepts:Any + Text;[bar]; + Equals;[=]; + MarkupTextLiteral - [7..8)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [8..22)::14 + MarkupLiteralAttributeValue - [8..13)::5 - [false] + MarkupTextLiteral - [8..13)::5 - [false] - Gen - SpanEditHandler;Accepts:Any + Text;[false]; + MarkupLiteralAttributeValue - [13..22)::9 - [ - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [15..22)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupTextLiteral - [22..23)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes5.stree.txt index ed4e73b8b..dc2f7ef2d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes5.stree.txt @@ -1,6 +1,19 @@ -Markup block - Gen - 13 - (0:0,0) - Tag block - Gen - 13 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - [false] - SpanEditHandler;Accepts:Any - (7:0,7) - Tokens:1 - SyntaxKind.Text;[false]; +RazorDocument - [0..13)::13 - [

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..12)::10 - bar - NoQuotes - Unbound - [ bar=false] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..6)::3 - [bar] - Gen - SpanEditHandler;Accepts:Any + Text;[bar]; + Equals;[=]; + MarkupTagHelperAttributeValue - [7..12)::5 + MarkupLiteralAttributeValue - [7..12)::5 - [false] + MarkupTextLiteral - [7..12)::5 - [false] - Gen - SpanEditHandler;Accepts:Any + Text;[false]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes6.stree.txt index 5e5ad9ed9..3faff3a98 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes6.stree.txt @@ -1,7 +1,20 @@ -Markup block - Gen - 14 - (0:0,0) - Tag block - Gen - 14 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - bar - DoubleQuotes - Unbound - [ bar="false'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..6)::3 - [bar] - Gen - SpanEditHandler;Accepts:Any + Text;[bar]; + Equals;[=]; + MarkupTextLiteral - [7..8)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [8..14)::6 + MarkupLiteralAttributeValue - [8..14)::6 - [false'] + MarkupTextLiteral - [8..14)::6 - [false'] - Gen - SpanEditHandler;Accepts:Any + Text;[false]; + SingleQuote;[']; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes7.stree.txt index 2ea912876..6b63b1023 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes7.stree.txt @@ -1,15 +1,29 @@ -Markup block - Gen - 20 - (0:0,0) - Tag block - Gen - 20 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ] + MarkupBlock - [0..20)::20 + MarkupTagHelperElement - [0..20)::20 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..20)::20 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..20)::18 - bar - DoubleQuotes - Unbound - [ bar="false' >

        ] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..6)::3 - [bar] - Gen - SpanEditHandler;Accepts:Any + Text;[bar]; + Equals;[=]; + MarkupTextLiteral - [7..8)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [8..20)::12 + MarkupLiteralAttributeValue - [8..14)::6 - [false'] + MarkupTextLiteral - [8..14)::6 - [false'] - Gen - SpanEditHandler;Accepts:Any + Text;[false]; + SingleQuote;[']; + MarkupLiteralAttributeValue - [14..20)::6 - [ >

        ] + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [15..20)::5 - [>

        ] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes8.stree.txt index 7fea4843e..6fcfe9a11 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes8.stree.txt @@ -1,7 +1,23 @@ -Markup block - Gen - 18 - (0:0,0) - Tag block - Gen - 18 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - 8 - (10:0,10) - strong - strongtaghelper - StartTagAndEndTag - +RazorDocument - [0..18)::18 - [

        ] + MarkupBlock - [0..18)::18 + MarkupTagHelperElement - [0..18)::18 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..10)::10 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [2..6)::4 - foo - Minimized - Unbound - [ foo] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..6)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupMinimizedTagHelperAttribute - [6..10)::4 - bar - Minimized - Unbound - [ bar] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..10)::3 - [bar] - Gen - SpanEditHandler;Accepts:Any + Text;[bar]; + MarkupTagHelperElement - [10..18)::8 - strong[StartTagAndEndTag] - strongtaghelper + MarkupTagHelperStartTag - [10..18)::8 + MarkupTextLiteral - [10..18)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes9.stree.txt index da978e235..18f681e64 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes9.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForMalformedTagHelpersWithAttributes9.stree.txt @@ -1,6 +1,24 @@ -Markup block - Gen - 25 - (0:0,0) - Tag block - Gen - 25 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - class - NoQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..25)::25 - [

        ] + MarkupBlock - [0..25)::25 + MarkupTagHelperElement - [0..25)::25 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..25)::25 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..12)::10 - class - NoQuotes - Unbound - [ class=btn] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTagHelperAttributeValue - [9..12)::3 + MarkupLiteralAttributeValue - [9..12)::3 - [btn] + MarkupTextLiteral - [9..12)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [12..25)::13 - [" bar] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + Whitespace;[ ]; + Text;[bar]; + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes1.stree.txt index 2d888961f..515061b10 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes1.stree.txt @@ -1,6 +1,24 @@ -Markup block - Gen - 19 - (0:0,0) - Tag block - Gen - 19 - (0:0,0) - person - PersonTagHelper - SelfClosing - - age - DoubleQuotes - Code span - Gen - [12] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (13:0,13) - Tokens:1 - SyntaxKind.Text;[12]; +RazorDocument - [0..19)::19 - [] + MarkupBlock - [0..19)::19 + MarkupTagHelperElement - [0..19)::19 - person[SelfClosing] - PersonTagHelper + MarkupTagHelperStartTag - [0..19)::19 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[person]; + MarkupTagHelperAttribute - [7..16)::9 - age - DoubleQuotes - Bound - [ age="12"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..11)::3 - [age] - Gen - SpanEditHandler;Accepts:Any + Text;[age]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [13..15)::2 + CSharpExpressionLiteral - [13..15)::2 - [12] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[12]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [16..19)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes10.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes10.stree.txt index 2e6b0917f..17aedf3d5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes10.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes10.stree.txt @@ -1,18 +1,56 @@ -Markup block - Gen - 73 - (0:0,0) - Tag block - Gen - 73 - (0:0,0) - person - PersonTagHelper - SelfClosing - - age - DoubleQuotes - Code span - Gen - [12] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (13:0,13) - Tokens:1 - SyntaxKind.Text;[12]; - birthday - DoubleQuotes - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (27:0,27) - Tokens:1 - SyntaxKind.Text;[DateTime.Now]; - name - DoubleQuotes - Markup block - Gen - 22 - (47:0,47) - Markup block - Gen - 2 - (47:0,47) - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (47:0,47) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (48:0,48) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [BoundStringAttribute] - SpanEditHandler;Accepts:Any - (49:0,49) - Tokens:1 - SyntaxKind.Text;[BoundStringAttribute]; +RazorDocument - [0..73)::73 - [] + MarkupBlock - [0..73)::73 + MarkupTagHelperElement - [0..73)::73 - person[SelfClosing] - PersonTagHelper + MarkupTagHelperStartTag - [0..73)::73 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[person]; + MarkupTagHelperAttribute - [7..16)::9 - age - DoubleQuotes - Bound - [ age="12"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..11)::3 - [age] - Gen - SpanEditHandler;Accepts:Any + Text;[age]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [13..15)::2 + CSharpExpressionLiteral - [13..15)::2 - [12] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[12]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [16..40)::24 - birthday - DoubleQuotes - Bound - [ birthday="DateTime.Now"] + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [17..25)::8 - [birthday] - Gen - SpanEditHandler;Accepts:Any + Text;[birthday]; + Equals;[=]; + MarkupTextLiteral - [26..27)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [27..39)::12 + CSharpExpressionLiteral - [27..39)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[DateTime.Now]; + MarkupTextLiteral - [39..40)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [40..70)::30 - name - DoubleQuotes - Bound - [ name="@@BoundStringAttribute"] + MarkupTextLiteral - [40..41)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [41..45)::4 - [name] - Gen - SpanEditHandler;Accepts:Any + Text;[name]; + Equals;[=]; + MarkupTextLiteral - [46..47)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [47..69)::22 + MarkupBlock - [47..49)::2 + MarkupTextLiteral - [47..48)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupEphemeralTextLiteral - [48..49)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupLiteralAttributeValue - [49..69)::20 - [BoundStringAttribute] + MarkupTextLiteral - [49..69)::20 - [BoundStringAttribute] - Gen - SpanEditHandler;Accepts:Any + Text;[BoundStringAttribute]; + MarkupTextLiteral - [69..70)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [70..73)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes11.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes11.stree.txt index b1d8258a7..390b7b9d7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes11.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes11.stree.txt @@ -1,41 +1,84 @@ -Markup block - Gen - 77 - (0:0,0) - Tag block - Gen - 77 - (0:0,0) - person - PersonTagHelper - SelfClosing - - age - DoubleQuotes - Markup block - Gen - 9 - (13:0,13) - Markup block - Gen - 2 - (13:0,13) - Code span - Gen - [@] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (13:0,13) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [@] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (14:0,14) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup block - Gen - 7 - (15:0,15) - Code span - Gen - [] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (15:0,15) - Tokens:1 - SyntaxKind.Unknown;[]; - Expression block - Gen - 7 - (15:0,15) - Code span - Gen - [@] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (15:0,15) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [(] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (16:0,16) - Tokens:1 - SyntaxKind.LeftParenthesis;[(]; - Code span - Gen - [11+1] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (17:0,17) - Tokens:3 - SyntaxKind.IntegerLiteral;[11]; - SyntaxKind.Plus;[+]; - SyntaxKind.IntegerLiteral;[1]; - Code span - Gen - [)] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (21:0,21) - Tokens:1 - SyntaxKind.RightParenthesis;[)]; - birthday - DoubleQuotes - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (34:0,34) - Tokens:1 - SyntaxKind.Text;[DateTime.Now]; - name - DoubleQuotes - Markup block - Gen - 19 - (54:0,54) - Markup span - Gen - [Time:] - SpanEditHandler;Accepts:Any - (54:0,54) - Tokens:1 - SyntaxKind.Text;[Time:]; - Markup block - Gen - 14 - (59:0,59) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (59:0,59) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (60:0,60) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (60:0,60) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (61:0,61) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; +RazorDocument - [0..77)::77 - [] + MarkupBlock - [0..77)::77 + MarkupTagHelperElement - [0..77)::77 - person[SelfClosing] - PersonTagHelper + MarkupTagHelperStartTag - [0..77)::77 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[person]; + MarkupTagHelperAttribute - [7..23)::16 - age - DoubleQuotes - Bound - [ age="@@@(11+1)"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..11)::3 - [age] - Gen - SpanEditHandler;Accepts:Any + Text;[age]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [13..22)::9 + MarkupBlock - [13..15)::2 + CSharpExpressionLiteral - [13..14)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Transition;[@]; + CSharpExpressionLiteral - [14..15)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Transition;[@]; + MarkupDynamicAttributeValue - [15..22)::7 - [@(11+1)] + GenericBlock - [15..22)::7 + CSharpExpressionLiteral - [15..15)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Marker;[]; + CSharpCodeBlock - [15..22)::7 + GenericBlock - [15..22)::7 + CSharpExpressionLiteral - [15..16)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Transition;[@]; + CSharpExpressionLiteral - [16..17)::1 - [(] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + LeftParenthesis;[(]; + CSharpExpressionLiteral - [17..21)::4 - [11+1] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + IntegerLiteral;[11]; + Plus;[+]; + IntegerLiteral;[1]; + CSharpExpressionLiteral - [21..22)::1 - [)] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + RightParenthesis;[)]; + MarkupTextLiteral - [22..23)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [23..47)::24 - birthday - DoubleQuotes - Bound - [ birthday="DateTime.Now"] + MarkupTextLiteral - [23..24)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [24..32)::8 - [birthday] - Gen - SpanEditHandler;Accepts:Any + Text;[birthday]; + Equals;[=]; + MarkupTextLiteral - [33..34)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [34..46)::12 + CSharpExpressionLiteral - [34..46)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[DateTime.Now]; + MarkupTextLiteral - [46..47)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [47..74)::27 - name - DoubleQuotes - Bound - [ name="Time: @DateTime.Now"] + MarkupTextLiteral - [47..48)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [48..52)::4 - [name] - Gen - SpanEditHandler;Accepts:Any + Text;[name]; + Equals;[=]; + MarkupTextLiteral - [53..54)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [54..73)::19 + MarkupLiteralAttributeValue - [54..59)::5 - [Time:] + MarkupTextLiteral - [54..59)::5 - [Time:] - Gen - SpanEditHandler;Accepts:Any + Text;[Time:]; + MarkupDynamicAttributeValue - [59..73)::14 - [ @DateTime.Now] + MarkupTextLiteral - [59..60)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + GenericBlock - [60..73)::13 + CSharpCodeBlock - [60..73)::13 + CSharpImplicitExpression - [60..73)::13 + CSharpTransition - [60..61)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [61..73)::12 + CSharpCodeBlock - [61..73)::12 + CSharpExpressionLiteral - [61..73)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [73..74)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [74..77)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes2.stree.txt index ce666d0c1..6e8c7c180 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes2.stree.txt @@ -1,6 +1,24 @@ -Markup block - Gen - 34 - (0:0,0) - Tag block - Gen - 34 - (0:0,0) - person - PersonTagHelper - SelfClosing - - birthday - DoubleQuotes - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (18:0,18) - Tokens:1 - SyntaxKind.Text;[DateTime.Now]; +RazorDocument - [0..34)::34 - [] + MarkupBlock - [0..34)::34 + MarkupTagHelperElement - [0..34)::34 - person[SelfClosing] - PersonTagHelper + MarkupTagHelperStartTag - [0..34)::34 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[person]; + MarkupTagHelperAttribute - [7..31)::24 - birthday - DoubleQuotes - Bound - [ birthday="DateTime.Now"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..16)::8 - [birthday] - Gen - SpanEditHandler;Accepts:Any + Text;[birthday]; + Equals;[=]; + MarkupTextLiteral - [17..18)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [18..30)::12 + CSharpExpressionLiteral - [18..30)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[DateTime.Now]; + MarkupTextLiteral - [30..31)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [31..34)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes3.stree.txt index e7f5f940e..1ab37519e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes3.stree.txt @@ -1,15 +1,36 @@ -Markup block - Gen - 35 - (0:0,0) - Tag block - Gen - 35 - (0:0,0) - person - PersonTagHelper - SelfClosing - - age - DoubleQuotes - Markup block - Gen - 18 - (13:0,13) - Markup block - Gen - 18 - (13:0,13) - Expression block - Gen - 18 - (13:0,13) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now.Year] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (14:0,14) - Tokens:5 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Year]; +RazorDocument - [0..35)::35 - [] + MarkupBlock - [0..35)::35 + MarkupTagHelperElement - [0..35)::35 - person[SelfClosing] - PersonTagHelper + MarkupTagHelperStartTag - [0..35)::35 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[person]; + MarkupTagHelperAttribute - [7..32)::25 - age - DoubleQuotes - Bound - [ age="@DateTime.Now.Year"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..11)::3 - [age] - Gen - SpanEditHandler;Accepts:Any + Text;[age]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [13..31)::18 + MarkupDynamicAttributeValue - [13..31)::18 - [@DateTime.Now.Year] + GenericBlock - [13..31)::18 + CSharpCodeBlock - [13..31)::18 + CSharpImplicitExpression - [13..31)::18 + CSharpTransition - [13..14)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [14..31)::17 + CSharpCodeBlock - [14..31)::17 + CSharpExpressionLiteral - [14..31)::17 - [DateTime.Now.Year] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + Dot;[.]; + Identifier;[Year]; + MarkupTextLiteral - [31..32)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [32..35)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes4.stree.txt index a72136e20..0125f4d79 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes4.stree.txt @@ -1,17 +1,36 @@ -Markup block - Gen - 36 - (0:0,0) - Tag block - Gen - 36 - (0:0,0) - person - PersonTagHelper - SelfClosing - - age - DoubleQuotes - Markup block - Gen - 19 - (13:0,13) - Markup block - Gen - 19 - (13:0,13) - Code span - Gen - [ ] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (13:0,13) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 18 - (14:0,14) - Code span - Gen - [@] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (14:0,14) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now.Year] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (15:0,15) - Tokens:5 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Year]; +RazorDocument - [0..36)::36 - [] + MarkupBlock - [0..36)::36 + MarkupTagHelperElement - [0..36)::36 - person[SelfClosing] - PersonTagHelper + MarkupTagHelperStartTag - [0..36)::36 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[person]; + MarkupTagHelperAttribute - [7..33)::26 - age - DoubleQuotes - Bound - [ age=" @DateTime.Now.Year"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..11)::3 - [age] - Gen - SpanEditHandler;Accepts:Any + Text;[age]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [13..32)::19 + MarkupDynamicAttributeValue - [13..32)::19 - [ @DateTime.Now.Year] + GenericBlock - [13..32)::19 + CSharpExpressionLiteral - [13..14)::1 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + CSharpCodeBlock - [14..32)::18 + GenericBlock - [14..32)::18 + CSharpExpressionLiteral - [14..15)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Transition;[@]; + CSharpExpressionLiteral - [15..32)::17 - [DateTime.Now.Year] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + Dot;[.]; + Identifier;[Year]; + MarkupTextLiteral - [32..33)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [33..36)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes5.stree.txt index a6d534804..a9b4291e7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes5.stree.txt @@ -1,6 +1,25 @@ -Markup block - Gen - 22 - (0:0,0) - Tag block - Gen - 22 - (0:0,0) - person - PersonTagHelper - SelfClosing - - name - DoubleQuotes - Markup span - Gen - [John] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.Text;[John]; +RazorDocument - [0..22)::22 - [] + MarkupBlock - [0..22)::22 + MarkupTagHelperElement - [0..22)::22 - person[SelfClosing] - PersonTagHelper + MarkupTagHelperStartTag - [0..22)::22 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[person]; + MarkupTagHelperAttribute - [7..19)::12 - name - DoubleQuotes - Bound - [ name="John"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..12)::4 - [name] - Gen - SpanEditHandler;Accepts:Any + Text;[name]; + Equals;[=]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [14..18)::4 + MarkupLiteralAttributeValue - [14..18)::4 - [John] + MarkupTextLiteral - [14..18)::4 - [John] - Gen - SpanEditHandler;Accepts:Any + Text;[John]; + MarkupTextLiteral - [18..19)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [19..22)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes6.stree.txt index 87383c9bf..5004812a0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes6.stree.txt @@ -1,17 +1,39 @@ -Markup block - Gen - 37 - (0:0,0) - Tag block - Gen - 37 - (0:0,0) - person - PersonTagHelper - SelfClosing - - name - DoubleQuotes - Markup block - Gen - 19 - (14:0,14) - Markup span - Gen - [Time:] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.Text;[Time:]; - Markup block - Gen - 14 - (19:0,19) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (20:0,20) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (21:0,21) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; +RazorDocument - [0..37)::37 - [] + MarkupBlock - [0..37)::37 + MarkupTagHelperElement - [0..37)::37 - person[SelfClosing] - PersonTagHelper + MarkupTagHelperStartTag - [0..37)::37 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[person]; + MarkupTagHelperAttribute - [7..34)::27 - name - DoubleQuotes - Bound - [ name="Time: @DateTime.Now"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..12)::4 - [name] - Gen - SpanEditHandler;Accepts:Any + Text;[name]; + Equals;[=]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [14..33)::19 + MarkupLiteralAttributeValue - [14..19)::5 - [Time:] + MarkupTextLiteral - [14..19)::5 - [Time:] - Gen - SpanEditHandler;Accepts:Any + Text;[Time:]; + MarkupDynamicAttributeValue - [19..33)::14 - [ @DateTime.Now] + MarkupTextLiteral - [19..20)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + GenericBlock - [20..33)::13 + CSharpCodeBlock - [20..33)::13 + CSharpImplicitExpression - [20..33)::13 + CSharpTransition - [20..21)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [21..33)::12 + CSharpCodeBlock - [21..33)::12 + CSharpExpressionLiteral - [21..33)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [33..34)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [34..37)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes7.stree.txt index b33108b18..6cd71b771 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes7.stree.txt @@ -1,61 +1,92 @@ -Markup block - Gen - 88 - (0:0,0) - Tag block - Gen - 88 - (0:0,0) - person - PersonTagHelper - SelfClosing - - age - DoubleQuotes - Markup block - Gen - 14 - (13:0,13) - Code span - Gen - [1] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (13:0,13) - Tokens:1 - SyntaxKind.Text;[1]; - Code span - Gen - [ +] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (14:0,14) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[+]; - Markup block - Gen - 7 - (16:0,16) - Code span - Gen - [ ] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 6 - (17:0,17) - Code span - Gen - [@] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (17:0,17) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [value] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (18:0,18) - Tokens:1 - SyntaxKind.Identifier;[value]; - Code span - Gen - [ +] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (23:0,23) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[+]; - Code span - Gen - [ 2] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (25:0,25) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[2]; - birthday - SingleQuotes - Markup block - Gen - 46 - (39:0,39) - Code span - Gen - [(bool)] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (39:0,39) - Tokens:1 - SyntaxKind.Text;[(bool)]; - Markup block - Gen - 11 - (45:0,45) - Expression block - Gen - 11 - (45:0,45) - Code span - Gen - [@] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (45:0,45) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [Bag["val"]] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (46:0,46) - Tokens:4 - SyntaxKind.Identifier;[Bag]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.StringLiteral;["val"]; - SyntaxKind.RightBracket;[]]; - Code span - Gen - [ ?] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (56:0,56) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.QuestionMark;[?]; - Markup block - Gen - 3 - (58:0,58) - Code span - Gen - [ @] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (58:0,58) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Transition;[@]; - Code span - Gen - [@] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (60:0,60) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (61:0,61) - Tokens:1 - SyntaxKind.Text;[DateTime]; - Code span - Gen - [ :] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (69:0,69) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[:]; - Markup block - Gen - 14 - (71:0,71) - Code span - Gen - [ ] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (71:0,71) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (72:0,72) - Code span - Gen - [@] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (72:0,72) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (73:0,73) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; +RazorDocument - [0..88)::88 - [] + MarkupBlock - [0..88)::88 + MarkupTagHelperElement - [0..88)::88 - person[SelfClosing] - PersonTagHelper + MarkupTagHelperStartTag - [0..88)::88 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[person]; + MarkupTagHelperAttribute - [7..28)::21 - age - DoubleQuotes - Bound - [ age="1 + @value + 2"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..11)::3 - [age] - Gen - SpanEditHandler;Accepts:Any + Text;[age]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [13..27)::14 + CSharpExpressionLiteral - [13..14)::1 - [1] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[1]; + CSharpExpressionLiteral - [14..16)::2 - [ +] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + Text;[+]; + MarkupDynamicAttributeValue - [16..23)::7 - [ @value] + GenericBlock - [16..23)::7 + CSharpExpressionLiteral - [16..17)::1 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + CSharpCodeBlock - [17..23)::6 + GenericBlock - [17..23)::6 + CSharpExpressionLiteral - [17..18)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Transition;[@]; + CSharpExpressionLiteral - [18..23)::5 - [value] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Identifier;[value]; + CSharpExpressionLiteral - [23..25)::2 - [ +] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + Text;[+]; + CSharpExpressionLiteral - [25..27)::2 - [ 2] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + Text;[2]; + MarkupTextLiteral - [27..28)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [28..86)::58 - birthday - SingleQuotes - Bound - [ birthday='(bool)@Bag["val"] ? @@DateTime : @DateTime.Now'] + MarkupTextLiteral - [28..29)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [29..37)::8 - [birthday] - Gen - SpanEditHandler;Accepts:Any + Text;[birthday]; + Equals;[=]; + MarkupTextLiteral - [38..39)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [39..85)::46 + CSharpExpressionLiteral - [39..45)::6 - [(bool)] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[(bool)]; + MarkupDynamicAttributeValue - [45..56)::11 - [@Bag["val"]] + GenericBlock - [45..56)::11 + CSharpCodeBlock - [45..56)::11 + GenericBlock - [45..56)::11 + CSharpExpressionLiteral - [45..46)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Transition;[@]; + CSharpExpressionLiteral - [46..56)::10 - [Bag["val"]] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Identifier;[Bag]; + LeftBracket;[[]; + StringLiteral;["val"]; + RightBracket;[]]; + CSharpExpressionLiteral - [56..58)::2 - [ ?] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + QuestionMark;[?]; + MarkupBlock - [58..61)::3 + CSharpExpressionLiteral - [58..60)::2 - [ @] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + Transition;[@]; + CSharpExpressionLiteral - [60..61)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Transition;[@]; + CSharpExpressionLiteral - [61..69)::8 - [DateTime] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[DateTime]; + CSharpExpressionLiteral - [69..71)::2 - [ :] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + Text;[:]; + MarkupDynamicAttributeValue - [71..85)::14 - [ @DateTime.Now] + GenericBlock - [71..85)::14 + CSharpExpressionLiteral - [71..72)::1 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + CSharpCodeBlock - [72..85)::13 + GenericBlock - [72..85)::13 + CSharpExpressionLiteral - [72..73)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Transition;[@]; + CSharpExpressionLiteral - [73..85)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [85..86)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [86..88)::2 - [/>] - Gen - SpanEditHandler;Accepts:Any + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes8.stree.txt index 4407dd61c..dd038b63f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes8.stree.txt @@ -1,23 +1,65 @@ -Markup block - Gen - 70 - (0:0,0) - Tag block - Gen - 70 - (0:0,0) - person - PersonTagHelper - SelfClosing - - age - DoubleQuotes - Code span - Gen - [12] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (13:0,13) - Tokens:1 - SyntaxKind.Text;[12]; - birthday - DoubleQuotes - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (27:0,27) - Tokens:1 - SyntaxKind.Text;[DateTime.Now]; - name - DoubleQuotes - Markup block - Gen - 19 - (47:0,47) - Markup span - Gen - [Time:] - SpanEditHandler;Accepts:Any - (47:0,47) - Tokens:1 - SyntaxKind.Text;[Time:]; - Markup block - Gen - 14 - (52:0,52) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (52:0,52) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (53:0,53) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (53:0,53) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (54:0,54) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; +RazorDocument - [0..70)::70 - [] + MarkupBlock - [0..70)::70 + MarkupTagHelperElement - [0..70)::70 - person[SelfClosing] - PersonTagHelper + MarkupTagHelperStartTag - [0..70)::70 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[person]; + MarkupTagHelperAttribute - [7..16)::9 - age - DoubleQuotes - Bound - [ age="12"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..11)::3 - [age] - Gen - SpanEditHandler;Accepts:Any + Text;[age]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [13..15)::2 + CSharpExpressionLiteral - [13..15)::2 - [12] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[12]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [16..40)::24 - birthday - DoubleQuotes - Bound - [ birthday="DateTime.Now"] + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [17..25)::8 - [birthday] - Gen - SpanEditHandler;Accepts:Any + Text;[birthday]; + Equals;[=]; + MarkupTextLiteral - [26..27)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [27..39)::12 + CSharpExpressionLiteral - [27..39)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[DateTime.Now]; + MarkupTextLiteral - [39..40)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [40..67)::27 - name - DoubleQuotes - Bound - [ name="Time: @DateTime.Now"] + MarkupTextLiteral - [40..41)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [41..45)::4 - [name] - Gen - SpanEditHandler;Accepts:Any + Text;[name]; + Equals;[=]; + MarkupTextLiteral - [46..47)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [47..66)::19 + MarkupLiteralAttributeValue - [47..52)::5 - [Time:] + MarkupTextLiteral - [47..52)::5 - [Time:] - Gen - SpanEditHandler;Accepts:Any + Text;[Time:]; + MarkupDynamicAttributeValue - [52..66)::14 - [ @DateTime.Now] + MarkupTextLiteral - [52..53)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + GenericBlock - [53..66)::13 + CSharpCodeBlock - [53..66)::13 + CSharpImplicitExpression - [53..66)::13 + CSharpTransition - [53..54)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [54..66)::12 + CSharpCodeBlock - [54..66)::12 + CSharpExpressionLiteral - [54..66)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [66..67)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [67..70)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes9.stree.txt index 3157f815f..45c1180fe 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes9.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes9.stree.txt @@ -1,29 +1,71 @@ -Markup block - Gen - 73 - (0:0,0) - Tag block - Gen - 73 - (0:0,0) - person - PersonTagHelper - SelfClosing - - age - DoubleQuotes - Code span - Gen - [12] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (13:0,13) - Tokens:1 - SyntaxKind.Text;[12]; - birthday - DoubleQuotes - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (27:0,27) - Tokens:1 - SyntaxKind.Text;[DateTime.Now]; - name - DoubleQuotes - Markup block - Gen - 22 - (47:0,47) - Markup span - Gen - [Time:] - SpanEditHandler;Accepts:Any - (47:0,47) - Tokens:1 - SyntaxKind.Text;[Time:]; - Markup block - Gen - 3 - (52:0,52) - Markup span - Gen - [ @] - SpanEditHandler;Accepts:None - (52:0,52) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (54:0,54) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup block - Gen - 14 - (55:0,55) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (55:0,55) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (56:0,56) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (56:0,56) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (57:0,57) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; +RazorDocument - [0..73)::73 - [] + MarkupBlock - [0..73)::73 + MarkupTagHelperElement - [0..73)::73 - person[SelfClosing] - PersonTagHelper + MarkupTagHelperStartTag - [0..73)::73 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[person]; + MarkupTagHelperAttribute - [7..16)::9 - age - DoubleQuotes - Bound - [ age="12"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..11)::3 - [age] - Gen - SpanEditHandler;Accepts:Any + Text;[age]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [13..15)::2 + CSharpExpressionLiteral - [13..15)::2 - [12] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[12]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [16..40)::24 - birthday - DoubleQuotes - Bound - [ birthday="DateTime.Now"] + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [17..25)::8 - [birthday] - Gen - SpanEditHandler;Accepts:Any + Text;[birthday]; + Equals;[=]; + MarkupTextLiteral - [26..27)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [27..39)::12 + CSharpExpressionLiteral - [27..39)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[DateTime.Now]; + MarkupTextLiteral - [39..40)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [40..70)::30 - name - DoubleQuotes - Bound - [ name="Time: @@ @DateTime.Now"] + MarkupTextLiteral - [40..41)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [41..45)::4 - [name] - Gen - SpanEditHandler;Accepts:Any + Text;[name]; + Equals;[=]; + MarkupTextLiteral - [46..47)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [47..69)::22 + MarkupLiteralAttributeValue - [47..52)::5 - [Time:] + MarkupTextLiteral - [47..52)::5 - [Time:] - Gen - SpanEditHandler;Accepts:Any + Text;[Time:]; + MarkupBlock - [52..55)::3 + MarkupTextLiteral - [52..54)::2 - [ @] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Transition;[@]; + MarkupEphemeralTextLiteral - [54..55)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupDynamicAttributeValue - [55..69)::14 - [ @DateTime.Now] + MarkupTextLiteral - [55..56)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + GenericBlock - [56..69)::13 + CSharpCodeBlock - [56..69)::13 + CSharpImplicitExpression - [56..69)::13 + CSharpTransition - [56..57)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [57..69)::12 + CSharpCodeBlock - [57..69)::12 + CSharpExpressionLiteral - [57..69)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [69..70)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [70..73)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/FeatureDisabled_AddsErrorForMinimizedBooleanBoundAttributes.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/FeatureDisabled_AddsErrorForMinimizedBooleanBoundAttributes.stree.txt index 8ff170117..1d5ebc5e2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/FeatureDisabled_AddsErrorForMinimizedBooleanBoundAttributes.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/FeatureDisabled_AddsErrorForMinimizedBooleanBoundAttributes.stree.txt @@ -1,5 +1,21 @@ -Markup block - Gen - 37 - (0:0,0) - Tag block - Gen - 37 - (0:0,0) - input - InputTagHelper - SelfClosing - - boundbool - Minimized - boundbooldict-key - Minimized +RazorDocument - [0..37)::37 - [] + MarkupBlock - [0..37)::37 + MarkupTagHelperElement - [0..37)::37 - input[SelfClosing] - InputTagHelper + MarkupTagHelperStartTag - [0..37)::37 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..16)::10 - boundbool - Minimized - Bound - [ boundbool] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..16)::9 - [boundbool] - Gen - SpanEditHandler;Accepts:Any + Text;[boundbool]; + MarkupMinimizedTagHelperAttribute - [16..34)::18 - boundbooldict-key - Minimized - Bound - [ boundbooldict-key] + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [17..34)::17 - [boundbooldict-key] - Gen - SpanEditHandler;Accepts:Any + Text;[boundbooldict-key]; + MarkupTextLiteral - [34..37)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block1.stree.txt index f5f2c4c4c..cc1abe49f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block1.stree.txt @@ -1,26 +1,49 @@ -Markup block - Gen - 42 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 42 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 39 - (2:0,2) - Tag block - Gen - 39 - (2:0,2) - input - inputtaghelper - SelfClosing - - data-required - SingleQuotes - Markup block - Gen - 13 - (24:0,24) - Expression block - Gen - 13 - (24:0,24) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (25:0,25) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (41:0,41) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (41:0,41) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (42:0,42) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..42)::42 - [@{}] + MarkupBlock - [0..42)::42 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..42)::42 + CSharpStatement - [0..42)::42 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..42)::41 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..41)::39 + MarkupBlock - [2..41)::39 + MarkupTagHelperElement - [2..41)::39 - input[SelfClosing] - inputtaghelper + MarkupTagHelperStartTag - [2..41)::39 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [8..38)::30 - data-required - SingleQuotes - Unbound - [ data-required='@DateTime.Now'] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..22)::13 - [data-required] - Gen - SpanEditHandler;Accepts:Any + Text;[data-required]; + Equals;[=]; + MarkupTextLiteral - [23..24)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [24..37)::13 + CSharpCodeBlock - [24..37)::13 + CSharpImplicitExpression - [24..37)::13 + CSharpTransition - [24..25)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [25..37)::12 + CSharpCodeBlock - [25..37)::12 + CSharpExpressionLiteral - [25..37)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [37..38)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [38..41)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [41..41)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [41..42)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [42..42)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block2.stree.txt index a72b290f4..654448659 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block2.stree.txt @@ -1,20 +1,41 @@ -Markup block - Gen - 34 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 34 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 31 - (2:0,2) - Tag block - Gen - 31 - (2:0,2) - input - inputtaghelper - SelfClosing - - data-required - SingleQuotes - Markup span - Gen - [value] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1 - SyntaxKind.Text;[value]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (33:0,33) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..34)::34 - [@{}] + MarkupBlock - [0..34)::34 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..34)::34 + CSharpStatement - [0..34)::34 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..34)::33 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..33)::31 + MarkupBlock - [2..33)::31 + MarkupTagHelperElement - [2..33)::31 - input[SelfClosing] - inputtaghelper + MarkupTagHelperStartTag - [2..33)::31 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [8..30)::22 - data-required - SingleQuotes - Unbound - [ data-required='value'] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..22)::13 - [data-required] - Gen - SpanEditHandler;Accepts:Any + Text;[data-required]; + Equals;[=]; + MarkupTextLiteral - [23..24)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [24..29)::5 + MarkupTextLiteral - [24..29)::5 - [value] - Gen - SpanEditHandler;Accepts:Any + Text;[value]; + MarkupTextLiteral - [29..30)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [30..33)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [33..33)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [33..34)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [34..34)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block3.stree.txt index 3da093352..3875da990 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block3.stree.txt @@ -1,29 +1,52 @@ -Markup block - Gen - 49 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 49 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 46 - (2:0,2) - Tag block - Gen - 46 - (2:0,2) - input - inputtaghelper - SelfClosing - - data-required - SingleQuotes - Markup block - Gen - 20 - (24:0,24) - Markup span - Gen - [prefix ] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:2 - SyntaxKind.Text;[prefix]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (31:0,31) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (32:0,32) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (48:0,48) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (48:0,48) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (49:0,49) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..49)::49 - [@{}] + MarkupBlock - [0..49)::49 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..49)::49 + CSharpStatement - [0..49)::49 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..49)::48 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..48)::46 + MarkupBlock - [2..48)::46 + MarkupTagHelperElement - [2..48)::46 - input[SelfClosing] - inputtaghelper + MarkupTagHelperStartTag - [2..48)::46 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [8..45)::37 - data-required - SingleQuotes - Unbound - [ data-required='prefix @DateTime.Now'] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..22)::13 - [data-required] - Gen - SpanEditHandler;Accepts:Any + Text;[data-required]; + Equals;[=]; + MarkupTextLiteral - [23..24)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [24..44)::20 + MarkupTextLiteral - [24..31)::7 - [prefix ] - Gen - SpanEditHandler;Accepts:Any + Text;[prefix]; + Whitespace;[ ]; + CSharpCodeBlock - [31..44)::13 + CSharpImplicitExpression - [31..44)::13 + CSharpTransition - [31..32)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [32..44)::12 + CSharpCodeBlock - [32..44)::12 + CSharpExpressionLiteral - [32..44)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [44..45)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [45..48)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [48..48)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [48..49)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [49..49)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block4.stree.txt index 0fbd648f8..a5dc4c130 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block4.stree.txt @@ -1,29 +1,52 @@ -Markup block - Gen - 49 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 49 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 46 - (2:0,2) - Tag block - Gen - 46 - (2:0,2) - input - inputtaghelper - SelfClosing - - data-required - SingleQuotes - Markup block - Gen - 20 - (24:0,24) - Expression block - Gen - 13 - (24:0,24) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (25:0,25) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ suffix] - SpanEditHandler;Accepts:Any - (37:0,37) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[suffix]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (48:0,48) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (48:0,48) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (49:0,49) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..49)::49 - [@{}] + MarkupBlock - [0..49)::49 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..49)::49 + CSharpStatement - [0..49)::49 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..49)::48 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..48)::46 + MarkupBlock - [2..48)::46 + MarkupTagHelperElement - [2..48)::46 - input[SelfClosing] - inputtaghelper + MarkupTagHelperStartTag - [2..48)::46 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [8..45)::37 - data-required - SingleQuotes - Unbound - [ data-required='@DateTime.Now suffix'] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..22)::13 - [data-required] - Gen - SpanEditHandler;Accepts:Any + Text;[data-required]; + Equals;[=]; + MarkupTextLiteral - [23..24)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [24..44)::20 + CSharpCodeBlock - [24..37)::13 + CSharpImplicitExpression - [24..37)::13 + CSharpTransition - [24..25)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [25..37)::12 + CSharpCodeBlock - [25..37)::12 + CSharpExpressionLiteral - [25..37)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [37..44)::7 - [ suffix] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[suffix]; + MarkupTextLiteral - [44..45)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [45..48)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [48..48)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [48..49)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [49..49)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block5.stree.txt index 489e04fe2..684f59602 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block5.stree.txt @@ -1,32 +1,55 @@ -Markup block - Gen - 56 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 56 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 53 - (2:0,2) - Tag block - Gen - 53 - (2:0,2) - input - inputtaghelper - SelfClosing - - data-required - SingleQuotes - Markup block - Gen - 27 - (24:0,24) - Markup span - Gen - [prefix ] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:2 - SyntaxKind.Text;[prefix]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (31:0,31) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (32:0,32) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ suffix] - SpanEditHandler;Accepts:Any - (44:0,44) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[suffix]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (55:0,55) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (55:0,55) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (56:0,56) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..56)::56 - [@{}] + MarkupBlock - [0..56)::56 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..56)::56 + CSharpStatement - [0..56)::56 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..56)::55 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..55)::53 + MarkupBlock - [2..55)::53 + MarkupTagHelperElement - [2..55)::53 - input[SelfClosing] - inputtaghelper + MarkupTagHelperStartTag - [2..55)::53 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [8..52)::44 - data-required - SingleQuotes - Unbound - [ data-required='prefix @DateTime.Now suffix'] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..22)::13 - [data-required] - Gen - SpanEditHandler;Accepts:Any + Text;[data-required]; + Equals;[=]; + MarkupTextLiteral - [23..24)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [24..51)::27 + MarkupTextLiteral - [24..31)::7 - [prefix ] - Gen - SpanEditHandler;Accepts:Any + Text;[prefix]; + Whitespace;[ ]; + CSharpCodeBlock - [31..44)::13 + CSharpImplicitExpression - [31..44)::13 + CSharpTransition - [31..32)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [32..44)::12 + CSharpCodeBlock - [32..44)::12 + CSharpExpressionLiteral - [32..44)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [44..51)::7 - [ suffix] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[suffix]; + MarkupTextLiteral - [51..52)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [52..55)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [55..55)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [55..56)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [56..56)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block6.stree.txt index 23f6ce17b..61dfa7537 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block6.stree.txt @@ -1,34 +1,65 @@ -Markup block - Gen - 85 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 85 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 82 - (2:0,2) - Tag block - Gen - 82 - (2:0,2) - input - inputtaghelper - SelfClosing - - pre-attribute - Minimized - data-required - SingleQuotes - Markup block - Gen - 27 - (38:0,38) - Markup span - Gen - [prefix ] - SpanEditHandler;Accepts:Any - (38:0,38) - Tokens:2 - SyntaxKind.Text;[prefix]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (45:0,45) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (45:0,45) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (46:0,46) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ suffix] - SpanEditHandler;Accepts:Any - (58:0,58) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[suffix]; - post-attribute - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (84:0,84) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (84:0,84) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (85:0,85) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..85)::85 - [@{}] + MarkupBlock - [0..85)::85 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..85)::85 + CSharpStatement - [0..85)::85 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..85)::84 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..84)::82 + MarkupBlock - [2..84)::82 + MarkupTagHelperElement - [2..84)::82 - input[SelfClosing] - inputtaghelper + MarkupTagHelperStartTag - [2..84)::82 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [8..22)::14 - pre-attribute - Minimized - Unbound - [ pre-attribute] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..22)::13 - [pre-attribute] - Gen - SpanEditHandler;Accepts:Any + Text;[pre-attribute]; + MarkupTagHelperAttribute - [22..66)::44 - data-required - SingleQuotes - Unbound - [ data-required='prefix @DateTime.Now suffix'] + MarkupTextLiteral - [22..23)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [23..36)::13 - [data-required] - Gen - SpanEditHandler;Accepts:Any + Text;[data-required]; + Equals;[=]; + MarkupTextLiteral - [37..38)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [38..65)::27 + MarkupTextLiteral - [38..45)::7 - [prefix ] - Gen - SpanEditHandler;Accepts:Any + Text;[prefix]; + Whitespace;[ ]; + CSharpCodeBlock - [45..58)::13 + CSharpImplicitExpression - [45..58)::13 + CSharpTransition - [45..46)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [46..58)::12 + CSharpCodeBlock - [46..58)::12 + CSharpExpressionLiteral - [46..58)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [58..65)::7 - [ suffix] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[suffix]; + MarkupTextLiteral - [65..66)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [66..81)::15 - post-attribute - Minimized - Unbound - [ post-attribute] + MarkupTextLiteral - [66..67)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [67..81)::14 - [post-attribute] - Gen - SpanEditHandler;Accepts:Any + Text;[post-attribute]; + MarkupTextLiteral - [81..84)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [84..84)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [84..85)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [85..85)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block7.stree.txt index d91749c13..3374274c2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Block7.stree.txt @@ -1,37 +1,63 @@ -Markup block - Gen - 63 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 63 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 60 - (2:0,2) - Tag block - Gen - 60 - (2:0,2) - input - inputtaghelper - SelfClosing - - data-required - SingleQuotes - Markup block - Gen - 34 - (24:0,24) - Expression block - Gen - 13 - (24:0,24) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (25:0,25) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ middle ] - SpanEditHandler;Accepts:Any - (37:0,37) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[middle]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (45:0,45) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (45:0,45) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (46:0,46) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (62:0,62) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (62:0,62) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (63:0,63) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..63)::63 - [@{}] + MarkupBlock - [0..63)::63 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..63)::63 + CSharpStatement - [0..63)::63 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..63)::62 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..62)::60 + MarkupBlock - [2..62)::60 + MarkupTagHelperElement - [2..62)::60 - input[SelfClosing] - inputtaghelper + MarkupTagHelperStartTag - [2..62)::60 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [8..59)::51 - data-required - SingleQuotes - Unbound - [ data-required='@DateTime.Now middle @DateTime.Now'] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..22)::13 - [data-required] - Gen - SpanEditHandler;Accepts:Any + Text;[data-required]; + Equals;[=]; + MarkupTextLiteral - [23..24)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [24..58)::34 + CSharpCodeBlock - [24..37)::13 + CSharpImplicitExpression - [24..37)::13 + CSharpTransition - [24..25)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [25..37)::12 + CSharpCodeBlock - [25..37)::12 + CSharpExpressionLiteral - [25..37)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [37..45)::8 - [ middle ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[middle]; + Whitespace;[ ]; + CSharpCodeBlock - [45..58)::13 + CSharpImplicitExpression - [45..58)::13 + CSharpTransition - [45..46)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [46..58)::12 + CSharpCodeBlock - [46..58)::12 + CSharpExpressionLiteral - [46..58)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [58..59)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [59..62)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [62..62)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [62..63)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [63..63)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document1.stree.txt index 4070a3cb2..1712c5a14 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document1.stree.txt @@ -1,12 +1,32 @@ -Markup block - Gen - 39 - (0:0,0) - Tag block - Gen - 39 - (0:0,0) - input - inputtaghelper - SelfClosing - - data-required - SingleQuotes - Markup block - Gen - 13 - (22:0,22) - Expression block - Gen - 13 - (22:0,22) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (22:0,22) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (23:0,23) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; +RazorDocument - [0..39)::39 - [] + MarkupBlock - [0..39)::39 + MarkupTagHelperElement - [0..39)::39 - input[SelfClosing] - inputtaghelper + MarkupTagHelperStartTag - [0..39)::39 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..36)::30 - data-required - SingleQuotes - Unbound - [ data-required='@DateTime.Now'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..20)::13 - [data-required] - Gen - SpanEditHandler;Accepts:Any + Text;[data-required]; + Equals;[=]; + MarkupTextLiteral - [21..22)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [22..35)::13 + CSharpCodeBlock - [22..35)::13 + CSharpImplicitExpression - [22..35)::13 + CSharpTransition - [22..23)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [23..35)::12 + CSharpCodeBlock - [23..35)::12 + CSharpExpressionLiteral - [23..35)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [35..36)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [36..39)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document2.stree.txt index fbf9d1f30..aa98bf878 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document2.stree.txt @@ -1,6 +1,24 @@ -Markup block - Gen - 31 - (0:0,0) - Tag block - Gen - 31 - (0:0,0) - input - inputtaghelper - SelfClosing - - data-required - SingleQuotes - Markup span - Gen - [value] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.Text;[value]; +RazorDocument - [0..31)::31 - [] + MarkupBlock - [0..31)::31 + MarkupTagHelperElement - [0..31)::31 - input[SelfClosing] - inputtaghelper + MarkupTagHelperStartTag - [0..31)::31 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..28)::22 - data-required - SingleQuotes - Unbound - [ data-required='value'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..20)::13 - [data-required] - Gen - SpanEditHandler;Accepts:Any + Text;[data-required]; + Equals;[=]; + MarkupTextLiteral - [21..22)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [22..27)::5 + MarkupTextLiteral - [22..27)::5 - [value] - Gen - SpanEditHandler;Accepts:Any + Text;[value]; + MarkupTextLiteral - [27..28)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [28..31)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document3.stree.txt index d76b453d5..81c87a341 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document3.stree.txt @@ -1,15 +1,35 @@ -Markup block - Gen - 46 - (0:0,0) - Tag block - Gen - 46 - (0:0,0) - input - inputtaghelper - SelfClosing - - data-required - SingleQuotes - Markup block - Gen - 20 - (22:0,22) - Markup span - Gen - [prefix ] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:2 - SyntaxKind.Text;[prefix]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (29:0,29) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (29:0,29) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (30:0,30) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; +RazorDocument - [0..46)::46 - [] + MarkupBlock - [0..46)::46 + MarkupTagHelperElement - [0..46)::46 - input[SelfClosing] - inputtaghelper + MarkupTagHelperStartTag - [0..46)::46 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..43)::37 - data-required - SingleQuotes - Unbound - [ data-required='prefix @DateTime.Now'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..20)::13 - [data-required] - Gen - SpanEditHandler;Accepts:Any + Text;[data-required]; + Equals;[=]; + MarkupTextLiteral - [21..22)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [22..42)::20 + MarkupTextLiteral - [22..29)::7 - [prefix ] - Gen - SpanEditHandler;Accepts:Any + Text;[prefix]; + Whitespace;[ ]; + CSharpCodeBlock - [29..42)::13 + CSharpImplicitExpression - [29..42)::13 + CSharpTransition - [29..30)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [30..42)::12 + CSharpCodeBlock - [30..42)::12 + CSharpExpressionLiteral - [30..42)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [42..43)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [43..46)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document4.stree.txt index d4aad7b2f..975e48555 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document4.stree.txt @@ -1,15 +1,35 @@ -Markup block - Gen - 46 - (0:0,0) - Tag block - Gen - 46 - (0:0,0) - input - inputtaghelper - SelfClosing - - data-required - SingleQuotes - Markup block - Gen - 20 - (22:0,22) - Expression block - Gen - 13 - (22:0,22) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (22:0,22) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (23:0,23) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ suffix] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[suffix]; +RazorDocument - [0..46)::46 - [] + MarkupBlock - [0..46)::46 + MarkupTagHelperElement - [0..46)::46 - input[SelfClosing] - inputtaghelper + MarkupTagHelperStartTag - [0..46)::46 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..43)::37 - data-required - SingleQuotes - Unbound - [ data-required='@DateTime.Now suffix'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..20)::13 - [data-required] - Gen - SpanEditHandler;Accepts:Any + Text;[data-required]; + Equals;[=]; + MarkupTextLiteral - [21..22)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [22..42)::20 + CSharpCodeBlock - [22..35)::13 + CSharpImplicitExpression - [22..35)::13 + CSharpTransition - [22..23)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [23..35)::12 + CSharpCodeBlock - [23..35)::12 + CSharpExpressionLiteral - [23..35)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [35..42)::7 - [ suffix] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[suffix]; + MarkupTextLiteral - [42..43)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [43..46)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document5.stree.txt index 5a2804e54..9d2dfb5cf 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document5.stree.txt @@ -1,18 +1,38 @@ -Markup block - Gen - 53 - (0:0,0) - Tag block - Gen - 53 - (0:0,0) - input - inputtaghelper - SelfClosing - - data-required - SingleQuotes - Markup block - Gen - 27 - (22:0,22) - Markup span - Gen - [prefix ] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:2 - SyntaxKind.Text;[prefix]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (29:0,29) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (29:0,29) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (30:0,30) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ suffix] - SpanEditHandler;Accepts:Any - (42:0,42) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[suffix]; +RazorDocument - [0..53)::53 - [] + MarkupBlock - [0..53)::53 + MarkupTagHelperElement - [0..53)::53 - input[SelfClosing] - inputtaghelper + MarkupTagHelperStartTag - [0..53)::53 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..50)::44 - data-required - SingleQuotes - Unbound - [ data-required='prefix @DateTime.Now suffix'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..20)::13 - [data-required] - Gen - SpanEditHandler;Accepts:Any + Text;[data-required]; + Equals;[=]; + MarkupTextLiteral - [21..22)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [22..49)::27 + MarkupTextLiteral - [22..29)::7 - [prefix ] - Gen - SpanEditHandler;Accepts:Any + Text;[prefix]; + Whitespace;[ ]; + CSharpCodeBlock - [29..42)::13 + CSharpImplicitExpression - [29..42)::13 + CSharpTransition - [29..30)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [30..42)::12 + CSharpCodeBlock - [30..42)::12 + CSharpExpressionLiteral - [30..42)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [42..49)::7 - [ suffix] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[suffix]; + MarkupTextLiteral - [49..50)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [50..53)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document6.stree.txt index b715994f7..f7880750f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document6.stree.txt @@ -1,20 +1,48 @@ -Markup block - Gen - 82 - (0:0,0) - Tag block - Gen - 82 - (0:0,0) - input - inputtaghelper - SelfClosing - - pre-attribute - Minimized - data-required - SingleQuotes - Markup block - Gen - 27 - (36:0,36) - Markup span - Gen - [prefix ] - SpanEditHandler;Accepts:Any - (36:0,36) - Tokens:2 - SyntaxKind.Text;[prefix]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (43:0,43) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (43:0,43) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (44:0,44) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ suffix] - SpanEditHandler;Accepts:Any - (56:0,56) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[suffix]; - post-attribute - Minimized +RazorDocument - [0..82)::82 - [] + MarkupBlock - [0..82)::82 + MarkupTagHelperElement - [0..82)::82 - input[SelfClosing] - inputtaghelper + MarkupTagHelperStartTag - [0..82)::82 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..20)::14 - pre-attribute - Minimized - Unbound - [ pre-attribute] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..20)::13 - [pre-attribute] - Gen - SpanEditHandler;Accepts:Any + Text;[pre-attribute]; + MarkupTagHelperAttribute - [20..64)::44 - data-required - SingleQuotes - Unbound - [ data-required='prefix @DateTime.Now suffix'] + MarkupTextLiteral - [20..21)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [21..34)::13 - [data-required] - Gen - SpanEditHandler;Accepts:Any + Text;[data-required]; + Equals;[=]; + MarkupTextLiteral - [35..36)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [36..63)::27 + MarkupTextLiteral - [36..43)::7 - [prefix ] - Gen - SpanEditHandler;Accepts:Any + Text;[prefix]; + Whitespace;[ ]; + CSharpCodeBlock - [43..56)::13 + CSharpImplicitExpression - [43..56)::13 + CSharpTransition - [43..44)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [44..56)::12 + CSharpCodeBlock - [44..56)::12 + CSharpExpressionLiteral - [44..56)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [56..63)::7 - [ suffix] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[suffix]; + MarkupTextLiteral - [63..64)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [64..79)::15 - post-attribute - Minimized - Unbound - [ post-attribute] + MarkupTextLiteral - [64..65)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [65..79)::14 - [post-attribute] - Gen - SpanEditHandler;Accepts:Any + Text;[post-attribute]; + MarkupTextLiteral - [79..82)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document7.stree.txt index ca0a4f66e..b0278691b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/GeneratesExpectedOutputForUnboundDataDashAttributes_Document7.stree.txt @@ -1,23 +1,46 @@ -Markup block - Gen - 60 - (0:0,0) - Tag block - Gen - 60 - (0:0,0) - input - inputtaghelper - SelfClosing - - data-required - SingleQuotes - Markup block - Gen - 34 - (22:0,22) - Expression block - Gen - 13 - (22:0,22) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (22:0,22) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (23:0,23) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ middle ] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[middle]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (43:0,43) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (43:0,43) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (44:0,44) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; +RazorDocument - [0..60)::60 - [] + MarkupBlock - [0..60)::60 + MarkupTagHelperElement - [0..60)::60 - input[SelfClosing] - inputtaghelper + MarkupTagHelperStartTag - [0..60)::60 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..57)::51 - data-required - SingleQuotes - Unbound - [ data-required='@DateTime.Now middle @DateTime.Now'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..20)::13 - [data-required] - Gen - SpanEditHandler;Accepts:Any + Text;[data-required]; + Equals;[=]; + MarkupTextLiteral - [21..22)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [22..56)::34 + CSharpCodeBlock - [22..35)::13 + CSharpImplicitExpression - [22..35)::13 + CSharpTransition - [22..23)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [23..35)::12 + CSharpCodeBlock - [23..35)::12 + CSharpExpressionLiteral - [23..35)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [35..43)::8 - [ middle ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[middle]; + Whitespace;[ ]; + CSharpCodeBlock - [43..56)::13 + CSharpImplicitExpression - [43..56)::13 + CSharpTransition - [43..44)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [44..56)::12 + CSharpCodeBlock - [44..56)::12 + CSharpExpressionLiteral - [44..56)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [56..57)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [57..60)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml1.stree.txt index a6d60ffb5..2dd3c5e0d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml1.stree.txt @@ -1,13 +1,23 @@ -Markup block - Gen - 11 - (0:0,0) - Tag block - Gen - 1 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 1 - (1:0,1) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 9 - (2:0,2) - p - ptaghelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [>>] - [5..7) - FullWidth: 2 - Slots: 1 - SyntaxKind.List - [>>] - [5..7) - FullWidth: 2 - Slots: 2 - SyntaxKind.CloseAngle;[>]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..11)::11 - [<<

        >>

        ] + MarkupBlock - [0..11)::11 + MarkupTagBlock - [0..1)::1 - [<] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagBlock - [1..2)::1 - [<] + MarkupTextLiteral - [1..2)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagHelperElement - [2..11)::9 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [2..5)::3 + MarkupTextLiteral - [2..5)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [5..7)::2 - [>>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [7..11)::4 + MarkupTextLiteral - [7..11)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml10.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml10.stree.txt index 57b1b11e0..d2c472f3b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml10.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml10.stree.txt @@ -1,33 +1,49 @@ -Markup block - Gen - 42 - (0:0,0) - Tag block - Gen - 42 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 17 - (3:0,3) - Markup span - Gen - [< ] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:2 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (5:0,5) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (5:0,5) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (6:0,6) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ >] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 3 - (20:0,20) - Markup span - Gen - [ - 13 - (23:0,23) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (23:0,23) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (24:0,24) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.HtmlTextLiteral - [ >] - [36..38) - FullWidth: 2 - Slots: 1 - SyntaxKind.List - [ >] - [36..38) - FullWidth: 2 - Slots: 2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..42)::42 - [

        < @DateTime.Now >

        ] + MarkupBlock - [0..42)::42 + MarkupTagHelperElement - [0..42)::42 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..20)::17 - [< @DateTime.Now >] + MarkupTextLiteral - [3..5)::2 - [< ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Whitespace;[ ]; + CSharpCodeBlock - [5..18)::13 + CSharpImplicitExpression - [5..18)::13 + CSharpTransition - [5..6)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [6..18)::12 + CSharpCodeBlock - [6..18)::12 + CSharpExpressionLiteral - [6..18)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [18..20)::2 - [ >] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTagBlock - [20..23)::3 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Whitespace;[ ]; + CSharpCodeBlock - [23..36)::13 + CSharpImplicitExpression - [23..36)::13 + CSharpTransition - [23..24)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [24..36)::12 + CSharpCodeBlock - [24..36)::12 + CSharpExpressionLiteral - [24..36)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [36..38)::2 - [ >] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [38..42)::4 + MarkupTextLiteral - [38..42)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml2.stree.txt index 25c79c17d..585e25bb5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml2.stree.txt @@ -1,6 +1,13 @@ -Markup block - Gen - 6 - (0:0,0) - Tag block - Gen - 1 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 5 - (1:0,1) - p - ptaghelper - SelfClosing -

        +RazorDocument - [0..6)::6 - [<

        ] + MarkupBlock - [0..6)::6 + MarkupTagBlock - [0..1)::1 - [<] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagHelperElement - [1..6)::5 - p[SelfClosing] - ptaghelper + MarkupTagHelperStartTag - [1..6)::5 + MarkupTextLiteral - [1..6)::5 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml3.stree.txt index 4f181f6f8..aefc90730 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml3.stree.txt @@ -1,12 +1,14 @@ -Markup block - Gen - 6 - (0:0,0) - Tag block - Gen - 6 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Markup block - Gen - 2 - (1:0,1) - Markup span - Gen - [ p] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[p]; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..6)::6 - [< p />] + MarkupBlock - [0..6)::6 + MarkupTagBlock - [0..6)::6 - [< p />] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupMinimizedAttributeBlock - [1..3)::2 - [ p] + MarkupTextLiteral - [1..2)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [2..3)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupTextLiteral - [3..6)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml4.stree.txt index e029295ed..26cda9df4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml4.stree.txt @@ -1,8 +1,15 @@ -Markup block - Gen - 12 - (0:0,0) - Tag block - Gen - 7 - (0:0,0) - Markup span - Gen - [ - 5 - (7:0,7) - p - ptaghelper - SelfClosing -

        +RazorDocument - [0..12)::12 - [] + MarkupBlock - [0..12)::12 + MarkupTagBlock - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + Whitespace;[ ]; + MarkupTagHelperElement - [7..12)::5 - p[SelfClosing] - ptaghelper + MarkupTagHelperStartTag - [7..12)::5 + MarkupTextLiteral - [7..12)::5 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml5.stree.txt index d33773740..4e4800e1a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml5.stree.txt @@ -1,18 +1,29 @@ -Markup block - Gen - 19 - (0:0,0) - Tag block - Gen - 14 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Markup block - Gen - 12 - (1:0,1) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[foo]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 5 - (14:0,14) - p - ptaghelper - SelfClosing -

        +RazorDocument - [0..19)::19 - [< class="foo"

        ] + MarkupBlock - [0..19)::19 + MarkupTagBlock - [0..14)::14 - [< class="foo" ] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupAttributeBlock - [1..13)::12 - [ class="foo"] + MarkupTextLiteral - [1..2)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [2..7)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [8..9)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [9..12)::3 + MarkupLiteralAttributeValue - [9..12)::3 - [foo] + MarkupTextLiteral - [9..12)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [14..19)::5 - p[SelfClosing] - ptaghelper + MarkupTagHelperStartTag - [14..19)::5 + MarkupTextLiteral - [14..19)::5 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml6.stree.txt index 36b6f9d8e..993705be5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml6.stree.txt @@ -1,16 +1,26 @@ -Markup block - Gen - 13 - (0:0,0) - Tag block - Gen - 2 - (0:0,0) - Markup span - Gen - [ - 1 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 9 - (3:0,3) - p - ptaghelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [/>] - [6..8) - FullWidth: 2 - Slots: 1 - SyntaxKind.List - [/>] - [6..8) - FullWidth: 2 - Slots: 2 - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..13)::13 - [/>

        >] + MarkupBlock - [0..13)::13 + MarkupTagBlock - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + MarkupTagBlock - [2..3)::1 - [<] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagHelperElement - [3..12)::9 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [3..6)::3 + MarkupTextLiteral - [3..6)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [6..8)::2 - [/>] - Gen - SpanEditHandler;Accepts:Any + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [8..12)::4 + MarkupTextLiteral - [8..12)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [12..13)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml7.stree.txt index af4b2ac40..5beba63c3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml7.stree.txt @@ -1,21 +1,31 @@ -Markup block - Gen - 21 - (0:0,0) - Tag block - Gen - 2 - (0:0,0) - Markup span - Gen - [ - 1 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 17 - (3:0,3) - p - ptaghelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [/>] - [6..8) - FullWidth: 2 - Slots: 1 - SyntaxKind.List - [/>] - [6..8) - FullWidth: 2 - Slots: 2 - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 8 - (8:0,8) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:1 - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..21)::21 - [/>

        >] + MarkupBlock - [0..21)::21 + MarkupTagBlock - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + MarkupTagBlock - [2..3)::1 - [<] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagHelperElement - [3..20)::17 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [3..6)::3 + MarkupTextLiteral - [3..6)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [6..8)::2 - [/>] - Gen - SpanEditHandler;Accepts:Any + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTagBlock - [8..16)::8 - [] + MarkupTextLiteral - [8..16)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [16..20)::4 + MarkupTextLiteral - [16..20)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [20..21)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml8.stree.txt index 9ff6a024f..f0a3fe94d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml8.stree.txt @@ -1,28 +1,41 @@ -Markup block - Gen - 34 - (0:0,0) - Tag block - Gen - 2 - (0:0,0) - Markup span - Gen - [ - 1 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 30 - (3:0,3) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Expression block - Gen - 13 - (6:0,6) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (6:0,6) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (7:0,7) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.HtmlTextLiteral - [/>] - [19..21) - FullWidth: 2 - Slots: 1 - SyntaxKind.List - [/>] - [19..21) - FullWidth: 2 - Slots: 2 - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 8 - (21:0,21) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:1 - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..34)::34 - [@DateTime.Now/>

        >] + MarkupBlock - [0..34)::34 + MarkupTagBlock - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + MarkupTagBlock - [2..3)::1 - [<] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagHelperElement - [3..33)::30 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [3..6)::3 + MarkupTextLiteral - [3..6)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + CSharpCodeBlock - [6..19)::13 + CSharpImplicitExpression - [6..19)::13 + CSharpTransition - [6..7)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [7..19)::12 + CSharpCodeBlock - [7..19)::12 + CSharpExpressionLiteral - [7..19)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [19..21)::2 - [/>] - Gen - SpanEditHandler;Accepts:Any + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTagBlock - [21..29)::8 - [] + MarkupTextLiteral - [21..29)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [29..33)::4 + MarkupTextLiteral - [29..33)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [33..34)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml9.stree.txt index 57b1cd571..3cccfeb30 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml9.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_AllowsInvalidHtml9.stree.txt @@ -1,39 +1,52 @@ -Markup block - Gen - 52 - (0:0,0) - Tag block - Gen - 4 - (0:0,0) - Markup span - Gen - [ - 4 - (5:0,5) - Markup span - Gen - [< >] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 32 - (9:0,9) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Expression block - Gen - 13 - (12:0,12) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (13:0,13) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.HtmlTextLiteral - [ / >] - [25..29) - FullWidth: 4 - Slots: 1 - SyntaxKind.List - [ / >] - [25..29) - FullWidth: 4 - Slots: 4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 8 - (29:0,29) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (29:0,29) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 11 - (41:0,41) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (41:0,41) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..52)::52 - [

        @DateTime.Now / >

        ] + MarkupBlock - [0..52)::52 + MarkupTagBlock - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Whitespace;[ ]; + MarkupTextLiteral - [4..5)::1 - [/] - Gen - SpanEditHandler;Accepts:Any + ForwardSlash;[/]; + MarkupTagBlock - [5..9)::4 - [< >] + MarkupTextLiteral - [5..9)::4 - [< >] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTagHelperElement - [9..41)::32 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [9..12)::3 + MarkupTextLiteral - [9..12)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + CSharpCodeBlock - [12..25)::13 + CSharpImplicitExpression - [12..25)::13 + CSharpTransition - [12..13)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [13..25)::12 + CSharpCodeBlock - [13..25)::12 + CSharpExpressionLiteral - [13..25)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [25..29)::4 - [ / >] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTagBlock - [29..37)::8 - [] + MarkupTextLiteral - [29..37)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [37..41)::4 + MarkupTextLiteral - [37..41)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [41..52)::11 - [] + MarkupTextLiteral - [41..52)::11 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Whitespace;[ ]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper1.stree.txt index 1f900238b..5a7aad942 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper1.stree.txt @@ -1,27 +1,66 @@ -Markup block - Gen - 73 - (0:0,0) - Tag block - Gen - 64 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - NoQuotes - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[foo]; - dynamic - DoubleQuotes - Markup block - Gen - 13 - (21:0,21) - Markup block - Gen - 13 - (21:0,21) - Expression block - Gen - 13 - (21:0,21) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (22:0,22) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - style - NoQuotes - Markup span - Gen - [color:red;] - SpanEditHandler;Accepts:Any - (41:0,41) - Tokens:1 - SyntaxKind.Text;[color:red;]; - Tag block - Gen - 8 - (52:0,52) - strong - strongtaghelper - StartTagAndEndTag - - Tag block - Gen - 9 - (64:0,64) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (64:0,64) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..73)::73 - [

        ] + MarkupBlock - [0..73)::73 + MarkupTagHelperElement - [0..64)::64 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..52)::52 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..12)::10 - class - NoQuotes - Unbound - [ class=foo] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTagHelperAttributeValue - [9..12)::3 + MarkupLiteralAttributeValue - [9..12)::3 - [foo] + MarkupTextLiteral - [9..12)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTagHelperAttribute - [12..34)::22 - dynamic - DoubleQuotes - Unbound - [ dynamic=@DateTime.Now] + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [13..20)::7 - [dynamic] - Gen - SpanEditHandler;Accepts:Any + Text;[dynamic]; + Equals;[=]; + MarkupTagHelperAttributeValue - [21..34)::13 + MarkupDynamicAttributeValue - [21..34)::13 - [@DateTime.Now] + GenericBlock - [21..34)::13 + CSharpCodeBlock - [21..34)::13 + CSharpImplicitExpression - [21..34)::13 + CSharpTransition - [21..22)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [22..34)::12 + CSharpCodeBlock - [22..34)::12 + CSharpExpressionLiteral - [22..34)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTagHelperAttribute - [34..51)::17 - style - NoQuotes - Unbound - [ style=color:red;] + MarkupTextLiteral - [34..35)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [35..40)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTagHelperAttributeValue - [41..51)::10 + MarkupLiteralAttributeValue - [41..51)::10 - [color:red;] + MarkupTextLiteral - [41..51)::10 - [color:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[color:red;]; + MarkupTextLiteral - [51..52)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperElement - [52..60)::8 - strong[StartTagAndEndTag] - strongtaghelper + MarkupTagHelperStartTag - [52..60)::8 + MarkupTextLiteral - [52..60)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [60..64)::4 + MarkupTextLiteral - [60..64)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [64..73)::9 - [
        ] + MarkupTextLiteral - [64..73)::9 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper2.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper2.cspans.txt index e3b29061b..f4e5ce935 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper2.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper2.cspans.txt @@ -1,4 +1,4 @@ Markup span at (0:0,0 [5] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [5] ) -Markup span at (8:0,8 [6] ) (Accepts:Any) - Parent: Tag block at (5:0,5 [37] ) +Markup span at (8:0,8 [6] ) (Accepts:Any) - Parent: Tag block at (5:0,5 [31] ) Markup span at (22:0,22 [5] ) (Accepts:Any) - Parent: Tag block at (14:0,14 [22] ) Markup span at (36:0,36 [6] ) (Accepts:Any) - Parent: Tag block at (36:0,36 [6] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper2.stree.txt index 4751710d9..cdc5660b9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper2.stree.txt @@ -1,22 +1,36 @@ -Markup block - Gen - 42 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 37 - (5:0,5) - p - ptaghelper - StartTagAndEndTag -

        - SyntaxKind.HtmlTextLiteral - [Hello ] - [8..14) - FullWidth: 6 - Slots: 1 - SyntaxKind.List - [Hello ] - [8..14) - FullWidth: 6 - Slots: 2 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 22 - (14:0,14) - strong - strongtaghelper - StartTagAndEndTag - ... - SyntaxKind.HtmlTextLiteral - [World] - [22..27) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[World]; - Tag block - Gen - 6 - (36:0,36) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (36:0,36) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..42)::42 - [

        Hello World

        ] + MarkupBlock - [0..42)::42 + MarkupTagBlock - [0..5)::5 - [
        ] + MarkupTextLiteral - [0..5)::5 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTagHelperElement - [5..36)::31 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [5..8)::3 + MarkupTextLiteral - [5..8)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [8..14)::6 - [Hello ] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + MarkupTagHelperElement - [14..36)::22 - strong[StartTagAndEndTag] - strongtaghelper + MarkupTagHelperStartTag - [14..22)::8 + MarkupTextLiteral - [14..22)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [22..27)::5 - [World] - Gen - SpanEditHandler;Accepts:Any + Text;[World]; + MarkupTagHelperEndTag - [27..36)::9 + MarkupTextLiteral - [27..36)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [36..42)::6 - [

        ] + MarkupTextLiteral - [36..42)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper2.tspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper2.tspans.txt index 80e567b49..36dd08e81 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper2.tspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper2.tspans.txt @@ -1,2 +1,2 @@ -TagHelper span at (5:0,5 [37] ) - ptaghelper +TagHelper span at (5:0,5 [31] ) - ptaghelper TagHelper span at (14:0,14 [22] ) - strongtaghelper diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper3.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper3.cspans.txt index 0e3bf1526..a003b54d7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper3.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper3.cspans.txt @@ -1,4 +1,4 @@ Markup span at (0:0,0 [5] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [5] ) -Markup span at (8:0,8 [6] ) (Accepts:Any) - Parent: Tag block at (5:0,5 [28] ) -Markup span at (22:0,22 [5] ) (Accepts:Any) - Parent: Tag block at (14:0,14 [19] ) +Markup span at (8:0,8 [6] ) (Accepts:Any) - Parent: Tag block at (5:0,5 [22] ) +Markup span at (22:0,22 [5] ) (Accepts:Any) - Parent: Tag block at (14:0,14 [13] ) Markup span at (27:0,27 [6] ) (Accepts:Any) - Parent: Tag block at (27:0,27 [6] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper3.stree.txt index 9aa52108a..55169c40f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper3.stree.txt @@ -1,22 +1,30 @@ -Markup block - Gen - 33 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 28 - (5:0,5) - p - ptaghelper - StartTagAndEndTag -

        - SyntaxKind.HtmlTextLiteral - [Hello ] - [8..14) - FullWidth: 6 - Slots: 1 - SyntaxKind.List - [Hello ] - [8..14) - FullWidth: 6 - Slots: 2 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 19 - (14:0,14) - strong - strongtaghelper - StartTagAndEndTag - - SyntaxKind.HtmlTextLiteral - [World] - [22..27) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[World]; - Tag block - Gen - 6 - (27:0,27) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..33)::33 - [

        Hello World

        ] + MarkupBlock - [0..33)::33 + MarkupTagBlock - [0..5)::5 - [
        ] + MarkupTextLiteral - [0..5)::5 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTagHelperElement - [5..27)::22 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [5..8)::3 + MarkupTextLiteral - [5..8)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [8..14)::6 - [Hello ] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + MarkupTagHelperElement - [14..27)::13 - strong[StartTagAndEndTag] - strongtaghelper + MarkupTagHelperStartTag - [14..22)::8 + MarkupTextLiteral - [14..22)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [22..27)::5 - [World] - Gen - SpanEditHandler;Accepts:Any + Text;[World]; + MarkupTagBlock - [27..33)::6 - [

        ] + MarkupTextLiteral - [27..33)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper3.tspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper3.tspans.txt index ebd3c39dd..9fc6edf71 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper3.tspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper3.tspans.txt @@ -1,2 +1,2 @@ -TagHelper span at (5:0,5 [28] ) - ptaghelper -TagHelper span at (14:0,14 [19] ) - strongtaghelper +TagHelper span at (5:0,5 [22] ) - ptaghelper +TagHelper span at (14:0,14 [13] ) - strongtaghelper diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper4.stree.txt index bc8e4a8a8..dfb8f3a25 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_CreatesErrorForIncompleteTagHelper4.stree.txt @@ -1,17 +1,55 @@ -Markup block - Gen - 52 - (0:0,0) - Tag block - Gen - 52 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - class - DoubleQuotes - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[foo]; - SyntaxKind.HtmlTextLiteral - [Hello ] - [15..21) - FullWidth: 6 - Slots: 1 - SyntaxKind.List - [Hello ] - [15..21) - FullWidth: 6 - Slots: 2 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 31 - (21:0,21) - p - ptaghelper - StartTagAndEndTag -

        ...

        - style - DoubleQuotes - Markup span - Gen - [color:red;] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.Text;[color:red;]; - SyntaxKind.HtmlTextLiteral - [World] - [43..48) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[World]; +RazorDocument - [0..52)::52 - [

        Hello

        World

        ] + MarkupBlock - [0..52)::52 + MarkupTagHelperElement - [0..52)::52 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..15)::15 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="foo"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [foo] + MarkupTextLiteral - [10..13)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [14..15)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [15..21)::6 - [Hello ] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + MarkupTagHelperElement - [21..52)::31 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [21..43)::22 + MarkupTextLiteral - [21..23)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [23..42)::19 - style - DoubleQuotes - Unbound - [ style="color:red;"] + MarkupTextLiteral - [23..24)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [24..29)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [30..31)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [31..41)::10 + MarkupLiteralAttributeValue - [31..41)::10 - [color:red;] + MarkupTextLiteral - [31..41)::10 - [color:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[color:red;]; + MarkupTextLiteral - [41..42)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [42..43)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [43..48)::5 - [World] - Gen - SpanEditHandler;Accepts:Any + Text;[World]; + MarkupTagHelperEndTag - [48..52)::4 + MarkupTextLiteral - [48..52)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks1.stree.txt index d5dbab8aa..4cd860643 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks1.stree.txt @@ -1,23 +1,61 @@ -Markup block - Gen - 51 - (0:0,0) - Tag block - Gen - 51 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup block - Gen - 13 - (10:0,10) - Markup block - Gen - 13 - (10:0,10) - Expression block - Gen - 13 - (10:0,10) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (11:0,11) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - style - SingleQuotes - Markup block - Gen - 13 - (32:0,32) - Markup block - Gen - 13 - (32:0,32) - Expression block - Gen - 13 - (32:0,32) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (32:0,32) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (33:0,33) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; +RazorDocument - [0..51)::51 - [

        ] + MarkupBlock - [0..51)::51 + MarkupTagHelperElement - [0..51)::51 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..47)::47 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..24)::22 - class - DoubleQuotes - Unbound - [ class="@DateTime.Now"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..23)::13 + MarkupDynamicAttributeValue - [10..23)::13 - [@DateTime.Now] + GenericBlock - [10..23)::13 + CSharpCodeBlock - [10..23)::13 + CSharpImplicitExpression - [10..23)::13 + CSharpTransition - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [11..23)::12 + CSharpCodeBlock - [11..23)::12 + CSharpExpressionLiteral - [11..23)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [23..24)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [24..46)::22 - style - SingleQuotes - Unbound - [ style='@DateTime.Now'] + MarkupTextLiteral - [24..25)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [25..30)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [31..32)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [32..45)::13 + MarkupDynamicAttributeValue - [32..45)::13 - [@DateTime.Now] + GenericBlock - [32..45)::13 + CSharpCodeBlock - [32..45)::13 + CSharpImplicitExpression - [32..45)::13 + CSharpTransition - [32..33)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [33..45)::12 + CSharpCodeBlock - [33..45)::12 + CSharpExpressionLiteral - [33..45)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [45..46)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [46..47)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [47..51)::4 + MarkupTextLiteral - [47..51)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks2.stree.txt index 697539f64..1deded266 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks2.stree.txt @@ -1,105 +1,137 @@ -Markup block - Gen - 153 - (0:0,0) - Tag block - Gen - 153 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup block - Gen - 64 - (10:0,10) - Markup block - Gen - 64 - (10:0,10) - Statement block - Gen - 64 - (10:0,10) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [do { var foo = bar; ] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:13 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - Markup block - Gen - 16 - (31:0,31) - Tag block - Gen - 6 - (31:0,31) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:None - (37:0,37) - Tokens:1 - SyntaxKind.Text;[Foo]; - Tag block - Gen - 7 - (40:0,40) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [ foo++; } while (foo);] - SpanEditHandler;Accepts:None - (47:0,47) - Tokens:16 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Increment;[++]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - style - SingleQuotes - Markup block - Gen - 64 - (83:0,83) - Markup block - Gen - 64 - (83:0,83) - Statement block - Gen - 64 - (83:0,83) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (83:0,83) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [do { var foo = bar; ] - SpanEditHandler;Accepts:Any - (84:0,84) - Tokens:13 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - Markup block - Gen - 16 - (104:0,104) - Tag block - Gen - 6 - (104:0,104) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (104:0,104) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:None - (110:0,110) - Tokens:1 - SyntaxKind.Text;[Foo]; - Tag block - Gen - 7 - (113:0,113) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (113:0,113) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [ foo++; } while (foo);] - SpanEditHandler;Accepts:None - (120:0,120) - Tokens:16 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Increment;[++]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; +RazorDocument - [0..153)::153 - [

        ] + MarkupBlock - [0..153)::153 + MarkupTagHelperElement - [0..153)::153 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..149)::149 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..75)::73 - class - DoubleQuotes - Unbound - [ class="@do { var foo = bar; Foo foo++; } while (foo);"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..74)::64 + MarkupDynamicAttributeValue - [10..74)::64 - [@do { var foo = bar; Foo foo++; } while (foo);] + GenericBlock - [10..74)::64 + CSharpCodeBlock - [10..74)::64 + CSharpTransition - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [11..31)::20 - [do { var foo = bar; ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + Whitespace;[ ]; + MarkupBlock - [31..47)::16 + MarkupTagBlock - [31..37)::6 - [] + MarkupTransition - [31..37)::6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [37..40)::3 - [Foo] - Gen - SpanEditHandler;Accepts:None + Text;[Foo]; + MarkupTagBlock - [40..47)::7 - [] + MarkupTransition - [40..47)::7 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [47..74)::27 - [ foo++; } while (foo);] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Identifier;[foo]; + Increment;[++]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Identifier;[foo]; + LessThan;[<]; + Identifier;[bar]; + GreaterThan;[>]; + RightParenthesis;[)]; + Semicolon;[;]; + MarkupTextLiteral - [74..75)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [75..148)::73 - style - SingleQuotes - Unbound - [ style='@do { var foo = bar; Foo foo++; } while (foo);'] + MarkupTextLiteral - [75..76)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [76..81)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [82..83)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [83..147)::64 + MarkupDynamicAttributeValue - [83..147)::64 - [@do { var foo = bar; Foo foo++; } while (foo);] + GenericBlock - [83..147)::64 + CSharpCodeBlock - [83..147)::64 + CSharpTransition - [83..84)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [84..104)::20 - [do { var foo = bar; ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + Whitespace;[ ]; + MarkupBlock - [104..120)::16 + MarkupTagBlock - [104..110)::6 - [] + MarkupTransition - [104..110)::6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [110..113)::3 - [Foo] - Gen - SpanEditHandler;Accepts:None + Text;[Foo]; + MarkupTagBlock - [113..120)::7 - [] + MarkupTransition - [113..120)::7 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [120..147)::27 - [ foo++; } while (foo);] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Identifier;[foo]; + Increment;[++]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Identifier;[foo]; + LessThan;[<]; + Identifier;[bar]; + GreaterThan;[>]; + RightParenthesis;[)]; + Semicolon;[;]; + MarkupTextLiteral - [147..148)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [148..149)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [149..153)::4 + MarkupTextLiteral - [149..153)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks3.stree.txt index a18de7336..4a018347f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks3.stree.txt @@ -1,28 +1,65 @@ -Markup block - Gen - 62 - (0:0,0) - Tag block - Gen - 62 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup block - Gen - 13 - (10:0,10) - Markup block - Gen - 13 - (10:0,10) - Expression block - Gen - 13 - (10:0,10) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (11:0,11) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - style - SingleQuotes - Markup block - Gen - 13 - (32:0,32) - Markup block - Gen - 13 - (32:0,32) - Expression block - Gen - 13 - (32:0,32) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (32:0,32) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (33:0,33) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.HtmlTextLiteral - [Hello World] - [47..58) - FullWidth: 11 - Slots: 1 - SyntaxKind.List - [Hello World] - [47..58) - FullWidth: 11 - Slots: 3 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; +RazorDocument - [0..62)::62 - [

        Hello World

        ] + MarkupBlock - [0..62)::62 + MarkupTagHelperElement - [0..62)::62 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..47)::47 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..24)::22 - class - DoubleQuotes - Unbound - [ class="@DateTime.Now"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..23)::13 + MarkupDynamicAttributeValue - [10..23)::13 - [@DateTime.Now] + GenericBlock - [10..23)::13 + CSharpCodeBlock - [10..23)::13 + CSharpImplicitExpression - [10..23)::13 + CSharpTransition - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [11..23)::12 + CSharpCodeBlock - [11..23)::12 + CSharpExpressionLiteral - [11..23)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [23..24)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [24..46)::22 - style - SingleQuotes - Unbound - [ style='@DateTime.Now'] + MarkupTextLiteral - [24..25)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [25..30)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [31..32)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [32..45)::13 + MarkupDynamicAttributeValue - [32..45)::13 - [@DateTime.Now] + GenericBlock - [32..45)::13 + CSharpCodeBlock - [32..45)::13 + CSharpImplicitExpression - [32..45)::13 + CSharpTransition - [32..33)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [33..45)::12 + CSharpCodeBlock - [33..45)::12 + CSharpExpressionLiteral - [33..45)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [45..46)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [46..47)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [47..58)::11 - [Hello World] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + MarkupTagHelperEndTag - [58..62)::4 + MarkupTextLiteral - [58..62)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks4.stree.txt index 3f079bb5c..9e369b5d2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks4.stree.txt @@ -1,110 +1,141 @@ -Markup block - Gen - 164 - (0:0,0) - Tag block - Gen - 164 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup block - Gen - 64 - (10:0,10) - Markup block - Gen - 64 - (10:0,10) - Statement block - Gen - 64 - (10:0,10) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [do { var foo = bar; ] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:13 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - Markup block - Gen - 16 - (31:0,31) - Tag block - Gen - 6 - (31:0,31) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:None - (37:0,37) - Tokens:1 - SyntaxKind.Text;[Foo]; - Tag block - Gen - 7 - (40:0,40) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [ foo++; } while (foo);] - SpanEditHandler;Accepts:None - (47:0,47) - Tokens:16 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Increment;[++]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - style - SingleQuotes - Markup block - Gen - 64 - (83:0,83) - Markup block - Gen - 64 - (83:0,83) - Statement block - Gen - 64 - (83:0,83) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (83:0,83) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [do { var foo = bar; ] - SpanEditHandler;Accepts:Any - (84:0,84) - Tokens:13 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - Markup block - Gen - 16 - (104:0,104) - Tag block - Gen - 6 - (104:0,104) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (104:0,104) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:None - (110:0,110) - Tokens:1 - SyntaxKind.Text;[Foo]; - Tag block - Gen - 7 - (113:0,113) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (113:0,113) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [ foo++; } while (foo);] - SpanEditHandler;Accepts:None - (120:0,120) - Tokens:16 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Increment;[++]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.HtmlTextLiteral - [Hello World] - [149..160) - FullWidth: 11 - Slots: 1 - SyntaxKind.List - [Hello World] - [149..160) - FullWidth: 11 - Slots: 3 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; +RazorDocument - [0..164)::164 - [

        Hello World

        ] + MarkupBlock - [0..164)::164 + MarkupTagHelperElement - [0..164)::164 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..149)::149 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..75)::73 - class - DoubleQuotes - Unbound - [ class="@do { var foo = bar; Foo foo++; } while (foo);"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..74)::64 + MarkupDynamicAttributeValue - [10..74)::64 - [@do { var foo = bar; Foo foo++; } while (foo);] + GenericBlock - [10..74)::64 + CSharpCodeBlock - [10..74)::64 + CSharpTransition - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [11..31)::20 - [do { var foo = bar; ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + Whitespace;[ ]; + MarkupBlock - [31..47)::16 + MarkupTagBlock - [31..37)::6 - [] + MarkupTransition - [31..37)::6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [37..40)::3 - [Foo] - Gen - SpanEditHandler;Accepts:None + Text;[Foo]; + MarkupTagBlock - [40..47)::7 - [] + MarkupTransition - [40..47)::7 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [47..74)::27 - [ foo++; } while (foo);] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Identifier;[foo]; + Increment;[++]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Identifier;[foo]; + LessThan;[<]; + Identifier;[bar]; + GreaterThan;[>]; + RightParenthesis;[)]; + Semicolon;[;]; + MarkupTextLiteral - [74..75)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [75..148)::73 - style - SingleQuotes - Unbound - [ style='@do { var foo = bar; Foo foo++; } while (foo);'] + MarkupTextLiteral - [75..76)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [76..81)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [82..83)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [83..147)::64 + MarkupDynamicAttributeValue - [83..147)::64 - [@do { var foo = bar; Foo foo++; } while (foo);] + GenericBlock - [83..147)::64 + CSharpCodeBlock - [83..147)::64 + CSharpTransition - [83..84)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [84..104)::20 - [do { var foo = bar; ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + Whitespace;[ ]; + MarkupBlock - [104..120)::16 + MarkupTagBlock - [104..110)::6 - [] + MarkupTransition - [104..110)::6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [110..113)::3 - [Foo] - Gen - SpanEditHandler;Accepts:None + Text;[Foo]; + MarkupTagBlock - [113..120)::7 - [] + MarkupTransition - [113..120)::7 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [120..147)::27 - [ foo++; } while (foo);] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Identifier;[foo]; + Increment;[++]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Identifier;[foo]; + LessThan;[<]; + Identifier;[bar]; + GreaterThan;[>]; + RightParenthesis;[)]; + Semicolon;[;]; + MarkupTextLiteral - [147..148)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [148..149)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [149..160)::11 - [Hello World] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + MarkupTagHelperEndTag - [160..164)::4 + MarkupTextLiteral - [160..164)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks5.stree.txt index db4d031a9..a63149d76 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks5.stree.txt @@ -1,31 +1,80 @@ -Markup block - Gen - 69 - (0:0,0) - Tag block - Gen - 34 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup block - Gen - 13 - (10:0,10) - Markup block - Gen - 13 - (10:0,10) - Expression block - Gen - 13 - (10:0,10) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (11:0,11) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.HtmlTextLiteral - [Hello] - [25..30) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[Hello]; - SyntaxKind.HtmlTextLiteral - [ ] - [34..35) - FullWidth: 1 - Slots: 1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 34 - (35:0,35) - p - ptaghelper - StartTagAndEndTag -

        ...

        - style - SingleQuotes - Markup block - Gen - 13 - (45:0,45) - Markup block - Gen - 13 - (45:0,45) - Expression block - Gen - 13 - (45:0,45) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (45:0,45) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (46:0,46) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.HtmlTextLiteral - [World] - [60..65) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[World]; +RazorDocument - [0..69)::69 - [

        Hello

        World

        ] + MarkupBlock - [0..69)::69 + MarkupTagHelperElement - [0..34)::34 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..25)::25 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..24)::22 - class - DoubleQuotes - Unbound - [ class="@DateTime.Now"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..23)::13 + MarkupDynamicAttributeValue - [10..23)::13 - [@DateTime.Now] + GenericBlock - [10..23)::13 + CSharpCodeBlock - [10..23)::13 + CSharpImplicitExpression - [10..23)::13 + CSharpTransition - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [11..23)::12 + CSharpCodeBlock - [11..23)::12 + CSharpExpressionLiteral - [11..23)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [23..24)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [24..25)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [25..30)::5 - [Hello] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + MarkupTagHelperEndTag - [30..34)::4 + MarkupTextLiteral - [30..34)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [34..35)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [35..69)::34 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [35..60)::25 + MarkupTextLiteral - [35..37)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [37..59)::22 - style - SingleQuotes - Unbound - [ style='@DateTime.Now'] + MarkupTextLiteral - [37..38)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [38..43)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [44..45)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [45..58)::13 + MarkupDynamicAttributeValue - [45..58)::13 - [@DateTime.Now] + GenericBlock - [45..58)::13 + CSharpCodeBlock - [45..58)::13 + CSharpImplicitExpression - [45..58)::13 + CSharpTransition - [45..46)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [46..58)::12 + CSharpCodeBlock - [46..58)::12 + CSharpExpressionLiteral - [46..58)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [58..59)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [59..60)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [60..65)::5 - [World] - Gen - SpanEditHandler;Accepts:Any + Text;[World]; + MarkupTagHelperEndTag - [65..69)::4 + MarkupTextLiteral - [65..69)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks6.stree.txt index bfe617397..b58398f16 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks6.stree.txt @@ -1,113 +1,156 @@ -Markup block - Gen - 171 - (0:0,0) - Tag block - Gen - 85 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup block - Gen - 64 - (10:0,10) - Markup block - Gen - 64 - (10:0,10) - Statement block - Gen - 64 - (10:0,10) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [do { var foo = bar; ] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:13 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - Markup block - Gen - 16 - (31:0,31) - Tag block - Gen - 6 - (31:0,31) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:None - (37:0,37) - Tokens:1 - SyntaxKind.Text;[Foo]; - Tag block - Gen - 7 - (40:0,40) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [ foo++; } while (foo);] - SpanEditHandler;Accepts:None - (47:0,47) - Tokens:16 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Increment;[++]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.HtmlTextLiteral - [Hello] - [76..81) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[Hello]; - SyntaxKind.HtmlTextLiteral - [ ] - [85..86) - FullWidth: 1 - Slots: 1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 85 - (86:0,86) - p - ptaghelper - StartTagAndEndTag -

        ...

        - style - SingleQuotes - Markup block - Gen - 64 - (96:0,96) - Markup block - Gen - 64 - (96:0,96) - Statement block - Gen - 64 - (96:0,96) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (96:0,96) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [do { var foo = bar; ] - SpanEditHandler;Accepts:Any - (97:0,97) - Tokens:13 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - Markup block - Gen - 16 - (117:0,117) - Tag block - Gen - 6 - (117:0,117) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (117:0,117) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:None - (123:0,123) - Tokens:1 - SyntaxKind.Text;[Foo]; - Tag block - Gen - 7 - (126:0,126) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (126:0,126) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [ foo++; } while (foo);] - SpanEditHandler;Accepts:None - (133:0,133) - Tokens:16 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Increment;[++]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.HtmlTextLiteral - [World] - [162..167) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[World]; +RazorDocument - [0..171)::171 - [

        Hello

        World

        ] + MarkupBlock - [0..171)::171 + MarkupTagHelperElement - [0..85)::85 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..76)::76 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..75)::73 - class - DoubleQuotes - Unbound - [ class="@do { var foo = bar; Foo foo++; } while (foo);"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..74)::64 + MarkupDynamicAttributeValue - [10..74)::64 - [@do { var foo = bar; Foo foo++; } while (foo);] + GenericBlock - [10..74)::64 + CSharpCodeBlock - [10..74)::64 + CSharpTransition - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [11..31)::20 - [do { var foo = bar; ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + Whitespace;[ ]; + MarkupBlock - [31..47)::16 + MarkupTagBlock - [31..37)::6 - [] + MarkupTransition - [31..37)::6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [37..40)::3 - [Foo] - Gen - SpanEditHandler;Accepts:None + Text;[Foo]; + MarkupTagBlock - [40..47)::7 - [] + MarkupTransition - [40..47)::7 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [47..74)::27 - [ foo++; } while (foo);] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Identifier;[foo]; + Increment;[++]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Identifier;[foo]; + LessThan;[<]; + Identifier;[bar]; + GreaterThan;[>]; + RightParenthesis;[)]; + Semicolon;[;]; + MarkupTextLiteral - [74..75)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [75..76)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [76..81)::5 - [Hello] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + MarkupTagHelperEndTag - [81..85)::4 + MarkupTextLiteral - [81..85)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [85..86)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [86..171)::85 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [86..162)::76 + MarkupTextLiteral - [86..88)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [88..161)::73 - style - SingleQuotes - Unbound - [ style='@do { var foo = bar; Foo foo++; } while (foo);'] + MarkupTextLiteral - [88..89)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [89..94)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [95..96)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [96..160)::64 + MarkupDynamicAttributeValue - [96..160)::64 - [@do { var foo = bar; Foo foo++; } while (foo);] + GenericBlock - [96..160)::64 + CSharpCodeBlock - [96..160)::64 + CSharpTransition - [96..97)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [97..117)::20 - [do { var foo = bar; ] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + Whitespace;[ ]; + MarkupBlock - [117..133)::16 + MarkupTagBlock - [117..123)::6 - [] + MarkupTransition - [117..123)::6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [123..126)::3 - [Foo] - Gen - SpanEditHandler;Accepts:None + Text;[Foo]; + MarkupTagBlock - [126..133)::7 - [] + MarkupTransition - [126..133)::7 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [133..160)::27 - [ foo++; } while (foo);] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + Identifier;[foo]; + Increment;[++]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Identifier;[foo]; + LessThan;[<]; + Identifier;[bar]; + GreaterThan;[>]; + RightParenthesis;[)]; + Semicolon;[;]; + MarkupTextLiteral - [160..161)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [161..162)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [162..167)::5 - [World] - Gen - SpanEditHandler;Accepts:Any + Text;[World]; + MarkupTagHelperEndTag - [167..171)::4 + MarkupTextLiteral - [167..171)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks7.stree.txt index 9433379ab..26ac739f7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexAttributeTagHelperTagBlocks7.stree.txt @@ -1,66 +1,109 @@ -Markup block - Gen - 122 - (0:0,0) - Tag block - Gen - 122 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup block - Gen - 13 - (10:0,10) - Markup block - Gen - 13 - (10:0,10) - Expression block - Gen - 13 - (10:0,10) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (11:0,11) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - style - SingleQuotes - Markup block - Gen - 13 - (32:0,32) - Markup block - Gen - 13 - (32:0,32) - Expression block - Gen - 13 - (32:0,32) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (32:0,32) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (33:0,33) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.HtmlTextLiteral - [Hello World ] - [47..59) - FullWidth: 12 - Slots: 1 - SyntaxKind.List - [Hello World ] - [47..59) - FullWidth: 12 - Slots: 4 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 30 - (59:0,59) - Markup span - Gen - [ - 22 - (66:0,66) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (66:0,66) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup block - Gen - 13 - (74:0,74) - Expression block - Gen - 13 - (74:0,74) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (74:0,74) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (75:0,75) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (87:0,87) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (88:0,88) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [inside of strong tag] - [89..109) - FullWidth: 20 - Slots: 1 - SyntaxKind.List - [inside of strong tag] - [89..109) - FullWidth: 20 - Slots: 7 - SyntaxKind.Text;[inside]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[of]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[strong]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[tag]; - Tag block - Gen - 9 - (109:0,109) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (109:0,109) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..122)::122 - [

        Hello World inside of strong tag

        ] + MarkupBlock - [0..122)::122 + MarkupTagHelperElement - [0..122)::122 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..47)::47 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..24)::22 - class - DoubleQuotes - Unbound - [ class="@DateTime.Now"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..23)::13 + MarkupDynamicAttributeValue - [10..23)::13 - [@DateTime.Now] + GenericBlock - [10..23)::13 + CSharpCodeBlock - [10..23)::13 + CSharpImplicitExpression - [10..23)::13 + CSharpTransition - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [11..23)::12 + CSharpCodeBlock - [11..23)::12 + CSharpExpressionLiteral - [11..23)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [23..24)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [24..46)::22 - style - SingleQuotes - Unbound - [ style='@DateTime.Now'] + MarkupTextLiteral - [24..25)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [25..30)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [31..32)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [32..45)::13 + MarkupDynamicAttributeValue - [32..45)::13 - [@DateTime.Now] + GenericBlock - [32..45)::13 + CSharpCodeBlock - [32..45)::13 + CSharpImplicitExpression - [32..45)::13 + CSharpTransition - [32..33)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [33..45)::12 + CSharpCodeBlock - [33..45)::12 + CSharpExpressionLiteral - [33..45)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [45..46)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [46..47)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [47..59)::12 - [Hello World ] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + Whitespace;[ ]; + MarkupTagBlock - [59..89)::30 - [] + MarkupTextLiteral - [59..66)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupAttributeBlock - [66..88)::22 - [ class="@DateTime.Now"] + MarkupTextLiteral - [66..67)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [67..72)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [73..74)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [74..87)::13 + MarkupDynamicAttributeValue - [74..87)::13 - [@DateTime.Now] + GenericBlock - [74..87)::13 + CSharpCodeBlock - [74..87)::13 + CSharpImplicitExpression - [74..87)::13 + CSharpTransition - [74..75)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [75..87)::12 + CSharpCodeBlock - [75..87)::12 + CSharpExpressionLiteral - [75..87)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [87..88)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [88..89)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [89..109)::20 - [inside of strong tag] - Gen - SpanEditHandler;Accepts:Any + Text;[inside]; + Whitespace;[ ]; + Text;[of]; + Whitespace;[ ]; + Text;[strong]; + Whitespace;[ ]; + Text;[tag]; + MarkupTagBlock - [109..118)::9 - [] + MarkupTextLiteral - [109..118)::9 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [118..122)::4 + MarkupTextLiteral - [118..122)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks1.stree.txt index ac7dc6b91..46e658962 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks1.stree.txt @@ -1,10 +1,24 @@ -Markup block - Gen - 20 - (0:0,0) - Tag block - Gen - 20 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Expression block - Gen - 13 - (3:0,3) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (4:0,4) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; +RazorDocument - [0..20)::20 - [

        @DateTime.Now

        ] + MarkupBlock - [0..20)::20 + MarkupTagHelperElement - [0..20)::20 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + CSharpCodeBlock - [3..16)::13 + CSharpImplicitExpression - [3..16)::13 + CSharpTransition - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [4..16)::12 + CSharpCodeBlock - [4..16)::12 + CSharpExpressionLiteral - [4..16)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTagHelperEndTag - [16..20)::4 + MarkupTextLiteral - [16..20)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks2.stree.txt index 1d83c0671..c7fd68879 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks2.stree.txt @@ -1,44 +1,65 @@ -Markup block - Gen - 65 - (0:0,0) - Tag block - Gen - 65 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Statement block - Gen - 58 - (3:0,3) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [do { var foo = bar;] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:12 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - Markup block - Gen - 12 - (23:0,23) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 10 - (24:0,24) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (34:0,34) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [foo++; } while (foo);] - SpanEditHandler;Accepts:None - (35:0,35) - Tokens:15 - SyntaxKind.Identifier;[foo]; - SyntaxKind.Increment;[++]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; +RazorDocument - [0..65)::65 - [

        @do { var foo = bar;

        Foo

        foo++; } while (foo);

        ] + MarkupBlock - [0..65)::65 + MarkupTagHelperElement - [0..65)::65 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + CSharpCodeBlock - [3..61)::58 + CSharpTransition - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [4..23)::19 - [do { var foo = bar;] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + MarkupBlock - [23..35)::12 + MarkupTextLiteral - [23..24)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [24..34)::10 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [24..27)::3 + MarkupTextLiteral - [24..27)::3 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [27..30)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTagHelperEndTag - [30..34)::4 + MarkupTextLiteral - [30..34)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [34..35)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [35..61)::26 - [foo++; } while (foo);] - Gen - SpanEditHandler;Accepts:None + Identifier;[foo]; + Increment;[++]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Identifier;[foo]; + LessThan;[<]; + Identifier;[bar]; + GreaterThan;[>]; + RightParenthesis;[)]; + Semicolon;[;]; + MarkupTagHelperEndTag - [61..65)::4 + MarkupTextLiteral - [61..65)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks3.stree.txt index c5ba36436..316334424 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks3.stree.txt @@ -1,15 +1,29 @@ -Markup block - Gen - 32 - (0:0,0) - Tag block - Gen - 32 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Markup span - Gen - [Hello World ] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:4 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (15:0,15) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (16:0,16) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; +RazorDocument - [0..32)::32 - [

        Hello World @DateTime.Now

        ] + MarkupBlock - [0..32)::32 + MarkupTagHelperElement - [0..32)::32 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..15)::12 - [Hello World ] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + Whitespace;[ ]; + CSharpCodeBlock - [15..28)::13 + CSharpImplicitExpression - [15..28)::13 + CSharpTransition - [15..16)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [16..28)::12 + CSharpCodeBlock - [16..28)::12 + CSharpExpressionLiteral - [16..28)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTagHelperEndTag - [28..32)::4 + MarkupTextLiteral - [28..32)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks4.stree.txt index 3d0d33de6..018a58a68 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks4.stree.txt @@ -1,49 +1,70 @@ -Markup block - Gen - 77 - (0:0,0) - Tag block - Gen - 77 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Markup span - Gen - [Hello World ] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:4 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; - SyntaxKind.Whitespace;[ ]; - Statement block - Gen - 58 - (15:0,15) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [do { var foo = bar;] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:12 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - Markup block - Gen - 12 - (35:0,35) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 10 - (36:0,36) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (39:0,39) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (46:0,46) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [foo++; } while (foo);] - SpanEditHandler;Accepts:None - (47:0,47) - Tokens:15 - SyntaxKind.Identifier;[foo]; - SyntaxKind.Increment;[++]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; +RazorDocument - [0..77)::77 - [

        Hello World @do { var foo = bar;

        Foo

        foo++; } while (foo);

        ] + MarkupBlock - [0..77)::77 + MarkupTagHelperElement - [0..77)::77 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..15)::12 - [Hello World ] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + Whitespace;[ ]; + CSharpCodeBlock - [15..73)::58 + CSharpTransition - [15..16)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [16..35)::19 - [do { var foo = bar;] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + MarkupBlock - [35..47)::12 + MarkupTextLiteral - [35..36)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [36..46)::10 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [36..39)::3 + MarkupTextLiteral - [36..39)::3 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [39..42)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTagHelperEndTag - [42..46)::4 + MarkupTextLiteral - [42..46)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [46..47)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [47..73)::26 - [foo++; } while (foo);] - Gen - SpanEditHandler;Accepts:None + Identifier;[foo]; + Increment;[++]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Identifier;[foo]; + LessThan;[<]; + Identifier;[bar]; + GreaterThan;[>]; + RightParenthesis;[)]; + Semicolon;[;]; + MarkupTagHelperEndTag - [73..77)::4 + MarkupTextLiteral - [73..77)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks5.stree.txt index f63f6e58d..665530f01 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks5.stree.txt @@ -1,21 +1,48 @@ -Markup block - Gen - 41 - (0:0,0) - Tag block - Gen - 20 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Expression block - Gen - 13 - (3:0,3) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (4:0,4) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.HtmlTextLiteral - [ ] - [20..21) - FullWidth: 1 - Slots: 1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 20 - (21:0,21) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Expression block - Gen - 13 - (24:0,24) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (25:0,25) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; +RazorDocument - [0..41)::41 - [

        @DateTime.Now

        @DateTime.Now

        ] + MarkupBlock - [0..41)::41 + MarkupTagHelperElement - [0..20)::20 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + CSharpCodeBlock - [3..16)::13 + CSharpImplicitExpression - [3..16)::13 + CSharpTransition - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [4..16)::12 + CSharpCodeBlock - [4..16)::12 + CSharpExpressionLiteral - [4..16)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTagHelperEndTag - [16..20)::4 + MarkupTextLiteral - [16..20)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [20..21)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [21..41)::20 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [21..24)::3 + MarkupTextLiteral - [21..24)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + CSharpCodeBlock - [24..37)::13 + CSharpImplicitExpression - [24..37)::13 + CSharpTransition - [24..25)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [25..37)::12 + CSharpCodeBlock - [25..37)::12 + CSharpExpressionLiteral - [25..37)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTagHelperEndTag - [37..41)::4 + MarkupTextLiteral - [37..41)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks6.stree.txt index 2d1b78b0b..330c1f53a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks6.stree.txt @@ -1,89 +1,130 @@ -Markup block - Gen - 131 - (0:0,0) - Tag block - Gen - 65 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Statement block - Gen - 58 - (3:0,3) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [do { var foo = bar;] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:12 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - Markup block - Gen - 12 - (23:0,23) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 10 - (24:0,24) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (34:0,34) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [foo++; } while (foo);] - SpanEditHandler;Accepts:None - (35:0,35) - Tokens:15 - SyntaxKind.Identifier;[foo]; - SyntaxKind.Increment;[++]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.HtmlTextLiteral - [ ] - [65..66) - FullWidth: 1 - Slots: 1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 65 - (66:0,66) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Statement block - Gen - 58 - (69:0,69) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (69:0,69) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [do { var foo = bar;] - SpanEditHandler;Accepts:Any - (70:0,70) - Tokens:12 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - Markup block - Gen - 12 - (89:0,89) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (89:0,89) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 10 - (90:0,90) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (93:0,93) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (100:0,100) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [foo++; } while (foo);] - SpanEditHandler;Accepts:None - (101:0,101) - Tokens:15 - SyntaxKind.Identifier;[foo]; - SyntaxKind.Increment;[++]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; +RazorDocument - [0..131)::131 - [

        @do { var foo = bar;

        Foo

        foo++; } while (foo);

        @do { var foo = bar;

        Foo

        foo++; } while (foo);

        ] + MarkupBlock - [0..131)::131 + MarkupTagHelperElement - [0..65)::65 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + CSharpCodeBlock - [3..61)::58 + CSharpTransition - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [4..23)::19 - [do { var foo = bar;] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + MarkupBlock - [23..35)::12 + MarkupTextLiteral - [23..24)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [24..34)::10 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [24..27)::3 + MarkupTextLiteral - [24..27)::3 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [27..30)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTagHelperEndTag - [30..34)::4 + MarkupTextLiteral - [30..34)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [34..35)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [35..61)::26 - [foo++; } while (foo);] - Gen - SpanEditHandler;Accepts:None + Identifier;[foo]; + Increment;[++]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Identifier;[foo]; + LessThan;[<]; + Identifier;[bar]; + GreaterThan;[>]; + RightParenthesis;[)]; + Semicolon;[;]; + MarkupTagHelperEndTag - [61..65)::4 + MarkupTextLiteral - [61..65)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [65..66)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [66..131)::65 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [66..69)::3 + MarkupTextLiteral - [66..69)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + CSharpCodeBlock - [69..127)::58 + CSharpTransition - [69..70)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [70..89)::19 - [do { var foo = bar;] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + MarkupBlock - [89..101)::12 + MarkupTextLiteral - [89..90)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [90..100)::10 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [90..93)::3 + MarkupTextLiteral - [90..93)::3 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [93..96)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTagHelperEndTag - [96..100)::4 + MarkupTextLiteral - [96..100)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [100..101)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [101..127)::26 - [foo++; } while (foo);] - Gen - SpanEditHandler;Accepts:None + Identifier;[foo]; + Increment;[++]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Identifier;[foo]; + LessThan;[<]; + Identifier;[bar]; + GreaterThan;[>]; + RightParenthesis;[)]; + Semicolon;[;]; + MarkupTagHelperEndTag - [127..131)::4 + MarkupTextLiteral - [127..131)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks7.stree.txt index 5a970df06..3e4acaf16 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks7.stree.txt @@ -1,42 +1,58 @@ -Markup block - Gen - 77 - (0:0,0) - Tag block - Gen - 77 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Markup span - Gen - [Hello ] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:2 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (9:0,9) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (10:0,10) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Tag block - Gen - 8 - (22:0,22) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [inside of ] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:4 - SyntaxKind.Text;[inside]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[of]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (40:0,40) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (41:0,41) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.HtmlTextLiteral - [ strong tag] - [53..64) - FullWidth: 11 - Slots: 1 - SyntaxKind.List - [ strong tag] - [53..64) - FullWidth: 11 - Slots: 4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[strong]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[tag]; - Tag block - Gen - 9 - (64:0,64) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (64:0,64) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..77)::77 - [

        Hello @DateTime.Nowinside of @DateTime.Now strong tag

        ] + MarkupBlock - [0..77)::77 + MarkupTagHelperElement - [0..77)::77 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..9)::6 - [Hello ] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + CSharpCodeBlock - [9..22)::13 + CSharpImplicitExpression - [9..22)::13 + CSharpTransition - [9..10)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [10..22)::12 + CSharpCodeBlock - [10..22)::12 + CSharpExpressionLiteral - [10..22)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTagBlock - [22..30)::8 - [] + MarkupTextLiteral - [22..30)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [30..40)::10 - [inside of ] - Gen - SpanEditHandler;Accepts:Any + Text;[inside]; + Whitespace;[ ]; + Text;[of]; + Whitespace;[ ]; + CSharpCodeBlock - [40..53)::13 + CSharpImplicitExpression - [40..53)::13 + CSharpTransition - [40..41)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [41..53)::12 + CSharpCodeBlock - [41..53)::12 + CSharpExpressionLiteral - [41..53)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [53..64)::11 - [ strong tag] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[strong]; + Whitespace;[ ]; + Text;[tag]; + MarkupTagBlock - [64..73)::9 - [] + MarkupTextLiteral - [64..73)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [73..77)::4 + MarkupTextLiteral - [73..77)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks8.stree.txt index 5792836bd..41311d316 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesComplexTagHelperTagBlocks8.stree.txt @@ -1,110 +1,140 @@ -Markup block - Gen - 167 - (0:0,0) - Tag block - Gen - 167 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Markup span - Gen - [Hello ] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:2 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - Statement block - Gen - 58 - (9:0,9) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [do { var foo = bar;] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:12 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - Markup block - Gen - 12 - (29:0,29) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (29:0,29) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 10 - (30:0,30) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [foo++; } while (foo);] - SpanEditHandler;Accepts:None - (41:0,41) - Tokens:15 - SyntaxKind.Identifier;[foo]; - SyntaxKind.Increment;[++]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - Tag block - Gen - 8 - (67:0,67) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (67:0,67) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [inside of ] - SpanEditHandler;Accepts:Any - (75:0,75) - Tokens:4 - SyntaxKind.Text;[inside]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[of]; - SyntaxKind.Whitespace;[ ]; - Statement block - Gen - 58 - (85:0,85) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (85:0,85) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [do { var foo = bar;] - SpanEditHandler;Accepts:Any - (86:0,86) - Tokens:12 - SyntaxKind.Keyword;[do]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[var]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Assign;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.Semicolon;[;]; - Markup block - Gen - 12 - (105:0,105) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (105:0,105) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 10 - (106:0,106) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (109:0,109) - Tokens:1 - SyntaxKind.Text;[Foo]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (116:0,116) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [foo++; } while (foo);] - SpanEditHandler;Accepts:None - (117:0,117) - Tokens:15 - SyntaxKind.Identifier;[foo]; - SyntaxKind.Increment;[++]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[while]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.HtmlTextLiteral - [ strong tag] - [143..154) - FullWidth: 11 - Slots: 1 - SyntaxKind.List - [ strong tag] - [143..154) - FullWidth: 11 - Slots: 4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[strong]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[tag]; - Tag block - Gen - 9 - (154:0,154) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (154:0,154) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..167)::167 - [

        Hello @do { var foo = bar;

        Foo

        foo++; } while (foo);inside of @do { var foo = bar;

        Foo

        foo++; } while (foo); strong tag

        ] + MarkupBlock - [0..167)::167 + MarkupTagHelperElement - [0..167)::167 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..9)::6 - [Hello ] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + CSharpCodeBlock - [9..67)::58 + CSharpTransition - [9..10)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [10..29)::19 - [do { var foo = bar;] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + MarkupBlock - [29..41)::12 + MarkupTextLiteral - [29..30)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [30..40)::10 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [30..33)::3 + MarkupTextLiteral - [30..33)::3 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [33..36)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTagHelperEndTag - [36..40)::4 + MarkupTextLiteral - [36..40)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [40..41)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [41..67)::26 - [foo++; } while (foo);] - Gen - SpanEditHandler;Accepts:None + Identifier;[foo]; + Increment;[++]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Identifier;[foo]; + LessThan;[<]; + Identifier;[bar]; + GreaterThan;[>]; + RightParenthesis;[)]; + Semicolon;[;]; + MarkupTagBlock - [67..75)::8 - [] + MarkupTextLiteral - [67..75)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [75..85)::10 - [inside of ] - Gen - SpanEditHandler;Accepts:Any + Text;[inside]; + Whitespace;[ ]; + Text;[of]; + Whitespace;[ ]; + CSharpCodeBlock - [85..143)::58 + CSharpTransition - [85..86)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [86..105)::19 - [do { var foo = bar;] - Gen - SpanEditHandler;Accepts:Any + Keyword;[do]; + Whitespace;[ ]; + LeftBrace;[{]; + Whitespace;[ ]; + Identifier;[var]; + Whitespace;[ ]; + Identifier;[foo]; + Whitespace;[ ]; + Assign;[=]; + Whitespace;[ ]; + Identifier;[bar]; + Semicolon;[;]; + MarkupBlock - [105..117)::12 + MarkupTextLiteral - [105..106)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [106..116)::10 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [106..109)::3 + MarkupTextLiteral - [106..109)::3 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [109..112)::3 - [Foo] - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + MarkupTagHelperEndTag - [112..116)::4 + MarkupTextLiteral - [112..116)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [116..117)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [117..143)::26 - [foo++; } while (foo);] - Gen - SpanEditHandler;Accepts:None + Identifier;[foo]; + Increment;[++]; + Semicolon;[;]; + Whitespace;[ ]; + RightBrace;[}]; + Whitespace;[ ]; + Keyword;[while]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Identifier;[foo]; + LessThan;[<]; + Identifier;[bar]; + GreaterThan;[>]; + RightParenthesis;[)]; + Semicolon;[;]; + MarkupTextLiteral - [143..154)::11 - [ strong tag] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[strong]; + Whitespace;[ ]; + Text;[tag]; + MarkupTagBlock - [154..163)::9 - [
        ] + MarkupTextLiteral - [154..163)::9 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [163..167)::4 + MarkupTextLiteral - [163..167)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesOddlySpacedTagHelperTagBlocks1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesOddlySpacedTagHelperTagBlocks1.stree.txt index d789af3ce..6b15f8da5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesOddlySpacedTagHelperTagBlocks1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesOddlySpacedTagHelperTagBlocks1.stree.txt @@ -1,23 +1,66 @@ -Markup block - Gen - 66 - (0:0,0) - Tag block - Gen - 66 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [ foo] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - style - DoubleQuotes - Markup block - Gen - 21 - (35:0,35) - Markup span - Gen - [ color] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[color]; - Markup span - Gen - [ :] - SpanEditHandler;Accepts:Any - (43:0,43) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[:]; - Markup span - Gen - [ red] - SpanEditHandler;Accepts:Any - (45:0,45) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[red]; - Markup span - Gen - [ ;] - SpanEditHandler;Accepts:Any - (50:0,50) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[;]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (53:0,53) - Tokens:1 - SyntaxKind.Whitespace;[ ]; +RazorDocument - [0..66)::66 - [

        ] + MarkupBlock - [0..66)::66 + MarkupTagHelperElement - [0..66)::66 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..62)::62 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..24)::22 - class - DoubleQuotes - Unbound - [ class=" foo"] + MarkupTextLiteral - [2..8)::6 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..13)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [14..15)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [15..23)::8 + MarkupLiteralAttributeValue - [15..23)::8 - [ foo] + MarkupTextLiteral - [15..20)::5 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [20..23)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTextLiteral - [23..24)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [24..57)::33 - style - DoubleQuotes - Unbound - [ style=" color : red ; "] + MarkupTextLiteral - [24..28)::4 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [28..33)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [34..35)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [35..56)::21 + MarkupLiteralAttributeValue - [35..43)::8 - [ color] + MarkupTextLiteral - [35..38)::3 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [38..43)::5 - [color] - Gen - SpanEditHandler;Accepts:Any + Text;[color]; + MarkupLiteralAttributeValue - [43..45)::2 - [ :] + MarkupTextLiteral - [43..44)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [44..45)::1 - [:] - Gen - SpanEditHandler;Accepts:Any + Text;[:]; + MarkupLiteralAttributeValue - [45..50)::5 - [ red] + MarkupTextLiteral - [45..47)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [47..50)::3 - [red] - Gen - SpanEditHandler;Accepts:Any + Text;[red]; + MarkupLiteralAttributeValue - [50..53)::3 - [ ;] + MarkupTextLiteral - [50..52)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [52..53)::1 - [;] - Gen - SpanEditHandler;Accepts:Any + Text;[;]; + MarkupLiteralAttributeValue - [53..56)::3 - [ ] + MarkupTextLiteral - [53..56)::3 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [56..57)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [57..62)::5 - [ >] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [62..66)::4 + MarkupTextLiteral - [62..66)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesOddlySpacedTagHelperTagBlocks2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesOddlySpacedTagHelperTagBlocks2.stree.txt index 081b464a5..6faa9a458 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesOddlySpacedTagHelperTagBlocks2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesOddlySpacedTagHelperTagBlocks2.stree.txt @@ -1,28 +1,70 @@ -Markup block - Gen - 77 - (0:0,0) - Tag block - Gen - 77 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [ foo] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - style - DoubleQuotes - Markup block - Gen - 21 - (35:0,35) - Markup span - Gen - [ color] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[color]; - Markup span - Gen - [ :] - SpanEditHandler;Accepts:Any - (43:0,43) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[:]; - Markup span - Gen - [ red] - SpanEditHandler;Accepts:Any - (45:0,45) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[red]; - Markup span - Gen - [ ;] - SpanEditHandler;Accepts:Any - (50:0,50) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[;]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (53:0,53) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.HtmlTextLiteral - [Hello World] - [62..73) - FullWidth: 11 - Slots: 1 - SyntaxKind.List - [Hello World] - [62..73) - FullWidth: 11 - Slots: 3 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; +RazorDocument - [0..77)::77 - [

        Hello World

        ] + MarkupBlock - [0..77)::77 + MarkupTagHelperElement - [0..77)::77 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..62)::62 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..24)::22 - class - DoubleQuotes - Unbound - [ class=" foo"] + MarkupTextLiteral - [2..8)::6 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..13)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [14..15)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [15..23)::8 + MarkupLiteralAttributeValue - [15..23)::8 - [ foo] + MarkupTextLiteral - [15..20)::5 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [20..23)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTextLiteral - [23..24)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [24..57)::33 - style - DoubleQuotes - Unbound - [ style=" color : red ; "] + MarkupTextLiteral - [24..28)::4 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [28..33)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [34..35)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [35..56)::21 + MarkupLiteralAttributeValue - [35..43)::8 - [ color] + MarkupTextLiteral - [35..38)::3 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [38..43)::5 - [color] - Gen - SpanEditHandler;Accepts:Any + Text;[color]; + MarkupLiteralAttributeValue - [43..45)::2 - [ :] + MarkupTextLiteral - [43..44)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [44..45)::1 - [:] - Gen - SpanEditHandler;Accepts:Any + Text;[:]; + MarkupLiteralAttributeValue - [45..50)::5 - [ red] + MarkupTextLiteral - [45..47)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [47..50)::3 - [red] - Gen - SpanEditHandler;Accepts:Any + Text;[red]; + MarkupLiteralAttributeValue - [50..53)::3 - [ ;] + MarkupTextLiteral - [50..52)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [52..53)::1 - [;] - Gen - SpanEditHandler;Accepts:Any + Text;[;]; + MarkupLiteralAttributeValue - [53..56)::3 - [ ] + MarkupTextLiteral - [53..56)::3 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [56..57)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [57..62)::5 - [ >] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTextLiteral - [62..73)::11 - [Hello World] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + MarkupTagHelperEndTag - [73..77)::4 + MarkupTextLiteral - [73..77)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesOddlySpacedTagHelperTagBlocks3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesOddlySpacedTagHelperTagBlocks3.stree.txt index 34ec32f38..9e987e23a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesOddlySpacedTagHelperTagBlocks3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesOddlySpacedTagHelperTagBlocks3.stree.txt @@ -1,25 +1,74 @@ -Markup block - Gen - 73 - (0:0,0) - Tag block - Gen - 34 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup block - Gen - 8 - (14:0,14) - Markup span - Gen - [ foo] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.HtmlTextLiteral - [Hello] - [25..30) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[Hello]; - SyntaxKind.HtmlTextLiteral - [ ] - [34..35) - FullWidth: 1 - Slots: 1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 38 - (35:0,35) - p - ptaghelper - StartTagAndEndTag -

        ...

        - style - DoubleQuotes - Markup block - Gen - 13 - (48:0,48) - Markup span - Gen - [ color:red;] - SpanEditHandler;Accepts:Any - (48:0,48) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[color:red;]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (60:0,60) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.HtmlTextLiteral - [World] - [64..69) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[World]; +RazorDocument - [0..73)::73 - [

        Hello

        World

        ] + MarkupBlock - [0..73)::73 + MarkupTagHelperElement - [0..34)::34 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..25)::25 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..23)::21 - class - DoubleQuotes - Unbound - [ class=" foo "] + MarkupTextLiteral - [2..7)::5 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..12)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [14..22)::8 + MarkupLiteralAttributeValue - [14..20)::6 - [ foo] + MarkupTextLiteral - [14..17)::3 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [17..20)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupLiteralAttributeValue - [20..22)::2 - [ ] + MarkupTextLiteral - [20..22)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [22..23)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [23..25)::2 - [ >] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTextLiteral - [25..30)::5 - [Hello] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + MarkupTagHelperEndTag - [30..34)::4 + MarkupTextLiteral - [30..34)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [34..35)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [35..73)::38 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [35..64)::29 + MarkupTextLiteral - [35..37)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [37..62)::25 - style - DoubleQuotes - Unbound - [ style=" color:red; "] + MarkupTextLiteral - [37..41)::4 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [41..46)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [47..48)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [48..61)::13 + MarkupLiteralAttributeValue - [48..60)::12 - [ color:red;] + MarkupTextLiteral - [48..50)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [50..60)::10 - [color:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[color:red;]; + MarkupLiteralAttributeValue - [60..61)::1 - [ ] + MarkupTextLiteral - [60..61)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [61..62)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [62..64)::2 - [ >] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTextLiteral - [64..69)::5 - [World] - Gen - SpanEditHandler;Accepts:Any + Text;[World]; + MarkupTagHelperEndTag - [69..73)::4 + MarkupTextLiteral - [69..73)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesPlainTagHelperTagBlocks1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesPlainTagHelperTagBlocks1.stree.txt index 6e1b6c4d2..486c8312a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesPlainTagHelperTagBlocks1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesPlainTagHelperTagBlocks1.stree.txt @@ -1,3 +1,14 @@ -Markup block - Gen - 7 - (0:0,0) - Tag block - Gen - 7 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        +RazorDocument - [0..7)::7 - [

        ] + MarkupBlock - [0..7)::7 + MarkupTagHelperElement - [0..7)::7 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [3..7)::4 + MarkupTextLiteral - [3..7)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesPlainTagHelperTagBlocks2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesPlainTagHelperTagBlocks2.stree.txt index 02a4e73af..0700f899e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesPlainTagHelperTagBlocks2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesPlainTagHelperTagBlocks2.stree.txt @@ -1,8 +1,18 @@ -Markup block - Gen - 18 - (0:0,0) - Tag block - Gen - 18 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [Hello World] - [3..14) - FullWidth: 11 - Slots: 1 - SyntaxKind.List - [Hello World] - [3..14) - FullWidth: 11 - Slots: 3 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; +RazorDocument - [0..18)::18 - [

        Hello World

        ] + MarkupBlock - [0..18)::18 + MarkupTagHelperElement - [0..18)::18 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..14)::11 - [Hello World] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + MarkupTagHelperEndTag - [14..18)::4 + MarkupTextLiteral - [14..18)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesPlainTagHelperTagBlocks3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesPlainTagHelperTagBlocks3.stree.txt index 617df53e3..7bad5ee37 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesPlainTagHelperTagBlocks3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesPlainTagHelperTagBlocks3.stree.txt @@ -1,11 +1,32 @@ -Markup block - Gen - 25 - (0:0,0) - Tag block - Gen - 12 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [Hello] - [3..8) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[Hello]; - SyntaxKind.HtmlTextLiteral - [ ] - [12..13) - FullWidth: 1 - Slots: 1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 12 - (13:0,13) - p - ptaghelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [World] - [16..21) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[World]; +RazorDocument - [0..25)::25 - [

        Hello

        World

        ] + MarkupBlock - [0..25)::25 + MarkupTagHelperElement - [0..12)::12 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..8)::5 - [Hello] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + MarkupTagHelperEndTag - [8..12)::4 + MarkupTextLiteral - [8..12)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [13..25)::12 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [13..16)::3 + MarkupTextLiteral - [13..16)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [16..21)::5 - [World] - Gen - SpanEditHandler;Accepts:Any + Text;[World]; + MarkupTagHelperEndTag - [21..25)::4 + MarkupTextLiteral - [21..25)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesPlainTagHelperTagBlocks4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesPlainTagHelperTagBlocks4.stree.txt index 330599093..4851c15aa 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesPlainTagHelperTagBlocks4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesPlainTagHelperTagBlocks4.stree.txt @@ -1,29 +1,38 @@ -Markup block - Gen - 56 - (0:0,0) - Tag block - Gen - 56 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [Hello World ] - [3..15) - FullWidth: 12 - Slots: 1 - SyntaxKind.List - [Hello World ] - [3..15) - FullWidth: 12 - Slots: 4 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 8 - (15:0,15) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [inside of strong tag] - [23..43) - FullWidth: 20 - Slots: 1 - SyntaxKind.List - [inside of strong tag] - [23..43) - FullWidth: 20 - Slots: 7 - SyntaxKind.Text;[inside]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[of]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[strong]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[tag]; - Tag block - Gen - 9 - (43:0,43) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (43:0,43) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..56)::56 - [

        Hello World inside of strong tag

        ] + MarkupBlock - [0..56)::56 + MarkupTagHelperElement - [0..56)::56 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..15)::12 - [Hello World ] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + Whitespace;[ ]; + MarkupTagBlock - [15..23)::8 - [] + MarkupTextLiteral - [15..23)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [23..43)::20 - [inside of strong tag] - Gen - SpanEditHandler;Accepts:Any + Text;[inside]; + Whitespace;[ ]; + Text;[of]; + Whitespace;[ ]; + Text;[strong]; + Whitespace;[ ]; + Text;[tag]; + MarkupTagBlock - [43..52)::9 - [] + MarkupTextLiteral - [43..52)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [52..56)::4 + MarkupTextLiteral - [52..56)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers1.stree.txt index d3fd3fe63..3def95a57 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers1.stree.txt @@ -1,11 +1,22 @@ -Markup block - Gen - 31 - (0:0,0) - Tag block - Gen - 31 - (0:0,0) - script - scripttaghelper - StartTagAndEndTag - - Markup span - Gen - [] + MarkupBlock - [0..31)::31 + MarkupTagHelperElement - [0..31)::31 - script[StartTagAndEndTag] - scripttaghelper + MarkupTagHelperStartTag - [0..8)::8 + MarkupTextLiteral - [0..8)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers2.stree.txt index a6190d64f..22c1ec863 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers2.stree.txt @@ -1,15 +1,26 @@ -Markup block - Gen - 40 - (0:0,0) - Tag block - Gen - 40 - (0:0,0) - script - scripttaghelper - StartTagAndEndTag - - Markup span - Gen - [Hello World
        ] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:11 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..40)::40 - [] + MarkupBlock - [0..40)::40 + MarkupTagHelperElement - [0..40)::40 - script[StartTagAndEndTag] - scripttaghelper + MarkupTagHelperStartTag - [0..8)::8 + MarkupTextLiteral - [0..8)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers3.stree.txt index 79c78b599..0eac8b8ea 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers3.stree.txt @@ -1,21 +1,52 @@ -Markup block - Gen - 53 - (0:0,0) - Tag block - Gen - 29 - (0:0,0) - script - scripttaghelper - StartTagAndEndTag - - Markup span - Gen - [Hel

        lo

        ] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:9 - SyntaxKind.Text;[Hel]; - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.Text;[lo]; - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ ] - [29..30) - FullWidth: 1 - Slots: 1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 23 - (30:0,30) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 16 - (33:0,33) - div - divtaghelper - StartTagAndEndTag -
        ...
        - SyntaxKind.HtmlTextLiteral - [World] - [38..43) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[World]; +RazorDocument - [0..53)::53 - [

        World

        ] + MarkupBlock - [0..53)::53 + MarkupTagHelperElement - [0..29)::29 - script[StartTagAndEndTag] - scripttaghelper + MarkupTagHelperStartTag - [0..8)::8 + MarkupTextLiteral - [0..8)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; + MarkupTextLiteral - [29..30)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [30..53)::23 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [30..33)::3 + MarkupTextLiteral - [30..33)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [33..49)::16 - div[StartTagAndEndTag] - divtaghelper + MarkupTagHelperStartTag - [33..38)::5 + MarkupTextLiteral - [33..38)::5 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [38..43)::5 - [World] - Gen - SpanEditHandler;Accepts:Any + Text;[World]; + MarkupTagHelperEndTag - [43..49)::6 + MarkupTextLiteral - [43..49)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [49..53)::4 + MarkupTextLiteral - [49..53)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers4.stree.txt index 7e9a9d565..71cb1a852 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers4.stree.txt @@ -1,26 +1,47 @@ -Markup block - Gen - 75 - (0:0,0) - Tag block - Gen - 39 - (0:0,0) - script - scripttaghelper - StartTagAndEndTag - - Markup span - Gen - [Hello] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:9 - SyntaxKind.Text;[Hel]; - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.Text;[lo]; - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ ] - [39..40) - FullWidth: 1 - Slots: 1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 35 - (40:0,40) - script - scripttaghelper - StartTagAndEndTag - - Markup span - Gen - [World] - SpanEditHandler;Accepts:Any - (48:0,48) - Tokens:8 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[span]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.Text;[World]; - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[span]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..75)::75 - [ ] + MarkupBlock - [0..75)::75 + MarkupTagHelperElement - [0..39)::39 - script[StartTagAndEndTag] - scripttaghelper + MarkupTagHelperStartTag - [0..8)::8 + MarkupTextLiteral - [0..8)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; + MarkupTextLiteral - [39..40)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [40..75)::35 - script[StartTagAndEndTag] - scripttaghelper + MarkupTagHelperStartTag - [40..48)::8 + MarkupTextLiteral - [40..48)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers5.stree.txt index e308a1049..783eb3ceb 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers5.stree.txt @@ -1,9 +1,39 @@ -Markup block - Gen - 41 - (0:0,0) - Tag block - Gen - 41 - (0:0,0) - script - scripttaghelper - SelfClosing - - class - DoubleQuotes - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1 - SyntaxKind.Text;[foo]; - style - DoubleQuotes - Markup span - Gen - [color:red;] - SpanEditHandler;Accepts:Any - (36:0,36) - Tokens:1 - SyntaxKind.Text;[color:red;]; - SyntaxKind.HtmlTextLiteral - [ World] - [57..63) - FullWidth: 6 - Slots: 1 - SyntaxKind.List - [ World] - [57..63) - FullWidth: 6 - Slots: 2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; +RazorDocument - [0..67)::67 - [

        Hello World

        ] + MarkupBlock - [0..67)::67 + MarkupTagHelperElement - [0..67)::67 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..9)::6 - [Hello ] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + MarkupTagHelperElement - [9..57)::48 - script[StartTagAndEndTag] - scripttaghelper + MarkupTagHelperStartTag - [9..48)::39 + MarkupTextLiteral - [9..16)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[script]; + MarkupTagHelperAttribute - [16..28)::12 - class - DoubleQuotes - Unbound - [ class="foo"] + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [17..22)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [23..24)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [24..27)::3 + MarkupLiteralAttributeValue - [24..27)::3 - [foo] + MarkupTextLiteral - [24..27)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTextLiteral - [27..28)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [28..47)::19 - style - DoubleQuotes - Unbound - [ style="color:red;"] + MarkupTextLiteral - [28..29)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [29..34)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [35..36)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [36..46)::10 + MarkupLiteralAttributeValue - [36..46)::10 - [color:red;] + MarkupTextLiteral - [36..46)::10 - [color:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[color:red;]; + MarkupTextLiteral - [46..47)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [47..48)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [48..57)::9 + MarkupTextLiteral - [48..57)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; + MarkupTextLiteral - [57..63)::6 - [ World] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[World]; + MarkupTagHelperEndTag - [63..67)::4 + MarkupTextLiteral - [63..67)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers7.stree.txt index 6dae63d61..659b282dd 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesScriptTagHelpers7.stree.txt @@ -1,25 +1,66 @@ -Markup block - Gen - 77 - (0:0,0) - Tag block - Gen - 77 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [Hello ] - [3..9) - FullWidth: 6 - Slots: 1 - SyntaxKind.List - [Hello ] - [3..9) - FullWidth: 6 - Slots: 2 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 58 - (9:0,9) - script - scripttaghelper - StartTagAndEndTag - - class - DoubleQuotes - Markup block - Gen - 13 - (24:0,24) - Markup block - Gen - 2 - (24:0,24) - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (25:0,25) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [foo@bar.com] - SpanEditHandler;Accepts:Any - (26:0,26) - Tokens:1 - SyntaxKind.Text;[foo@bar.com]; - style - DoubleQuotes - Markup span - Gen - [color:red;] - SpanEditHandler;Accepts:Any - (46:0,46) - Tokens:1 - SyntaxKind.Text;[color:red;]; - SyntaxKind.HtmlTextLiteral - [ World] - [67..73) - FullWidth: 6 - Slots: 1 - SyntaxKind.List - [ World] - [67..73) - FullWidth: 6 - Slots: 2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; +RazorDocument - [0..77)::77 - [

        Hello World

        ] + MarkupBlock - [0..77)::77 + MarkupTagHelperElement - [0..77)::77 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..9)::6 - [Hello ] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + MarkupTagHelperElement - [9..67)::58 - script[StartTagAndEndTag] - scripttaghelper + MarkupTagHelperStartTag - [9..58)::49 + MarkupTextLiteral - [9..16)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[script]; + MarkupTagHelperAttribute - [16..38)::22 - class - DoubleQuotes - Unbound - [ class="@@foo@bar.com"] + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [17..22)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [23..24)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [24..37)::13 + MarkupBlock - [24..26)::2 + MarkupTextLiteral - [24..25)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupEphemeralTextLiteral - [25..26)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupLiteralAttributeValue - [26..37)::11 - [foo@bar.com] + MarkupTextLiteral - [26..37)::11 - [foo@bar.com] - Gen - SpanEditHandler;Accepts:Any + Text;[foo@bar.com]; + MarkupTextLiteral - [37..38)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [38..57)::19 - style - DoubleQuotes - Unbound - [ style="color:red;"] + MarkupTextLiteral - [38..39)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [39..44)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [45..46)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [46..56)::10 + MarkupLiteralAttributeValue - [46..56)::10 - [color:red;] + MarkupTextLiteral - [46..56)::10 - [color:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[color:red;]; + MarkupTextLiteral - [56..57)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [57..58)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [58..67)::9 + MarkupTextLiteral - [58..67)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; + MarkupTextLiteral - [67..73)::6 - [ World] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[World]; + MarkupTagHelperEndTag - [73..77)::4 + MarkupTextLiteral - [73..77)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesSelfClosingTagHelpers1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesSelfClosingTagHelpers1.stree.txt index 5c829074e..a4e4f2075 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesSelfClosingTagHelpers1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesSelfClosingTagHelpers1.stree.txt @@ -1,9 +1,39 @@ -Markup block - Gen - 36 - (0:0,0) - Tag block - Gen - 36 - (0:0,0) - p - ptaghelper - SelfClosing -

        - class - DoubleQuotes - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[foo]; - style - DoubleQuotes - Markup span - Gen - [color:red;] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.Text;[color:red;]; +RazorDocument - [0..36)::36 - [

        ] + MarkupBlock - [0..36)::36 + MarkupTagHelperElement - [0..36)::36 - p[SelfClosing] - ptaghelper + MarkupTagHelperStartTag - [0..36)::36 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="foo"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [foo] + MarkupTextLiteral - [10..13)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [14..33)::19 - style - DoubleQuotes - Unbound - [ style="color:red;"] + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [15..20)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [21..22)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [22..32)::10 + MarkupLiteralAttributeValue - [22..32)::10 - [color:red;] + MarkupTextLiteral - [22..32)::10 - [color:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[color:red;]; + MarkupTextLiteral - [32..33)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [33..36)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesSelfClosingTagHelpers2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesSelfClosingTagHelpers2.stree.txt index 0f45a00e6..f4fac8987 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesSelfClosingTagHelpers2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesSelfClosingTagHelpers2.stree.txt @@ -1,19 +1,57 @@ -Markup block - Gen - 55 - (0:0,0) - Tag block - Gen - 55 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [Hello ] - [3..9) - FullWidth: 6 - Slots: 1 - SyntaxKind.List - [Hello ] - [3..9) - FullWidth: 6 - Slots: 2 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 36 - (9:0,9) - p - ptaghelper - SelfClosing -

        - class - DoubleQuotes - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.Text;[foo]; - style - DoubleQuotes - Markup span - Gen - [color:red;] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.Text;[color:red;]; - SyntaxKind.HtmlTextLiteral - [ World] - [45..51) - FullWidth: 6 - Slots: 1 - SyntaxKind.List - [ World] - [45..51) - FullWidth: 6 - Slots: 2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; +RazorDocument - [0..55)::55 - [

        Hello

        World

        ] + MarkupBlock - [0..55)::55 + MarkupTagHelperElement - [0..55)::55 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..9)::6 - [Hello ] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + MarkupTagHelperElement - [9..45)::36 - p[SelfClosing] - ptaghelper + MarkupTagHelperStartTag - [9..45)::36 + MarkupTextLiteral - [9..11)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [11..23)::12 - class - DoubleQuotes - Unbound - [ class="foo"] + MarkupTextLiteral - [11..12)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [12..17)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [18..19)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [19..22)::3 + MarkupLiteralAttributeValue - [19..22)::3 - [foo] + MarkupTextLiteral - [19..22)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTextLiteral - [22..23)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [23..42)::19 - style - DoubleQuotes - Unbound - [ style="color:red;"] + MarkupTextLiteral - [23..24)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [24..29)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [30..31)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [31..41)::10 + MarkupLiteralAttributeValue - [31..41)::10 - [color:red;] + MarkupTextLiteral - [31..41)::10 - [color:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[color:red;]; + MarkupTextLiteral - [41..42)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [42..45)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTextLiteral - [45..51)::6 - [ World] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[World]; + MarkupTagHelperEndTag - [51..55)::4 + MarkupTextLiteral - [51..55)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesSelfClosingTagHelpers3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesSelfClosingTagHelpers3.stree.txt index 153387713..f1605095a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesSelfClosingTagHelpers3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesSelfClosingTagHelpers3.stree.txt @@ -1,17 +1,54 @@ -Markup block - Gen - 52 - (0:0,0) - Markup span - Gen - [Hello] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Text;[Hello]; - Tag block - Gen - 17 - (5:0,5) - p - ptaghelper - SelfClosing -

        - class - DoubleQuotes - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.Text;[foo]; - SyntaxKind.HtmlTextLiteral - [ ] - [22..23) - FullWidth: 1 - Slots: 1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 24 - (23:0,23) - p - ptaghelper - SelfClosing -

        - style - DoubleQuotes - Markup span - Gen - [color:red;] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:1 - SyntaxKind.Text;[color:red;]; - Markup span - Gen - [World] - SpanEditHandler;Accepts:Any - (47:0,47) - Tokens:1 - SyntaxKind.Text;[World]; +RazorDocument - [0..52)::52 - [Hello

        World] + MarkupBlock - [0..52)::52 + MarkupTextLiteral - [0..5)::5 - [Hello] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + MarkupTagHelperElement - [5..22)::17 - p[SelfClosing] - ptaghelper + MarkupTagHelperStartTag - [5..22)::17 + MarkupTextLiteral - [5..7)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [7..19)::12 - class - DoubleQuotes - Unbound - [ class="foo"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..13)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [14..15)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [15..18)::3 + MarkupLiteralAttributeValue - [15..18)::3 - [foo] + MarkupTextLiteral - [15..18)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTextLiteral - [18..19)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [19..22)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTextLiteral - [22..23)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [23..47)::24 - p[SelfClosing] - ptaghelper + MarkupTagHelperStartTag - [23..47)::24 + MarkupTextLiteral - [23..25)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [25..44)::19 - style - DoubleQuotes - Unbound - [ style="color:red;"] + MarkupTextLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [26..31)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [32..33)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [33..43)::10 + MarkupLiteralAttributeValue - [33..43)::10 - [color:red;] + MarkupTextLiteral - [33..43)::10 - [color:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[color:red;]; + MarkupTextLiteral - [43..44)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [44..47)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTextLiteral - [47..52)::5 - [World] - Gen - SpanEditHandler;Accepts:Any + Text;[World]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithPlainAttributes1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithPlainAttributes1.stree.txt index d6f08b990..06efe6b52 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithPlainAttributes1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithPlainAttributes1.stree.txt @@ -1,9 +1,43 @@ -Markup block - Gen - 38 - (0:0,0) - Tag block - Gen - 38 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[foo]; - style - DoubleQuotes - Markup span - Gen - [color:red;] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.Text;[color:red;]; +RazorDocument - [0..38)::38 - [

        ] + MarkupBlock - [0..38)::38 + MarkupTagHelperElement - [0..38)::38 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..34)::34 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="foo"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [foo] + MarkupTextLiteral - [10..13)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [14..33)::19 - style - DoubleQuotes - Unbound - [ style="color:red;"] + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [15..20)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [21..22)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [22..32)::10 + MarkupLiteralAttributeValue - [22..32)::10 - [color:red;] + MarkupTextLiteral - [22..32)::10 - [color:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[color:red;]; + MarkupTextLiteral - [32..33)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [33..34)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [34..38)::4 + MarkupTextLiteral - [34..38)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithPlainAttributes2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithPlainAttributes2.stree.txt index 40e20244b..de476da38 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithPlainAttributes2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithPlainAttributes2.stree.txt @@ -1,14 +1,47 @@ -Markup block - Gen - 49 - (0:0,0) - Tag block - Gen - 49 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[foo]; - style - DoubleQuotes - Markup span - Gen - [color:red;] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.Text;[color:red;]; - SyntaxKind.HtmlTextLiteral - [Hello World] - [34..45) - FullWidth: 11 - Slots: 1 - SyntaxKind.List - [Hello World] - [34..45) - FullWidth: 11 - Slots: 3 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; +RazorDocument - [0..49)::49 - [

        Hello World

        ] + MarkupBlock - [0..49)::49 + MarkupTagHelperElement - [0..49)::49 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..34)::34 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="foo"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [foo] + MarkupTextLiteral - [10..13)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [14..33)::19 - style - DoubleQuotes - Unbound - [ style="color:red;"] + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [15..20)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [21..22)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [22..32)::10 + MarkupLiteralAttributeValue - [22..32)::10 - [color:red;] + MarkupTextLiteral - [22..32)::10 - [color:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[color:red;]; + MarkupTextLiteral - [32..33)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [33..34)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [34..45)::11 - [Hello World] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + MarkupTagHelperEndTag - [45..49)::4 + MarkupTextLiteral - [45..49)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithPlainAttributes3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithPlainAttributes3.stree.txt index 0eccf9b4d..c89bb22d8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithPlainAttributes3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithPlainAttributes3.stree.txt @@ -1,17 +1,62 @@ -Markup block - Gen - 56 - (0:0,0) - Tag block - Gen - 24 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[foo]; - SyntaxKind.HtmlTextLiteral - [Hello] - [15..20) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[Hello]; - SyntaxKind.HtmlTextLiteral - [ ] - [24..25) - FullWidth: 1 - Slots: 1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 31 - (25:0,25) - p - ptaghelper - StartTagAndEndTag -

        ...

        - style - DoubleQuotes - Markup span - Gen - [color:red;] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:1 - SyntaxKind.Text;[color:red;]; - SyntaxKind.HtmlTextLiteral - [World] - [47..52) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[World]; +RazorDocument - [0..56)::56 - [

        Hello

        World

        ] + MarkupBlock - [0..56)::56 + MarkupTagHelperElement - [0..24)::24 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..15)::15 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="foo"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [foo] + MarkupTextLiteral - [10..13)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [14..15)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [15..20)::5 - [Hello] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + MarkupTagHelperEndTag - [20..24)::4 + MarkupTextLiteral - [20..24)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [24..25)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [25..56)::31 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [25..47)::22 + MarkupTextLiteral - [25..27)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [27..46)::19 - style - DoubleQuotes - Unbound - [ style="color:red;"] + MarkupTextLiteral - [27..28)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [28..33)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [34..35)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [35..45)::10 + MarkupLiteralAttributeValue - [35..45)::10 - [color:red;] + MarkupTextLiteral - [35..45)::10 - [color:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[color:red;]; + MarkupTextLiteral - [45..46)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [46..47)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [47..52)::5 - [World] - Gen - SpanEditHandler;Accepts:Any + Text;[World]; + MarkupTagHelperEndTag - [52..56)::4 + MarkupTextLiteral - [52..56)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithPlainAttributes4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithPlainAttributes4.stree.txt index 73b71bd77..eecb4cde2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithPlainAttributes4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithPlainAttributes4.stree.txt @@ -1,46 +1,82 @@ -Markup block - Gen - 99 - (0:0,0) - Tag block - Gen - 99 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[foo]; - style - DoubleQuotes - Markup span - Gen - [color:red;] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.Text;[color:red;]; - SyntaxKind.HtmlTextLiteral - [Hello World ] - [34..46) - FullWidth: 12 - Slots: 1 - SyntaxKind.List - [Hello World ] - [34..46) - FullWidth: 12 - Slots: 4 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 20 - (46:0,46) - Markup span - Gen - [ - 12 - (53:0,53) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (53:0,53) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (61:0,61) - Tokens:1 - SyntaxKind.Text;[foo]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (64:0,64) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (65:0,65) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [inside of strong tag] - [66..86) - FullWidth: 20 - Slots: 1 - SyntaxKind.List - [inside of strong tag] - [66..86) - FullWidth: 20 - Slots: 7 - SyntaxKind.Text;[inside]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[of]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[strong]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[tag]; - Tag block - Gen - 9 - (86:0,86) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (86:0,86) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..99)::99 - [

        Hello World inside of strong tag

        ] + MarkupBlock - [0..99)::99 + MarkupTagHelperElement - [0..99)::99 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..34)::34 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="foo"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [foo] + MarkupTextLiteral - [10..13)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [14..33)::19 - style - DoubleQuotes - Unbound - [ style="color:red;"] + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [15..20)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [21..22)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [22..32)::10 + MarkupLiteralAttributeValue - [22..32)::10 - [color:red;] + MarkupTextLiteral - [22..32)::10 - [color:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[color:red;]; + MarkupTextLiteral - [32..33)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [33..34)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [34..46)::12 - [Hello World ] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + Whitespace;[ ]; + MarkupTagBlock - [46..66)::20 - [] + MarkupTextLiteral - [46..53)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupAttributeBlock - [53..65)::12 - [ class="foo"] + MarkupTextLiteral - [53..54)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [54..59)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [60..61)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [61..64)::3 + MarkupLiteralAttributeValue - [61..64)::3 - [foo] + MarkupTextLiteral - [61..64)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTextLiteral - [64..65)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [65..66)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [66..86)::20 - [inside of strong tag] - Gen - SpanEditHandler;Accepts:Any + Text;[inside]; + Whitespace;[ ]; + Text;[of]; + Whitespace;[ ]; + Text;[strong]; + Whitespace;[ ]; + Text;[tag]; + MarkupTagBlock - [86..95)::9 - [] + MarkupTextLiteral - [86..95)::9 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [95..99)::4 + MarkupTextLiteral - [95..99)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes1.stree.txt index f9a32f656..9966a4c94 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes1.stree.txt @@ -1,19 +1,54 @@ -Markup block - Gen - 56 - (0:0,0) - Tag block - Gen - 56 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - NoQuotes - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[foo]; - dynamic - DoubleQuotes - Markup block - Gen - 13 - (21:0,21) - Markup block - Gen - 13 - (21:0,21) - Expression block - Gen - 13 - (21:0,21) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (22:0,22) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - style - NoQuotes - Markup span - Gen - [color:red;] - SpanEditHandler;Accepts:Any - (41:0,41) - Tokens:1 - SyntaxKind.Text;[color:red;]; +RazorDocument - [0..56)::56 - [

        ] + MarkupBlock - [0..56)::56 + MarkupTagHelperElement - [0..56)::56 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..52)::52 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..12)::10 - class - NoQuotes - Unbound - [ class=foo] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTagHelperAttributeValue - [9..12)::3 + MarkupLiteralAttributeValue - [9..12)::3 - [foo] + MarkupTextLiteral - [9..12)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTagHelperAttribute - [12..34)::22 - dynamic - DoubleQuotes - Unbound - [ dynamic=@DateTime.Now] + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [13..20)::7 - [dynamic] - Gen - SpanEditHandler;Accepts:Any + Text;[dynamic]; + Equals;[=]; + MarkupTagHelperAttributeValue - [21..34)::13 + MarkupDynamicAttributeValue - [21..34)::13 - [@DateTime.Now] + GenericBlock - [21..34)::13 + CSharpCodeBlock - [21..34)::13 + CSharpImplicitExpression - [21..34)::13 + CSharpTransition - [21..22)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [22..34)::12 + CSharpCodeBlock - [22..34)::12 + CSharpExpressionLiteral - [22..34)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTagHelperAttribute - [34..51)::17 - style - NoQuotes - Unbound - [ style=color:red;] + MarkupTextLiteral - [34..35)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [35..40)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTagHelperAttributeValue - [41..51)::10 + MarkupLiteralAttributeValue - [41..51)::10 - [color:red;] + MarkupTextLiteral - [41..51)::10 - [color:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[color:red;]; + MarkupTextLiteral - [51..52)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [52..56)::4 + MarkupTextLiteral - [52..56)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes2.stree.txt index 6d146b0c3..d24abe9e2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes2.stree.txt @@ -1,24 +1,58 @@ -Markup block - Gen - 67 - (0:0,0) - Tag block - Gen - 67 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - NoQuotes - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[foo]; - dynamic - DoubleQuotes - Markup block - Gen - 13 - (21:0,21) - Markup block - Gen - 13 - (21:0,21) - Expression block - Gen - 13 - (21:0,21) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (22:0,22) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - style - NoQuotes - Markup span - Gen - [color:red;] - SpanEditHandler;Accepts:Any - (41:0,41) - Tokens:1 - SyntaxKind.Text;[color:red;]; - SyntaxKind.HtmlTextLiteral - [Hello World] - [52..63) - FullWidth: 11 - Slots: 1 - SyntaxKind.List - [Hello World] - [52..63) - FullWidth: 11 - Slots: 3 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; +RazorDocument - [0..67)::67 - [

        Hello World

        ] + MarkupBlock - [0..67)::67 + MarkupTagHelperElement - [0..67)::67 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..52)::52 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..12)::10 - class - NoQuotes - Unbound - [ class=foo] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTagHelperAttributeValue - [9..12)::3 + MarkupLiteralAttributeValue - [9..12)::3 - [foo] + MarkupTextLiteral - [9..12)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTagHelperAttribute - [12..34)::22 - dynamic - DoubleQuotes - Unbound - [ dynamic=@DateTime.Now] + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [13..20)::7 - [dynamic] - Gen - SpanEditHandler;Accepts:Any + Text;[dynamic]; + Equals;[=]; + MarkupTagHelperAttributeValue - [21..34)::13 + MarkupDynamicAttributeValue - [21..34)::13 - [@DateTime.Now] + GenericBlock - [21..34)::13 + CSharpCodeBlock - [21..34)::13 + CSharpImplicitExpression - [21..34)::13 + CSharpTransition - [21..22)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [22..34)::12 + CSharpCodeBlock - [22..34)::12 + CSharpExpressionLiteral - [22..34)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTagHelperAttribute - [34..51)::17 - style - NoQuotes - Unbound - [ style=color:red;] + MarkupTextLiteral - [34..35)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [35..40)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTagHelperAttributeValue - [41..51)::10 + MarkupLiteralAttributeValue - [41..51)::10 - [color:red;] + MarkupTextLiteral - [41..51)::10 - [color:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[color:red;]; + MarkupTextLiteral - [51..52)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [52..63)::11 - [Hello World] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + MarkupTagHelperEndTag - [63..67)::4 + MarkupTextLiteral - [63..67)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes3.stree.txt index 1d4b98a3f..4663bb153 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes3.stree.txt @@ -1,32 +1,66 @@ -Markup block - Gen - 69 - (0:0,0) - Tag block - Gen - 69 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - NoQuotes - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[foo]; - dynamic - DoubleQuotes - Markup block - Gen - 13 - (21:0,21) - Markup block - Gen - 13 - (21:0,21) - Expression block - Gen - 13 - (21:0,21) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (22:0,22) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - style - DoubleQuotes - Markup block - Gen - 12 - (41:0,41) - Markup span - Gen - [color] - SpanEditHandler;Accepts:Any - (41:0,41) - Tokens:1 - SyntaxKind.Text;[color]; - Markup block - Gen - 2 - (46:0,46) - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (46:0,46) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (47:0,47) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [:red;] - SpanEditHandler;Accepts:Any - (48:0,48) - Tokens:1 - SyntaxKind.Text;[:red;]; - SyntaxKind.HtmlTextLiteral - [Hello World] - [54..65) - FullWidth: 11 - Slots: 1 - SyntaxKind.List - [Hello World] - [54..65) - FullWidth: 11 - Slots: 3 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; +RazorDocument - [0..69)::69 - [

        Hello World

        ] + MarkupBlock - [0..69)::69 + MarkupTagHelperElement - [0..69)::69 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..54)::54 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..12)::10 - class - NoQuotes - Unbound - [ class=foo] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTagHelperAttributeValue - [9..12)::3 + MarkupLiteralAttributeValue - [9..12)::3 - [foo] + MarkupTextLiteral - [9..12)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTagHelperAttribute - [12..34)::22 - dynamic - DoubleQuotes - Unbound - [ dynamic=@DateTime.Now] + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [13..20)::7 - [dynamic] - Gen - SpanEditHandler;Accepts:Any + Text;[dynamic]; + Equals;[=]; + MarkupTagHelperAttributeValue - [21..34)::13 + MarkupDynamicAttributeValue - [21..34)::13 - [@DateTime.Now] + GenericBlock - [21..34)::13 + CSharpCodeBlock - [21..34)::13 + CSharpImplicitExpression - [21..34)::13 + CSharpTransition - [21..22)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [22..34)::12 + CSharpCodeBlock - [22..34)::12 + CSharpExpressionLiteral - [22..34)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTagHelperAttribute - [34..53)::19 - style - DoubleQuotes - Unbound - [ style=color@@:red;] + MarkupTextLiteral - [34..35)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [35..40)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTagHelperAttributeValue - [41..53)::12 + MarkupLiteralAttributeValue - [41..46)::5 - [color] + MarkupTextLiteral - [41..46)::5 - [color] - Gen - SpanEditHandler;Accepts:Any + Text;[color]; + MarkupBlock - [46..48)::2 + MarkupTextLiteral - [46..47)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupEphemeralTextLiteral - [47..48)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupLiteralAttributeValue - [48..53)::5 - [:red;] + MarkupTextLiteral - [48..53)::5 - [:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[:red;]; + MarkupTextLiteral - [53..54)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [54..65)::11 - [Hello World] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + MarkupTagHelperEndTag - [65..69)::4 + MarkupTextLiteral - [65..69)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes4.stree.txt index 5286cf9b2..a848d74c6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes4.stree.txt @@ -1,37 +1,92 @@ -Markup block - Gen - 96 - (0:0,0) - Tag block - Gen - 44 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - NoQuotes - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[foo]; - dynamic - DoubleQuotes - Markup block - Gen - 13 - (21:0,21) - Markup block - Gen - 13 - (21:0,21) - Expression block - Gen - 13 - (21:0,21) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (22:0,22) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.HtmlTextLiteral - [Hello] - [35..40) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[Hello]; - SyntaxKind.HtmlTextLiteral - [ ] - [44..45) - FullWidth: 1 - Slots: 1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 51 - (45:0,45) - p - ptaghelper - StartTagAndEndTag -

        ...

        - style - NoQuotes - Markup span - Gen - [color:red;] - SpanEditHandler;Accepts:Any - (54:0,54) - Tokens:1 - SyntaxKind.Text;[color:red;]; - dynamic - DoubleQuotes - Markup block - Gen - 13 - (73:0,73) - Markup block - Gen - 13 - (73:0,73) - Expression block - Gen - 13 - (73:0,73) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (73:0,73) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (74:0,74) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.HtmlTextLiteral - [World] - [87..92) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[World]; +RazorDocument - [0..96)::96 - [

        Hello

        World

        ] + MarkupBlock - [0..96)::96 + MarkupTagHelperElement - [0..44)::44 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..35)::35 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..12)::10 - class - NoQuotes - Unbound - [ class=foo] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTagHelperAttributeValue - [9..12)::3 + MarkupLiteralAttributeValue - [9..12)::3 - [foo] + MarkupTextLiteral - [9..12)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTagHelperAttribute - [12..34)::22 - dynamic - DoubleQuotes - Unbound - [ dynamic=@DateTime.Now] + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [13..20)::7 - [dynamic] - Gen - SpanEditHandler;Accepts:Any + Text;[dynamic]; + Equals;[=]; + MarkupTagHelperAttributeValue - [21..34)::13 + MarkupDynamicAttributeValue - [21..34)::13 - [@DateTime.Now] + GenericBlock - [21..34)::13 + CSharpCodeBlock - [21..34)::13 + CSharpImplicitExpression - [21..34)::13 + CSharpTransition - [21..22)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [22..34)::12 + CSharpCodeBlock - [22..34)::12 + CSharpExpressionLiteral - [22..34)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [34..35)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [35..40)::5 - [Hello] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + MarkupTagHelperEndTag - [40..44)::4 + MarkupTextLiteral - [40..44)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [44..45)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [45..96)::51 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [45..87)::42 + MarkupTextLiteral - [45..47)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [47..64)::17 - style - NoQuotes - Unbound - [ style=color:red;] + MarkupTextLiteral - [47..48)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [48..53)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTagHelperAttributeValue - [54..64)::10 + MarkupLiteralAttributeValue - [54..64)::10 - [color:red;] + MarkupTextLiteral - [54..64)::10 - [color:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[color:red;]; + MarkupTagHelperAttribute - [64..86)::22 - dynamic - DoubleQuotes - Unbound - [ dynamic=@DateTime.Now] + MarkupTextLiteral - [64..65)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [65..72)::7 - [dynamic] - Gen - SpanEditHandler;Accepts:Any + Text;[dynamic]; + Equals;[=]; + MarkupTagHelperAttributeValue - [73..86)::13 + MarkupDynamicAttributeValue - [73..86)::13 - [@DateTime.Now] + GenericBlock - [73..86)::13 + CSharpCodeBlock - [73..86)::13 + CSharpImplicitExpression - [73..86)::13 + CSharpTransition - [73..74)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [74..86)::12 + CSharpCodeBlock - [74..86)::12 + CSharpExpressionLiteral - [74..86)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [86..87)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [87..92)::5 - [World] - Gen - SpanEditHandler;Accepts:Any + Text;[World]; + MarkupTagHelperEndTag - [92..96)::4 + MarkupTextLiteral - [92..96)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes5.stree.txt index e7c302f52..bbf17f563 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/TagHelperParseTreeRewriter_RewritesTagHelpersWithQuotelessAttributes5.stree.txt @@ -1,56 +1,93 @@ -Markup block - Gen - 117 - (0:0,0) - Tag block - Gen - 117 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - NoQuotes - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[foo]; - dynamic - DoubleQuotes - Markup block - Gen - 13 - (21:0,21) - Markup block - Gen - 13 - (21:0,21) - Expression block - Gen - 13 - (21:0,21) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (22:0,22) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - style - NoQuotes - Markup span - Gen - [color:red;] - SpanEditHandler;Accepts:Any - (41:0,41) - Tokens:1 - SyntaxKind.Text;[color:red;]; - SyntaxKind.HtmlTextLiteral - [Hello World ] - [52..64) - FullWidth: 12 - Slots: 1 - SyntaxKind.List - [Hello World ] - [52..64) - FullWidth: 12 - Slots: 4 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 20 - (64:0,64) - Markup span - Gen - [ - 12 - (71:0,71) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (71:0,71) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [foo] - SpanEditHandler;Accepts:Any - (79:0,79) - Tokens:1 - SyntaxKind.Text;[foo]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (82:0,82) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (83:0,83) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [inside of strong tag] - [84..104) - FullWidth: 20 - Slots: 1 - SyntaxKind.List - [inside of strong tag] - [84..104) - FullWidth: 20 - Slots: 7 - SyntaxKind.Text;[inside]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[of]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[strong]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[tag]; - Tag block - Gen - 9 - (104:0,104) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (104:0,104) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..117)::117 - [

        Hello World inside of strong tag

        ] + MarkupBlock - [0..117)::117 + MarkupTagHelperElement - [0..117)::117 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..52)::52 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..12)::10 - class - NoQuotes - Unbound - [ class=foo] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTagHelperAttributeValue - [9..12)::3 + MarkupLiteralAttributeValue - [9..12)::3 - [foo] + MarkupTextLiteral - [9..12)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTagHelperAttribute - [12..34)::22 - dynamic - DoubleQuotes - Unbound - [ dynamic=@DateTime.Now] + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [13..20)::7 - [dynamic] - Gen - SpanEditHandler;Accepts:Any + Text;[dynamic]; + Equals;[=]; + MarkupTagHelperAttributeValue - [21..34)::13 + MarkupDynamicAttributeValue - [21..34)::13 - [@DateTime.Now] + GenericBlock - [21..34)::13 + CSharpCodeBlock - [21..34)::13 + CSharpImplicitExpression - [21..34)::13 + CSharpTransition - [21..22)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [22..34)::12 + CSharpCodeBlock - [22..34)::12 + CSharpExpressionLiteral - [22..34)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTagHelperAttribute - [34..51)::17 - style - NoQuotes - Unbound - [ style=color:red;] + MarkupTextLiteral - [34..35)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [35..40)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTagHelperAttributeValue - [41..51)::10 + MarkupLiteralAttributeValue - [41..51)::10 - [color:red;] + MarkupTextLiteral - [41..51)::10 - [color:red;] - Gen - SpanEditHandler;Accepts:Any + Text;[color:red;]; + MarkupTextLiteral - [51..52)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [52..64)::12 - [Hello World ] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + Whitespace;[ ]; + MarkupTagBlock - [64..84)::20 - [] + MarkupTextLiteral - [64..71)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupAttributeBlock - [71..83)::12 - [ class="foo"] + MarkupTextLiteral - [71..72)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [72..77)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [78..79)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [79..82)::3 + MarkupLiteralAttributeValue - [79..82)::3 - [foo] + MarkupTextLiteral - [79..82)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + MarkupTextLiteral - [82..83)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [83..84)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [84..104)::20 - [inside of strong tag] - Gen - SpanEditHandler;Accepts:Any + Text;[inside]; + Whitespace;[ ]; + Text;[of]; + Whitespace;[ ]; + Text;[strong]; + Whitespace;[ ]; + Text;[tag]; + MarkupTagBlock - [104..113)::9 - [] + MarkupTextLiteral - [104..113)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [113..117)::4 + MarkupTextLiteral - [113..117)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers1.stree.txt index a855effb2..5f68e1e2f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers1.stree.txt @@ -1,5 +1,26 @@ -Markup block - Gen - 16 - (0:0,0) - Tag block - Gen - 16 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup block - Gen - 0 - (0:0,0) +RazorDocument - [0..16)::16 - [

        ] + MarkupBlock - [0..16)::16 + MarkupTagHelperElement - [0..16)::16 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..12)::12 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..11)::9 - class - DoubleQuotes - Unbound - [ class=""] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..10)::0 + MarkupTextLiteral - [10..11)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [11..12)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [12..16)::4 + MarkupTextLiteral - [12..16)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers2.stree.txt index bb2bf1ba6..1d7032554 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers2.stree.txt @@ -1,5 +1,26 @@ -Markup block - Gen - 16 - (0:0,0) - Tag block - Gen - 16 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - SingleQuotes - Markup block - Gen - 0 - (0:0,0) +RazorDocument - [0..16)::16 - [

        ] + MarkupBlock - [0..16)::16 + MarkupTagHelperElement - [0..16)::16 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..12)::12 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..11)::9 - class - SingleQuotes - Unbound - [ class=''] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [10..10)::0 + MarkupTextLiteral - [10..11)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [11..12)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [12..16)::4 + MarkupTextLiteral - [12..16)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers3.stree.txt index a81595cb3..e64fe1634 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers3.stree.txt @@ -1,5 +1,23 @@ -Markup block - Gen - 14 - (0:0,0) - Tag block - Gen - 14 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:0 +RazorDocument - [0..14)::14 - [

        ] + MarkupBlock - [0..14)::14 + MarkupTagHelperElement - [0..14)::14 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..10)::10 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..9)::7 - class - DoubleQuotes - Unbound - [ class=] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTagHelperAttributeValue - [9..9)::0 + MarkupTextLiteral - [9..9)::0 - [] + MarkupTextLiteral - [9..10)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [10..14)::4 + MarkupTextLiteral - [10..14)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers4.stree.txt index 744c39ad6..b3329e6fa 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers4.stree.txt @@ -1,9 +1,41 @@ -Markup block - Gen - 33 - (0:0,0) - Tag block - Gen - 33 - (0:0,0) - p - ptaghelper - SelfClosing -

        - class1 - SingleQuotes - Markup block - Gen - 0 - (0:0,0) - class2 - DoubleQuotes - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:0 - class3 - DoubleQuotes - Markup block - Gen - 0 - (0:0,0) +RazorDocument - [0..33)::33 - [

        ] + MarkupBlock - [0..33)::33 + MarkupTagHelperElement - [0..33)::33 - p[SelfClosing] - ptaghelper + MarkupTagHelperStartTag - [0..33)::33 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..12)::10 - class1 - SingleQuotes - Unbound - [ class1=''] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..9)::6 - [class1] - Gen - SpanEditHandler;Accepts:Any + Text;[class1]; + Equals;[=]; + MarkupTextLiteral - [10..11)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [11..11)::0 + MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttribute - [12..20)::8 - class2 - DoubleQuotes - Unbound - [ class2=] + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [13..19)::6 - [class2] - Gen - SpanEditHandler;Accepts:Any + Text;[class2]; + Equals;[=]; + MarkupTagHelperAttributeValue - [20..20)::0 + MarkupTextLiteral - [20..20)::0 - [] + MarkupTagHelperAttribute - [20..30)::10 - class3 - DoubleQuotes - Unbound - [ class3=""] + MarkupTextLiteral - [20..21)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [21..27)::6 - [class3] - Gen - SpanEditHandler;Accepts:Any + Text;[class3]; + Equals;[=]; + MarkupTextLiteral - [28..29)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [29..29)::0 + MarkupTextLiteral - [29..30)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [30..33)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers5.stree.txt index 728b1f691..de5cde2b2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers5.stree.txt @@ -1,9 +1,37 @@ -Markup block - Gen - 31 - (0:0,0) - Tag block - Gen - 31 - (0:0,0) - p - ptaghelper - SelfClosing -

        - class1 - SingleQuotes - Markup block - Gen - 0 - (0:0,0) - class2 - DoubleQuotes - Markup block - Gen - 0 - (0:0,0) - class3 - DoubleQuotes - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (28:0,28) - Tokens:0 +RazorDocument - [0..31)::31 - [

        ] + MarkupBlock - [0..31)::31 + MarkupTagHelperElement - [0..31)::31 - p[SelfClosing] - ptaghelper + MarkupTagHelperStartTag - [0..31)::31 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..12)::10 - class1 - SingleQuotes - Unbound - [ class1=''] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..9)::6 - [class1] - Gen - SpanEditHandler;Accepts:Any + Text;[class1]; + Equals;[=]; + MarkupTextLiteral - [10..11)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [11..11)::0 + MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttribute - [12..21)::9 - class2 - DoubleQuotes - Unbound - [class2=""] + MarkupTextLiteral - [12..18)::6 - [class2] - Gen - SpanEditHandler;Accepts:Any + Text;[class2]; + Equals;[=]; + MarkupTextLiteral - [19..20)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [20..20)::0 + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [21..28)::7 - class3 - DoubleQuotes - Unbound - [class3=] + MarkupTextLiteral - [21..27)::6 - [class3] - Gen - SpanEditHandler;Accepts:Any + Text;[class3]; + Equals;[=]; + MarkupTagHelperAttributeValue - [28..28)::0 + MarkupTextLiteral - [28..28)::0 - [] + MarkupTextLiteral - [28..31)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block1.stree.txt index a813cc962..241cad181 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block1.stree.txt @@ -1,18 +1,33 @@ -Markup block - Gen - 29 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 29 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 26 - (2:0,2) - Tag block - Gen - 26 - (2:0,2) - input - InputTagHelper1 - InputTagHelper3 - SelfClosing - - unbound-required - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (28:0,28) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (28:0,28) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (29:0,29) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..29)::29 - [@{}] + MarkupBlock - [0..29)::29 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..29)::29 + CSharpStatement - [0..29)::29 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..29)::28 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..28)::26 + MarkupBlock - [2..28)::26 + MarkupTagHelperElement - [2..28)::26 - input[SelfClosing] - InputTagHelper1 - InputTagHelper3 + MarkupTagHelperStartTag - [2..28)::26 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [8..25)::17 - unbound-required - Minimized - Unbound - [ unbound-required] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..25)::16 - [unbound-required] - Gen - SpanEditHandler;Accepts:Any + Text;[unbound-required]; + MarkupTextLiteral - [25..28)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [28..28)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [28..29)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [29..29)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block10.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block10.stree.txt index 18c001c11..2064d7406 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block10.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block10.stree.txt @@ -1,18 +1,32 @@ -Markup block - Gen - 28 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 28 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 25 - (2:0,2) - Tag block - Gen - 25 - (2:0,2) - input - InputTagHelper3 - SelfClosing - - int-prefix-value - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (27:0,27) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (28:0,28) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..28)::28 - [@{}] + MarkupBlock - [0..28)::28 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..28)::28 + CSharpStatement - [0..28)::28 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..28)::27 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..27)::25 + MarkupBlock - [2..27)::25 + MarkupTagHelperElement - [2..27)::25 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [2..27)::25 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [8..25)::17 - int-prefix-value - Minimized - Bound - [ int-prefix-value] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..25)::16 - [int-prefix-value] - Gen - SpanEditHandler;Accepts:Any + Text;[int-prefix-value]; + MarkupTextLiteral - [25..27)::2 - [/>] - Gen - SpanEditHandler;Accepts:None + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [27..27)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [27..28)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [28..28)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block11.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block11.stree.txt index 3fbac254e..a8e8450ee 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block11.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block11.stree.txt @@ -1,18 +1,33 @@ -Markup block - Gen - 32 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 32 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 29 - (2:0,2) - Tag block - Gen - 29 - (2:0,2) - input - InputTagHelper3 - SelfClosing - - string-prefix-value - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (32:0,32) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..32)::32 - [@{}] + MarkupBlock - [0..32)::32 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..32)::32 + CSharpStatement - [0..32)::32 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..32)::31 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..31)::29 + MarkupBlock - [2..31)::29 + MarkupTagHelperElement - [2..31)::29 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [2..31)::29 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [8..28)::20 - string-prefix-value - Minimized - Bound - [ string-prefix-value] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..28)::19 - [string-prefix-value] - Gen - SpanEditHandler;Accepts:Any + Text;[string-prefix-value]; + MarkupTextLiteral - [28..31)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [31..31)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [31..32)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [32..32)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block12.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block12.stree.txt index 11f738be5..321dfe84a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block12.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block12.stree.txt @@ -1,19 +1,39 @@ -Markup block - Gen - 32 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 32 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 29 - (2:0,2) - Tag block - Gen - 29 - (2:0,2) - input - InputTagHelper3 - SelfClosing - - int-prefix-value - SingleQuotes - Markup block - Gen - 0 - (0:0,0) - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (32:0,32) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..32)::32 - [@{}] + MarkupBlock - [0..32)::32 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..32)::32 + CSharpStatement - [0..32)::32 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..32)::31 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..31)::29 + MarkupBlock - [2..31)::29 + MarkupTagHelperElement - [2..31)::29 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [2..31)::29 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [8..28)::20 - int-prefix-value - SingleQuotes - Bound - [ int-prefix-value=''] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..25)::16 - [int-prefix-value] - Gen - SpanEditHandler;Accepts:Any + Text;[int-prefix-value]; + Equals;[=]; + MarkupTextLiteral - [26..27)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [27..27)::0 + MarkupTextLiteral - [27..28)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [28..31)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [31..31)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [31..32)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [32..32)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block13.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block13.stree.txt index a0dba460f..7bd690b30 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block13.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block13.stree.txt @@ -1,19 +1,38 @@ -Markup block - Gen - 34 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 34 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 31 - (2:0,2) - Tag block - Gen - 31 - (2:0,2) - input - InputTagHelper3 - SelfClosing - - string-prefix-value - SingleQuotes - Markup block - Gen - 0 - (0:0,0) - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (33:0,33) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..34)::34 - [@{}] + MarkupBlock - [0..34)::34 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..34)::34 + CSharpStatement - [0..34)::34 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..34)::33 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..33)::31 + MarkupBlock - [2..33)::31 + MarkupTagHelperElement - [2..33)::31 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [2..33)::31 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [8..31)::23 - string-prefix-value - SingleQuotes - Bound - [ string-prefix-value=''] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..28)::19 - [string-prefix-value] - Gen - SpanEditHandler;Accepts:Any + Text;[string-prefix-value]; + Equals;[=]; + MarkupTextLiteral - [29..30)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [30..30)::0 + MarkupTextLiteral - [30..31)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [31..33)::2 - [/>] - Gen - SpanEditHandler;Accepts:None + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [33..33)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [33..34)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [34..34)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block14.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block14.stree.txt index 1e353afde..1eb4764b8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block14.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block14.stree.txt @@ -1,20 +1,40 @@ -Markup block - Gen - 32 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 32 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 29 - (2:0,2) - Tag block - Gen - 29 - (2:0,2) - input - InputTagHelper3 - SelfClosing - - int-prefix-value - SingleQuotes - Code span - Gen - [3] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (27:0,27) - Tokens:1 - SyntaxKind.Text;[3]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (32:0,32) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..32)::32 - [@{}] + MarkupBlock - [0..32)::32 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..32)::32 + CSharpStatement - [0..32)::32 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..32)::31 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..31)::29 + MarkupBlock - [2..31)::29 + MarkupTagHelperElement - [2..31)::29 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [2..31)::29 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [8..29)::21 - int-prefix-value - SingleQuotes - Bound - [ int-prefix-value='3'] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..25)::16 - [int-prefix-value] - Gen - SpanEditHandler;Accepts:Any + Text;[int-prefix-value]; + Equals;[=]; + MarkupTextLiteral - [26..27)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [27..28)::1 + CSharpExpressionLiteral - [27..28)::1 - [3] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[3]; + MarkupTextLiteral - [28..29)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [29..31)::2 - [/>] - Gen - SpanEditHandler;Accepts:None + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [31..31)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [31..32)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [32..32)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block15.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block15.stree.txt index d1cb45f6a..5b77be9d9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block15.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block15.stree.txt @@ -1,24 +1,47 @@ -Markup block - Gen - 46 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 46 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 43 - (2:0,2) - Tag block - Gen - 43 - (2:0,2) - input - InputTagHelper3 - SelfClosing - - string-prefix-value - SingleQuotes - Markup block - Gen - 11 - (30:0,30) - Markup span - Gen - [some] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:1 - SyntaxKind.Text;[some]; - Markup span - Gen - [ string] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[string]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (45:0,45) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (45:0,45) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (46:0,46) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..46)::46 - [@{}] + MarkupBlock - [0..46)::46 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..46)::46 + CSharpStatement - [0..46)::46 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..46)::45 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..45)::43 + MarkupBlock - [2..45)::43 + MarkupTagHelperElement - [2..45)::43 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [2..45)::43 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [8..42)::34 - string-prefix-value - SingleQuotes - Bound - [ string-prefix-value='some string'] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..28)::19 - [string-prefix-value] - Gen - SpanEditHandler;Accepts:Any + Text;[string-prefix-value]; + Equals;[=]; + MarkupTextLiteral - [29..30)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [30..41)::11 + MarkupLiteralAttributeValue - [30..34)::4 - [some] + MarkupTextLiteral - [30..34)::4 - [some] - Gen - SpanEditHandler;Accepts:Any + Text;[some]; + MarkupLiteralAttributeValue - [34..41)::7 - [ string] + MarkupTextLiteral - [34..35)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [35..41)::6 - [string] - Gen - SpanEditHandler;Accepts:Any + Text;[string]; + MarkupTextLiteral - [41..42)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [42..45)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [45..45)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [45..46)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [46..46)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block16.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block16.stree.txt index 09a24d3c8..26724100c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block16.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block16.stree.txt @@ -1,19 +1,38 @@ -Markup block - Gen - 51 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 51 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 48 - (2:0,2) - Tag block - Gen - 48 - (2:0,2) - input - InputTagHelper1 - InputTagHelper3 - SelfClosing - - unbound-required - Minimized - bound-required-string - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (50:0,50) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (50:0,50) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (51:0,51) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..51)::51 - [@{}] + MarkupBlock - [0..51)::51 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..51)::51 + CSharpStatement - [0..51)::51 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..51)::50 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..50)::48 + MarkupBlock - [2..50)::48 + MarkupTagHelperElement - [2..50)::48 - input[SelfClosing] - InputTagHelper1 - InputTagHelper3 + MarkupTagHelperStartTag - [2..50)::48 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [8..25)::17 - unbound-required - Minimized - Unbound - [ unbound-required] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..25)::16 - [unbound-required] - Gen - SpanEditHandler;Accepts:Any + Text;[unbound-required]; + MarkupMinimizedTagHelperAttribute - [25..47)::22 - bound-required-string - Minimized - Bound - [ bound-required-string] + MarkupTextLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [26..47)::21 - [bound-required-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-string]; + MarkupTextLiteral - [47..50)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [50..50)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [50..51)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [51..51)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block17.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block17.stree.txt index d860f3e79..de83c6e0a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block17.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block17.stree.txt @@ -1,19 +1,42 @@ -Markup block - Gen - 33 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 33 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 30 - (2:0,2) - Tag block - Gen - 30 - (2:0,2) - p - PTagHelper - StartTagAndEndTag -

        ...

        - bound-int - Minimized - bound-string - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (32:0,32) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (32:0,32) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..33)::33 - [@{

        }] + MarkupBlock - [0..33)::33 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..33)::33 + CSharpStatement - [0..33)::33 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..33)::32 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..32)::30 + MarkupBlock - [2..32)::30 + MarkupTagHelperElement - [2..32)::30 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [2..28)::26 + MarkupTextLiteral - [2..4)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [4..14)::10 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..14)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; + MarkupMinimizedTagHelperAttribute - [14..27)::13 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [15..27)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; + MarkupTextLiteral - [27..28)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagHelperEndTag - [28..32)::4 + MarkupTextLiteral - [28..32)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [32..32)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [32..33)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [33..33)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block18.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block18.stree.txt index 5e6d00a73..b3e5ccb59 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block18.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block18.stree.txt @@ -1,20 +1,43 @@ -Markup block - Gen - 70 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 70 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 67 - (2:0,2) - Tag block - Gen - 67 - (2:0,2) - input - InputTagHelper1 - InputTagHelper2 - InputTagHelper3 - SelfClosing - - bound-required-int - Minimized - unbound-required - Minimized - bound-required-string - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (69:0,69) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (69:0,69) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (70:0,70) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..70)::70 - [@{}] + MarkupBlock - [0..70)::70 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..70)::70 + CSharpStatement - [0..70)::70 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..70)::69 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..69)::67 + MarkupBlock - [2..69)::67 + MarkupTagHelperElement - [2..69)::67 - input[SelfClosing] - InputTagHelper1 - InputTagHelper2 - InputTagHelper3 + MarkupTagHelperStartTag - [2..69)::67 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [8..27)::19 - bound-required-int - Minimized - Bound - [ bound-required-int] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..27)::18 - [bound-required-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-int]; + MarkupMinimizedTagHelperAttribute - [27..44)::17 - unbound-required - Minimized - Unbound - [ unbound-required] + MarkupTextLiteral - [27..28)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [28..44)::16 - [unbound-required] - Gen - SpanEditHandler;Accepts:Any + Text;[unbound-required]; + MarkupMinimizedTagHelperAttribute - [44..66)::22 - bound-required-string - Minimized - Bound - [ bound-required-string] + MarkupTextLiteral - [44..45)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [45..66)::21 - [bound-required-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-string]; + MarkupTextLiteral - [66..69)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [69..69)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [69..70)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [70..70)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block19.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block19.stree.txt index e40e8d2f9..74923d4fb 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block19.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block19.stree.txt @@ -1,20 +1,47 @@ -Markup block - Gen - 46 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 46 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 43 - (2:0,2) - Tag block - Gen - 43 - (2:0,2) - p - PTagHelper - StartTagAndEndTag -

        ...

        - bound-int - Minimized - bound-string - Minimized - bound-string - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (45:0,45) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (45:0,45) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (46:0,46) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..46)::46 - [@{

        }] + MarkupBlock - [0..46)::46 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..46)::46 + CSharpStatement - [0..46)::46 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..46)::45 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..45)::43 + MarkupBlock - [2..45)::43 + MarkupTagHelperElement - [2..45)::43 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [2..41)::39 + MarkupTextLiteral - [2..4)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [4..14)::10 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..14)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; + MarkupMinimizedTagHelperAttribute - [14..27)::13 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [15..27)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; + MarkupMinimizedTagHelperAttribute - [27..40)::13 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [27..28)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [28..40)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; + MarkupTextLiteral - [40..41)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagHelperEndTag - [41..45)::4 + MarkupTextLiteral - [41..45)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [45..45)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [45..46)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [46..46)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block2.stree.txt index a2fa47126..b26006844 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block2.stree.txt @@ -1,18 +1,37 @@ -Markup block - Gen - 23 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 23 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 20 - (2:0,2) - Tag block - Gen - 20 - (2:0,2) - p - PTagHelper - StartTagAndEndTag -

        ...

        - bound-string - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (22:0,22) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..23)::23 - [@{

        }] + MarkupBlock - [0..23)::23 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..23)::23 + CSharpStatement - [0..23)::23 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..23)::22 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..22)::20 + MarkupBlock - [2..22)::20 + MarkupTagHelperElement - [2..22)::20 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [2..18)::16 + MarkupTextLiteral - [2..4)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [4..17)::13 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..17)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; + MarkupTextLiteral - [17..18)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagHelperEndTag - [18..22)::4 + MarkupTextLiteral - [18..22)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [22..22)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [22..23)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [23..23)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block20.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block20.stree.txt index 54ecd3345..cf15a91cb 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block20.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block20.stree.txt @@ -1,21 +1,47 @@ -Markup block - Gen - 41 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 41 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 38 - (2:0,2) - Tag block - Gen - 38 - (2:0,2) - input - InputTagHelper1 - InputTagHelper3 - SelfClosing - - unbound-required - Minimized - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:1 - SyntaxKind.Text;[btn]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (40:0,40) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (41:0,41) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..41)::41 - [@{}] + MarkupBlock - [0..41)::41 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..41)::41 + CSharpStatement - [0..41)::41 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..41)::40 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..40)::38 + MarkupBlock - [2..40)::38 + MarkupTagHelperElement - [2..40)::38 - input[SelfClosing] - InputTagHelper1 - InputTagHelper3 + MarkupTagHelperStartTag - [2..40)::38 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [8..25)::17 - unbound-required - Minimized - Unbound - [ unbound-required] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..25)::16 - [unbound-required] - Gen - SpanEditHandler;Accepts:Any + Text;[unbound-required]; + MarkupTagHelperAttribute - [25..37)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [26..31)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [32..33)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [33..36)::3 + MarkupLiteralAttributeValue - [33..36)::3 - [btn] + MarkupTextLiteral - [33..36)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [36..37)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [37..40)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [40..40)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [40..41)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [41..41)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block21.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block21.stree.txt index 5bfdedbbf..f437ef042 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block21.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block21.stree.txt @@ -1,21 +1,51 @@ -Markup block - Gen - 35 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 35 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 32 - (2:0,2) - Tag block - Gen - 32 - (2:0,2) - p - PTagHelper - StartTagAndEndTag -

        ...

        - bound-string - Minimized - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:1 - SyntaxKind.Text;[btn]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (34:0,34) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..35)::35 - [@{

        }] + MarkupBlock - [0..35)::35 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..35)::35 + CSharpStatement - [0..35)::35 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..35)::34 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..34)::32 + MarkupBlock - [2..34)::32 + MarkupTagHelperElement - [2..34)::32 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [2..30)::28 + MarkupTextLiteral - [2..4)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [4..17)::13 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..17)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; + MarkupTagHelperAttribute - [17..29)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [17..18)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [18..23)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [24..25)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [25..28)::3 + MarkupLiteralAttributeValue - [25..28)::3 - [btn] + MarkupTextLiteral - [25..28)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [28..29)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [29..30)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagHelperEndTag - [30..34)::4 + MarkupTextLiteral - [30..34)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [34..34)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [34..35)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [35..35)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block22.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block22.stree.txt index 5ff02d74d..9725f0e4c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block22.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block22.stree.txt @@ -1,21 +1,47 @@ -Markup block - Gen - 41 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 41 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 38 - (2:0,2) - Tag block - Gen - 38 - (2:0,2) - input - InputTagHelper1 - InputTagHelper3 - SelfClosing - - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[btn]; - unbound-required - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (40:0,40) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (41:0,41) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..41)::41 - [@{}] + MarkupBlock - [0..41)::41 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..41)::41 + CSharpStatement - [0..41)::41 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..41)::40 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..40)::38 + MarkupBlock - [2..40)::38 + MarkupTagHelperElement - [2..40)::38 - input[SelfClosing] - InputTagHelper1 - InputTagHelper3 + MarkupTagHelperStartTag - [2..40)::38 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [8..20)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [16..19)::3 + MarkupLiteralAttributeValue - [16..19)::3 - [btn] + MarkupTextLiteral - [16..19)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [19..20)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [20..37)::17 - unbound-required - Minimized - Unbound - [ unbound-required] + MarkupTextLiteral - [20..21)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [21..37)::16 - [unbound-required] - Gen - SpanEditHandler;Accepts:Any + Text;[unbound-required]; + MarkupTextLiteral - [37..40)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [40..40)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [40..41)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [41..41)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block23.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block23.stree.txt index 6229690f3..911f4fc09 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block23.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block23.stree.txt @@ -1,21 +1,51 @@ -Markup block - Gen - 35 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 35 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 32 - (2:0,2) - Tag block - Gen - 32 - (2:0,2) - p - PTagHelper - StartTagAndEndTag -

        ...

        - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.Text;[btn]; - bound-string - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (34:0,34) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..35)::35 - [@{

        }] + MarkupBlock - [0..35)::35 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..35)::35 + CSharpStatement - [0..35)::35 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..35)::34 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..34)::32 + MarkupBlock - [2..34)::32 + MarkupTagHelperElement - [2..34)::32 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [2..30)::28 + MarkupTextLiteral - [2..4)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [4..16)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [12..15)::3 + MarkupLiteralAttributeValue - [12..15)::3 - [btn] + MarkupTextLiteral - [12..15)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [16..29)::13 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [17..29)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; + MarkupTextLiteral - [29..30)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagHelperEndTag - [30..34)::4 + MarkupTextLiteral - [30..34)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [34..34)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [34..35)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [35..35)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block24.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block24.stree.txt index 9eaa5c617..cf1050092 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block24.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block24.stree.txt @@ -1,21 +1,47 @@ -Markup block - Gen - 46 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 46 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 43 - (2:0,2) - Tag block - Gen - 43 - (2:0,2) - input - InputTagHelper1 - InputTagHelper3 - SelfClosing - - bound-required-string - Minimized - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (38:0,38) - Tokens:1 - SyntaxKind.Text;[btn]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (45:0,45) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (45:0,45) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (46:0,46) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..46)::46 - [@{}] + MarkupBlock - [0..46)::46 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..46)::46 + CSharpStatement - [0..46)::46 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..46)::45 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..45)::43 + MarkupBlock - [2..45)::43 + MarkupTagHelperElement - [2..45)::43 - input[SelfClosing] - InputTagHelper1 - InputTagHelper3 + MarkupTagHelperStartTag - [2..45)::43 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [8..30)::22 - bound-required-string - Minimized - Bound - [ bound-required-string] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..30)::21 - [bound-required-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-string]; + MarkupTagHelperAttribute - [30..42)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [30..31)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [31..36)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [37..38)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [38..41)::3 + MarkupLiteralAttributeValue - [38..41)::3 - [btn] + MarkupTextLiteral - [38..41)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [41..42)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [42..45)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [45..45)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [45..46)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [46..46)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block25.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block25.stree.txt index aa51eb372..b9e07e170 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block25.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block25.stree.txt @@ -1,21 +1,47 @@ -Markup block - Gen - 46 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 46 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 43 - (2:0,2) - Tag block - Gen - 43 - (2:0,2) - input - InputTagHelper1 - InputTagHelper3 - SelfClosing - - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[btn]; - bound-required-string - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (45:0,45) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (45:0,45) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (46:0,46) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..46)::46 - [@{}] + MarkupBlock - [0..46)::46 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..46)::46 + CSharpStatement - [0..46)::46 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..46)::45 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..45)::43 + MarkupBlock - [2..45)::43 + MarkupTagHelperElement - [2..45)::43 - input[SelfClosing] - InputTagHelper1 - InputTagHelper3 + MarkupTagHelperStartTag - [2..45)::43 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [8..20)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [16..19)::3 + MarkupLiteralAttributeValue - [16..19)::3 - [btn] + MarkupTextLiteral - [16..19)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [19..20)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [20..42)::22 - bound-required-string - Minimized - Bound - [ bound-required-string] + MarkupTextLiteral - [20..21)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [21..42)::21 - [bound-required-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-string]; + MarkupTextLiteral - [42..45)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [45..45)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [45..46)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [46..46)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block26.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block26.stree.txt index c61cca4ac..90aa657d7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block26.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block26.stree.txt @@ -1,21 +1,47 @@ -Markup block - Gen - 43 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 43 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 40 - (2:0,2) - Tag block - Gen - 40 - (2:0,2) - input - InputTagHelper2 - InputTagHelper3 - SelfClosing - - bound-required-int - Minimized - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:1 - SyntaxKind.Text;[btn]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (42:0,42) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (42:0,42) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (43:0,43) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..43)::43 - [@{}] + MarkupBlock - [0..43)::43 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..43)::43 + CSharpStatement - [0..43)::43 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..43)::42 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..42)::40 + MarkupBlock - [2..42)::40 + MarkupTagHelperElement - [2..42)::40 - input[SelfClosing] - InputTagHelper2 - InputTagHelper3 + MarkupTagHelperStartTag - [2..42)::40 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [8..27)::19 - bound-required-int - Minimized - Bound - [ bound-required-int] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..27)::18 - [bound-required-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-int]; + MarkupTagHelperAttribute - [27..39)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [27..28)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [28..33)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [34..35)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [35..38)::3 + MarkupLiteralAttributeValue - [35..38)::3 - [btn] + MarkupTextLiteral - [35..38)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [38..39)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [39..42)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [42..42)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [42..43)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [43..43)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block27.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block27.stree.txt index 728b38445..3fe735e34 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block27.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block27.stree.txt @@ -1,21 +1,51 @@ -Markup block - Gen - 32 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 32 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 29 - (2:0,2) - Tag block - Gen - 29 - (2:0,2) - p - PTagHelper - StartTagAndEndTag -

        ...

        - bound-int - Minimized - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.Text;[btn]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (32:0,32) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..32)::32 - [@{

        }] + MarkupBlock - [0..32)::32 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..32)::32 + CSharpStatement - [0..32)::32 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..32)::31 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..31)::29 + MarkupBlock - [2..31)::29 + MarkupTagHelperElement - [2..31)::29 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [2..27)::25 + MarkupTextLiteral - [2..4)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [4..14)::10 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..14)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; + MarkupTagHelperAttribute - [14..26)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [15..20)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [21..22)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [22..25)::3 + MarkupLiteralAttributeValue - [22..25)::3 - [btn] + MarkupTextLiteral - [22..25)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [25..26)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [26..27)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagHelperEndTag - [27..31)::4 + MarkupTextLiteral - [27..31)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [31..31)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [31..32)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [32..32)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block28.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block28.stree.txt index 0fa49e818..666f88ea0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block28.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block28.stree.txt @@ -1,21 +1,47 @@ -Markup block - Gen - 43 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 43 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 40 - (2:0,2) - Tag block - Gen - 40 - (2:0,2) - input - InputTagHelper2 - InputTagHelper3 - SelfClosing - - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[btn]; - bound-required-int - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (42:0,42) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (42:0,42) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (43:0,43) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..43)::43 - [@{}] + MarkupBlock - [0..43)::43 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..43)::43 + CSharpStatement - [0..43)::43 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..43)::42 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..42)::40 + MarkupBlock - [2..42)::40 + MarkupTagHelperElement - [2..42)::40 - input[SelfClosing] - InputTagHelper2 - InputTagHelper3 + MarkupTagHelperStartTag - [2..42)::40 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [8..20)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [16..19)::3 + MarkupLiteralAttributeValue - [16..19)::3 - [btn] + MarkupTextLiteral - [16..19)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [19..20)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [20..39)::19 - bound-required-int - Minimized - Bound - [ bound-required-int] + MarkupTextLiteral - [20..21)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [21..39)::18 - [bound-required-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-int]; + MarkupTextLiteral - [39..42)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [42..42)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [42..43)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [43..43)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block29.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block29.stree.txt index 7a41ff450..d32d0789f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block29.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block29.stree.txt @@ -1,21 +1,51 @@ -Markup block - Gen - 32 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 32 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 29 - (2:0,2) - Tag block - Gen - 29 - (2:0,2) - p - PTagHelper - StartTagAndEndTag -

        ...

        - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.Text;[btn]; - bound-int - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (32:0,32) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..32)::32 - [@{

        }] + MarkupBlock - [0..32)::32 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..32)::32 + CSharpStatement - [0..32)::32 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..32)::31 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..31)::29 + MarkupBlock - [2..31)::29 + MarkupTagHelperElement - [2..31)::29 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [2..27)::25 + MarkupTextLiteral - [2..4)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [4..16)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [12..15)::3 + MarkupLiteralAttributeValue - [12..15)::3 - [btn] + MarkupTextLiteral - [12..15)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [16..26)::10 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [17..26)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; + MarkupTextLiteral - [26..27)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagHelperEndTag - [27..31)::4 + MarkupTextLiteral - [27..31)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [31..31)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [31..32)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [32..32)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block3.stree.txt index c7eb6d6cb..21d1fe017 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block3.stree.txt @@ -1,18 +1,33 @@ -Markup block - Gen - 34 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 34 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 31 - (2:0,2) - Tag block - Gen - 31 - (2:0,2) - input - InputTagHelper1 - InputTagHelper3 - SelfClosing - - bound-required-string - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (33:0,33) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..34)::34 - [@{}] + MarkupBlock - [0..34)::34 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..34)::34 + CSharpStatement - [0..34)::34 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..34)::33 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..33)::31 + MarkupBlock - [2..33)::31 + MarkupTagHelperElement - [2..33)::31 - input[SelfClosing] - InputTagHelper1 - InputTagHelper3 + MarkupTagHelperStartTag - [2..33)::31 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [8..30)::22 - bound-required-string - Minimized - Bound - [ bound-required-string] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..30)::21 - [bound-required-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-string]; + MarkupTextLiteral - [30..33)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [33..33)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [33..34)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [34..34)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block30.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block30.stree.txt index 199aecdb5..32c3b9f29 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block30.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block30.stree.txt @@ -1,34 +1,66 @@ -Markup block - Gen - 57 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 57 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 54 - (2:0,2) - Tag block - Gen - 54 - (2:0,2) - input - InputTagHelper2 - InputTagHelper3 - SelfClosing - - class - SingleQuotes - Markup block - Gen - 17 - (16:0,16) - Markup block - Gen - 13 - (16:0,16) - Expression block - Gen - 13 - (16:0,16) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (17:0,17) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ +] - SpanEditHandler;Accepts:Any - (29:0,29) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[+]; - Markup span - Gen - [ 1] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[1]; - bound-required-int - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (56:0,56) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (56:0,56) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (57:0,57) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..57)::57 - [@{}] + MarkupBlock - [0..57)::57 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..57)::57 + CSharpStatement - [0..57)::57 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..57)::56 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..56)::54 + MarkupBlock - [2..56)::54 + MarkupTagHelperElement - [2..56)::54 - input[SelfClosing] - InputTagHelper2 - InputTagHelper3 + MarkupTagHelperStartTag - [2..56)::54 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [8..34)::26 - class - SingleQuotes - Unbound - [ class='@DateTime.Now + 1'] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [16..33)::17 + MarkupDynamicAttributeValue - [16..29)::13 - [@DateTime.Now] + GenericBlock - [16..29)::13 + CSharpCodeBlock - [16..29)::13 + CSharpImplicitExpression - [16..29)::13 + CSharpTransition - [16..17)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [17..29)::12 + CSharpCodeBlock - [17..29)::12 + CSharpExpressionLiteral - [17..29)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupLiteralAttributeValue - [29..31)::2 - [ +] + MarkupTextLiteral - [29..30)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [30..31)::1 - [+] - Gen - SpanEditHandler;Accepts:Any + Text;[+]; + MarkupLiteralAttributeValue - [31..33)::2 - [ 1] + MarkupTextLiteral - [31..32)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [32..33)::1 - [1] - Gen - SpanEditHandler;Accepts:Any + Text;[1]; + MarkupTextLiteral - [33..34)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [34..53)::19 - bound-required-int - Minimized - Bound - [ bound-required-int] + MarkupTextLiteral - [34..35)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [35..53)::18 - [bound-required-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-int]; + MarkupTextLiteral - [53..56)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [56..56)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [56..57)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [57..57)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block31.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block31.stree.txt index 64c741e1e..dd5804b07 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block31.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block31.stree.txt @@ -1,34 +1,70 @@ -Markup block - Gen - 46 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 46 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 43 - (2:0,2) - Tag block - Gen - 43 - (2:0,2) - p - PTagHelper - StartTagAndEndTag -

        ...

        - class - SingleQuotes - Markup block - Gen - 17 - (12:0,12) - Markup block - Gen - 13 - (12:0,12) - Expression block - Gen - 13 - (12:0,12) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (13:0,13) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ +] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[+]; - Markup span - Gen - [ 1] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[1]; - bound-int - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (45:0,45) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (45:0,45) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (46:0,46) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..46)::46 - [@{

        }] + MarkupBlock - [0..46)::46 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..46)::46 + CSharpStatement - [0..46)::46 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..46)::45 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..45)::43 + MarkupBlock - [2..45)::43 + MarkupTagHelperElement - [2..45)::43 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [2..41)::39 + MarkupTextLiteral - [2..4)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [4..30)::26 - class - SingleQuotes - Unbound - [ class='@DateTime.Now + 1'] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [12..29)::17 + MarkupDynamicAttributeValue - [12..25)::13 - [@DateTime.Now] + GenericBlock - [12..25)::13 + CSharpCodeBlock - [12..25)::13 + CSharpImplicitExpression - [12..25)::13 + CSharpTransition - [12..13)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [13..25)::12 + CSharpCodeBlock - [13..25)::12 + CSharpExpressionLiteral - [13..25)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupLiteralAttributeValue - [25..27)::2 - [ +] + MarkupTextLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [26..27)::1 - [+] - Gen - SpanEditHandler;Accepts:Any + Text;[+]; + MarkupLiteralAttributeValue - [27..29)::2 - [ 1] + MarkupTextLiteral - [27..28)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [28..29)::1 - [1] - Gen - SpanEditHandler;Accepts:Any + Text;[1]; + MarkupTextLiteral - [29..30)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [30..40)::10 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [30..31)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [31..40)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; + MarkupTextLiteral - [40..41)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagHelperEndTag - [41..45)::4 + MarkupTextLiteral - [41..45)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [45..45)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [45..46)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [46..46)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block32.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block32.stree.txt index 07091a45f..c36d7d279 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block32.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block32.stree.txt @@ -1,52 +1,109 @@ -Markup block - Gen - 129 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 129 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 126 - (2:0,2) - Tag block - Gen - 126 - (2:0,2) - input - InputTagHelper1 - InputTagHelper2 - InputTagHelper3 - SelfClosing - - bound-required-int - Minimized - class - SingleQuotes - Markup block - Gen - 17 - (38:0,38) - Markup block - Gen - 13 - (38:0,38) - Expression block - Gen - 13 - (38:0,38) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (38:0,38) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (39:0,39) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ +] - SpanEditHandler;Accepts:Any - (51:0,51) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[+]; - Markup span - Gen - [ 1] - SpanEditHandler;Accepts:Any - (53:0,53) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[1]; - bound-required-string - Minimized - class - SingleQuotes - Markup block - Gen - 17 - (88:0,88) - Markup block - Gen - 13 - (88:0,88) - Expression block - Gen - 13 - (88:0,88) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (88:0,88) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (89:0,89) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ +] - SpanEditHandler;Accepts:Any - (101:0,101) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[+]; - Markup span - Gen - [ 1] - SpanEditHandler;Accepts:Any - (103:0,103) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[1]; - unbound-required - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (128:0,128) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (128:0,128) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (129:0,129) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..129)::129 - [@{}] + MarkupBlock - [0..129)::129 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..129)::129 + CSharpStatement - [0..129)::129 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..129)::128 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..128)::126 + MarkupBlock - [2..128)::126 + MarkupTagHelperElement - [2..128)::126 - input[SelfClosing] - InputTagHelper1 - InputTagHelper2 - InputTagHelper3 + MarkupTagHelperStartTag - [2..128)::126 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [8..30)::22 - bound-required-int - Minimized - Bound - [ bound-required-int] + MarkupTextLiteral - [8..12)::4 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [12..30)::18 - [bound-required-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-int]; + MarkupTagHelperAttribute - [30..56)::26 - class - SingleQuotes - Unbound - [ class='@DateTime.Now + 1'] + MarkupTextLiteral - [30..31)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [31..36)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [37..38)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [38..55)::17 + MarkupDynamicAttributeValue - [38..51)::13 - [@DateTime.Now] + GenericBlock - [38..51)::13 + CSharpCodeBlock - [38..51)::13 + CSharpImplicitExpression - [38..51)::13 + CSharpTransition - [38..39)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [39..51)::12 + CSharpCodeBlock - [39..51)::12 + CSharpExpressionLiteral - [39..51)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupLiteralAttributeValue - [51..53)::2 - [ +] + MarkupTextLiteral - [51..52)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [52..53)::1 - [+] - Gen - SpanEditHandler;Accepts:Any + Text;[+]; + MarkupLiteralAttributeValue - [53..55)::2 - [ 1] + MarkupTextLiteral - [53..54)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [54..55)::1 - [1] - Gen - SpanEditHandler;Accepts:Any + Text;[1]; + MarkupTextLiteral - [55..56)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [56..80)::24 - bound-required-string - Minimized - Bound - [ bound-required-string] + MarkupTextLiteral - [56..59)::3 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [59..80)::21 - [bound-required-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-string]; + MarkupTagHelperAttribute - [80..106)::26 - class - SingleQuotes - Unbound - [ class='@DateTime.Now + 1'] + MarkupTextLiteral - [80..81)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [81..86)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [87..88)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [88..105)::17 + MarkupDynamicAttributeValue - [88..101)::13 - [@DateTime.Now] + GenericBlock - [88..101)::13 + CSharpCodeBlock - [88..101)::13 + CSharpImplicitExpression - [88..101)::13 + CSharpTransition - [88..89)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [89..101)::12 + CSharpCodeBlock - [89..101)::12 + CSharpExpressionLiteral - [89..101)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupLiteralAttributeValue - [101..103)::2 - [ +] + MarkupTextLiteral - [101..102)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [102..103)::1 - [+] - Gen - SpanEditHandler;Accepts:Any + Text;[+]; + MarkupLiteralAttributeValue - [103..105)::2 - [ 1] + MarkupTextLiteral - [103..104)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [104..105)::1 - [1] - Gen - SpanEditHandler;Accepts:Any + Text;[1]; + MarkupTextLiteral - [105..106)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [106..124)::18 - unbound-required - Minimized - Unbound - [ unbound-required] + MarkupTextLiteral - [106..108)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [108..124)::16 - [unbound-required] - Gen - SpanEditHandler;Accepts:Any + Text;[unbound-required]; + MarkupTextLiteral - [124..128)::4 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [128..128)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [128..129)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [129..129)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block33.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block33.stree.txt index 1c2fac1f4..68a4e77a4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block33.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block33.stree.txt @@ -1,52 +1,113 @@ -Markup block - Gen - 104 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 104 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 101 - (2:0,2) - Tag block - Gen - 101 - (2:0,2) - p - PTagHelper - StartTagAndEndTag -

        ...

        - bound-int - Minimized - class - SingleQuotes - Markup block - Gen - 17 - (25:0,25) - Markup block - Gen - 13 - (25:0,25) - Expression block - Gen - 13 - (25:0,25) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (25:0,25) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (26:0,26) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ +] - SpanEditHandler;Accepts:Any - (38:0,38) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[+]; - Markup span - Gen - [ 1] - SpanEditHandler;Accepts:Any - (40:0,40) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[1]; - bound-string - Minimized - class - SingleQuotes - Markup block - Gen - 17 - (66:0,66) - Markup block - Gen - 13 - (66:0,66) - Expression block - Gen - 13 - (66:0,66) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (66:0,66) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (67:0,67) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ +] - SpanEditHandler;Accepts:Any - (79:0,79) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[+]; - Markup span - Gen - [ 1] - SpanEditHandler;Accepts:Any - (81:0,81) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[1]; - bound-string - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (103:0,103) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (103:0,103) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (104:0,104) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..104)::104 - [@{

        }] + MarkupBlock - [0..104)::104 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..104)::104 + CSharpStatement - [0..104)::104 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..104)::103 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..103)::101 + MarkupBlock - [2..103)::101 + MarkupTagHelperElement - [2..103)::101 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [2..99)::97 + MarkupTextLiteral - [2..4)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [4..17)::13 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [4..8)::4 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..17)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; + MarkupTagHelperAttribute - [17..43)::26 - class - SingleQuotes - Unbound - [ class='@DateTime.Now + 1'] + MarkupTextLiteral - [17..18)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [18..23)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [24..25)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [25..42)::17 + MarkupDynamicAttributeValue - [25..38)::13 - [@DateTime.Now] + GenericBlock - [25..38)::13 + CSharpCodeBlock - [25..38)::13 + CSharpImplicitExpression - [25..38)::13 + CSharpTransition - [25..26)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [26..38)::12 + CSharpCodeBlock - [26..38)::12 + CSharpExpressionLiteral - [26..38)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupLiteralAttributeValue - [38..40)::2 - [ +] + MarkupTextLiteral - [38..39)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [39..40)::1 - [+] - Gen - SpanEditHandler;Accepts:Any + Text;[+]; + MarkupLiteralAttributeValue - [40..42)::2 - [ 1] + MarkupTextLiteral - [40..41)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [41..42)::1 - [1] - Gen - SpanEditHandler;Accepts:Any + Text;[1]; + MarkupTextLiteral - [42..43)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [43..58)::15 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [43..46)::3 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [46..58)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; + MarkupTagHelperAttribute - [58..84)::26 - class - SingleQuotes - Unbound - [ class='@DateTime.Now + 1'] + MarkupTextLiteral - [58..59)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [59..64)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [65..66)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [66..83)::17 + MarkupDynamicAttributeValue - [66..79)::13 - [@DateTime.Now] + GenericBlock - [66..79)::13 + CSharpCodeBlock - [66..79)::13 + CSharpImplicitExpression - [66..79)::13 + CSharpTransition - [66..67)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [67..79)::12 + CSharpCodeBlock - [67..79)::12 + CSharpExpressionLiteral - [67..79)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupLiteralAttributeValue - [79..81)::2 - [ +] + MarkupTextLiteral - [79..80)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [80..81)::1 - [+] - Gen - SpanEditHandler;Accepts:Any + Text;[+]; + MarkupLiteralAttributeValue - [81..83)::2 - [ 1] + MarkupTextLiteral - [81..82)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [82..83)::1 - [1] - Gen - SpanEditHandler;Accepts:Any + Text;[1]; + MarkupTextLiteral - [83..84)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [84..98)::14 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [84..86)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [86..98)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; + MarkupTextLiteral - [98..99)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagHelperEndTag - [99..103)::4 + MarkupTextLiteral - [99..103)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [103..103)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [103..104)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [104..104)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block4.stree.txt index 1a9d7da7d..15574d231 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block4.stree.txt @@ -1,18 +1,33 @@ -Markup block - Gen - 31 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 31 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 28 - (2:0,2) - Tag block - Gen - 28 - (2:0,2) - input - InputTagHelper2 - InputTagHelper3 - SelfClosing - - bound-required-int - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (30:0,30) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..31)::31 - [@{}] + MarkupBlock - [0..31)::31 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..31)::31 + CSharpStatement - [0..31)::31 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..31)::30 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..30)::28 + MarkupBlock - [2..30)::28 + MarkupTagHelperElement - [2..30)::28 - input[SelfClosing] - InputTagHelper2 - InputTagHelper3 + MarkupTagHelperStartTag - [2..30)::28 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [8..27)::19 - bound-required-int - Minimized - Bound - [ bound-required-int] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..27)::18 - [bound-required-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-int]; + MarkupTextLiteral - [27..30)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [30..30)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [30..31)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [31..31)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block5.stree.txt index 59d1be130..8547da82f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block5.stree.txt @@ -1,18 +1,37 @@ -Markup block - Gen - 20 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 20 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 17 - (2:0,2) - Tag block - Gen - 17 - (2:0,2) - p - PTagHelper - StartTagAndEndTag -

        ...

        - bound-int - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (19:0,19) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..20)::20 - [@{

        }] + MarkupBlock - [0..20)::20 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..20)::20 + CSharpStatement - [0..20)::20 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..20)::19 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..19)::17 + MarkupBlock - [2..19)::17 + MarkupTagHelperElement - [2..19)::17 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [2..15)::13 + MarkupTextLiteral - [2..4)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [4..14)::10 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..14)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; + MarkupTextLiteral - [14..15)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagHelperEndTag - [15..19)::4 + MarkupTextLiteral - [15..19)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [19..19)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [19..20)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [20..20)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block6.stree.txt index f879e42b4..7d1690d89 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block6.stree.txt @@ -1,18 +1,32 @@ -Markup block - Gen - 26 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 26 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 23 - (2:0,2) - Tag block - Gen - 23 - (2:0,2) - input - InputTagHelper3 - SelfClosing - - int-dictionary - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (25:0,25) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (26:0,26) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..26)::26 - [@{}] + MarkupBlock - [0..26)::26 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..26)::26 + CSharpStatement - [0..26)::26 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..26)::25 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..25)::23 + MarkupBlock - [2..25)::23 + MarkupTagHelperElement - [2..25)::23 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [2..25)::23 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [8..23)::15 - int-dictionary - Minimized - Bound - [ int-dictionary] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..23)::14 - [int-dictionary] - Gen - SpanEditHandler;Accepts:Any + Text;[int-dictionary]; + MarkupTextLiteral - [23..25)::2 - [/>] - Gen - SpanEditHandler;Accepts:None + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [25..25)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [25..26)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [26..26)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block7.stree.txt index c1ea18d20..2f52d89c2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block7.stree.txt @@ -1,18 +1,33 @@ -Markup block - Gen - 30 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 30 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 27 - (2:0,2) - Tag block - Gen - 27 - (2:0,2) - input - InputTagHelper3 - SelfClosing - - string-dictionary - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (29:0,29) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (29:0,29) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..30)::30 - [@{}] + MarkupBlock - [0..30)::30 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..30)::30 + CSharpStatement - [0..30)::30 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..30)::29 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..29)::27 + MarkupBlock - [2..29)::27 + MarkupTagHelperElement - [2..29)::27 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [2..29)::27 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [8..26)::18 - string-dictionary - Minimized - Bound - [ string-dictionary] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..26)::17 - [string-dictionary] - Gen - SpanEditHandler;Accepts:Any + Text;[string-dictionary]; + MarkupTextLiteral - [26..29)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [29..29)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [29..30)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [30..30)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block8.stree.txt index 84b73ec0f..aa96354de 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block8.stree.txt @@ -1,18 +1,33 @@ -Markup block - Gen - 24 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 24 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 21 - (2:0,2) - Tag block - Gen - 21 - (2:0,2) - input - InputTagHelper3 - SelfClosing - - int-prefix- - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (23:0,23) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..24)::24 - [@{}] + MarkupBlock - [0..24)::24 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..24)::24 + CSharpStatement - [0..24)::24 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..24)::23 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..23)::21 + MarkupBlock - [2..23)::21 + MarkupTagHelperElement - [2..23)::21 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [2..23)::21 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [8..20)::12 - int-prefix- - Minimized - Bound - [ int-prefix-] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..20)::11 - [int-prefix-] - Gen - SpanEditHandler;Accepts:Any + Text;[int-prefix-]; + MarkupTextLiteral - [20..23)::3 - [ />] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [23..23)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [23..24)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [24..24)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block9.stree.txt index 5bee7d7fa..a66614b0f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block9.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block9.stree.txt @@ -1,18 +1,32 @@ -Markup block - Gen - 26 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 26 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 23 - (2:0,2) - Tag block - Gen - 23 - (2:0,2) - input - InputTagHelper3 - SelfClosing - - string-prefix- - Minimized - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (25:0,25) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (26:0,26) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..26)::26 - [@{}] + MarkupBlock - [0..26)::26 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..26)::26 + CSharpStatement - [0..26)::26 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..26)::25 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..25)::23 + MarkupBlock - [2..25)::23 + MarkupTagHelperElement - [2..25)::23 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [2..25)::23 + MarkupTextLiteral - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [8..23)::15 - string-prefix- - Minimized - Bound - [ string-prefix-] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..23)::14 - [string-prefix-] - Gen - SpanEditHandler;Accepts:Any + Text;[string-prefix-]; + MarkupTextLiteral - [23..25)::2 - [/>] - Gen - SpanEditHandler;Accepts:None + ForwardSlash;[/]; + CloseAngle;[>]; + CSharpStatementLiteral - [25..25)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [25..26)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [26..26)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document1.stree.txt index 8a35bfa8f..0c464f724 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document1.stree.txt @@ -1,4 +1,16 @@ -Markup block - Gen - 26 - (0:0,0) - Tag block - Gen - 26 - (0:0,0) - input - InputTagHelper1 - InputTagHelper3 - SelfClosing - - unbound-required - Minimized +RazorDocument - [0..26)::26 - [] + MarkupBlock - [0..26)::26 + MarkupTagHelperElement - [0..26)::26 - input[SelfClosing] - InputTagHelper1 - InputTagHelper3 + MarkupTagHelperStartTag - [0..26)::26 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..23)::17 - unbound-required - Minimized - Unbound - [ unbound-required] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..23)::16 - [unbound-required] - Gen - SpanEditHandler;Accepts:Any + Text;[unbound-required]; + MarkupTextLiteral - [23..26)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document10.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document10.stree.txt index 8c636ecf0..eb325261e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document10.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document10.stree.txt @@ -1,4 +1,15 @@ -Markup block - Gen - 25 - (0:0,0) - Tag block - Gen - 25 - (0:0,0) - input - InputTagHelper3 - SelfClosing - - int-prefix-value - Minimized +RazorDocument - [0..25)::25 - [] + MarkupBlock - [0..25)::25 + MarkupTagHelperElement - [0..25)::25 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [0..25)::25 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..23)::17 - int-prefix-value - Minimized - Bound - [ int-prefix-value] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..23)::16 - [int-prefix-value] - Gen - SpanEditHandler;Accepts:Any + Text;[int-prefix-value]; + MarkupTextLiteral - [23..25)::2 - [/>] - Gen - SpanEditHandler;Accepts:Any + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document11.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document11.stree.txt index f8f403ef1..74209e504 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document11.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document11.stree.txt @@ -1,4 +1,16 @@ -Markup block - Gen - 29 - (0:0,0) - Tag block - Gen - 29 - (0:0,0) - input - InputTagHelper3 - SelfClosing - - string-prefix-value - Minimized +RazorDocument - [0..29)::29 - [] + MarkupBlock - [0..29)::29 + MarkupTagHelperElement - [0..29)::29 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [0..29)::29 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..26)::20 - string-prefix-value - Minimized - Bound - [ string-prefix-value] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..26)::19 - [string-prefix-value] - Gen - SpanEditHandler;Accepts:Any + Text;[string-prefix-value]; + MarkupTextLiteral - [26..29)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document12.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document12.stree.txt index e5a9fb8e2..cdfb86efa 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document12.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document12.stree.txt @@ -1,5 +1,22 @@ -Markup block - Gen - 29 - (0:0,0) - Tag block - Gen - 29 - (0:0,0) - input - InputTagHelper3 - SelfClosing - - int-prefix-value - SingleQuotes - Markup block - Gen - 0 - (0:0,0) +RazorDocument - [0..29)::29 - [] + MarkupBlock - [0..29)::29 + MarkupTagHelperElement - [0..29)::29 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [0..29)::29 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..26)::20 - int-prefix-value - SingleQuotes - Bound - [ int-prefix-value=''] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..23)::16 - [int-prefix-value] - Gen - SpanEditHandler;Accepts:Any + Text;[int-prefix-value]; + Equals;[=]; + MarkupTextLiteral - [24..25)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [25..25)::0 + MarkupTextLiteral - [25..26)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [26..29)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document13.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document13.stree.txt index 7f597a2b7..ba953cbee 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document13.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document13.stree.txt @@ -1,5 +1,21 @@ -Markup block - Gen - 31 - (0:0,0) - Tag block - Gen - 31 - (0:0,0) - input - InputTagHelper3 - SelfClosing - - string-prefix-value - SingleQuotes - Markup block - Gen - 0 - (0:0,0) +RazorDocument - [0..31)::31 - [] + MarkupBlock - [0..31)::31 + MarkupTagHelperElement - [0..31)::31 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [0..31)::31 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..29)::23 - string-prefix-value - SingleQuotes - Bound - [ string-prefix-value=''] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..26)::19 - [string-prefix-value] - Gen - SpanEditHandler;Accepts:Any + Text;[string-prefix-value]; + Equals;[=]; + MarkupTextLiteral - [27..28)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [28..28)::0 + MarkupTextLiteral - [28..29)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [29..31)::2 - [/>] - Gen - SpanEditHandler;Accepts:Any + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document14.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document14.stree.txt index 4226a82db..e61b4bc80 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document14.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document14.stree.txt @@ -1,6 +1,23 @@ -Markup block - Gen - 29 - (0:0,0) - Tag block - Gen - 29 - (0:0,0) - input - InputTagHelper3 - SelfClosing - - int-prefix-value - SingleQuotes - Code span - Gen - [3] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (25:0,25) - Tokens:1 - SyntaxKind.Text;[3]; +RazorDocument - [0..29)::29 - [] + MarkupBlock - [0..29)::29 + MarkupTagHelperElement - [0..29)::29 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [0..29)::29 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..27)::21 - int-prefix-value - SingleQuotes - Bound - [ int-prefix-value='3'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..23)::16 - [int-prefix-value] - Gen - SpanEditHandler;Accepts:Any + Text;[int-prefix-value]; + Equals;[=]; + MarkupTextLiteral - [24..25)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [25..26)::1 + CSharpExpressionLiteral - [25..26)::1 - [3] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Text;[3]; + MarkupTextLiteral - [26..27)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [27..29)::2 - [/>] - Gen - SpanEditHandler;Accepts:Any + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document15.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document15.stree.txt index f3971cb6f..79a9cf723 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document15.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document15.stree.txt @@ -1,10 +1,30 @@ -Markup block - Gen - 43 - (0:0,0) - Tag block - Gen - 43 - (0:0,0) - input - InputTagHelper3 - SelfClosing - - string-prefix-value - SingleQuotes - Markup block - Gen - 11 - (28:0,28) - Markup span - Gen - [some] - SpanEditHandler;Accepts:Any - (28:0,28) - Tokens:1 - SyntaxKind.Text;[some]; - Markup span - Gen - [ string] - SpanEditHandler;Accepts:Any - (32:0,32) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[string]; +RazorDocument - [0..43)::43 - [] + MarkupBlock - [0..43)::43 + MarkupTagHelperElement - [0..43)::43 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [0..43)::43 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..40)::34 - string-prefix-value - SingleQuotes - Bound - [ string-prefix-value='some string'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..26)::19 - [string-prefix-value] - Gen - SpanEditHandler;Accepts:Any + Text;[string-prefix-value]; + Equals;[=]; + MarkupTextLiteral - [27..28)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [28..39)::11 + MarkupLiteralAttributeValue - [28..32)::4 - [some] + MarkupTextLiteral - [28..32)::4 - [some] - Gen - SpanEditHandler;Accepts:Any + Text;[some]; + MarkupLiteralAttributeValue - [32..39)::7 - [ string] + MarkupTextLiteral - [32..33)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [33..39)::6 - [string] - Gen - SpanEditHandler;Accepts:Any + Text;[string]; + MarkupTextLiteral - [39..40)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [40..43)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document16.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document16.stree.txt index 670480e00..0b6e2afcb 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document16.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document16.stree.txt @@ -1,5 +1,21 @@ -Markup block - Gen - 48 - (0:0,0) - Tag block - Gen - 48 - (0:0,0) - input - InputTagHelper1 - InputTagHelper3 - SelfClosing - - unbound-required - Minimized - bound-required-string - Minimized +RazorDocument - [0..48)::48 - [] + MarkupBlock - [0..48)::48 + MarkupTagHelperElement - [0..48)::48 - input[SelfClosing] - InputTagHelper1 - InputTagHelper3 + MarkupTagHelperStartTag - [0..48)::48 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..23)::17 - unbound-required - Minimized - Unbound - [ unbound-required] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..23)::16 - [unbound-required] - Gen - SpanEditHandler;Accepts:Any + Text;[unbound-required]; + MarkupMinimizedTagHelperAttribute - [23..45)::22 - bound-required-string - Minimized - Bound - [ bound-required-string] + MarkupTextLiteral - [23..24)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [24..45)::21 - [bound-required-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-string]; + MarkupTextLiteral - [45..48)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document17.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document17.stree.txt index f2b82508f..721c05474 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document17.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document17.stree.txt @@ -1,5 +1,25 @@ -Markup block - Gen - 30 - (0:0,0) - Tag block - Gen - 30 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - bound-int - Minimized - bound-string - Minimized +RazorDocument - [0..30)::30 - [

        ] + MarkupBlock - [0..30)::30 + MarkupTagHelperElement - [0..30)::30 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..26)::26 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [2..12)::10 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..12)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; + MarkupMinimizedTagHelperAttribute - [12..25)::13 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [13..25)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; + MarkupTextLiteral - [25..26)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [26..30)::4 + MarkupTextLiteral - [26..30)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document18.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document18.stree.txt index 100a7b398..289ffb0d0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document18.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document18.stree.txt @@ -1,6 +1,26 @@ -Markup block - Gen - 67 - (0:0,0) - Tag block - Gen - 67 - (0:0,0) - input - InputTagHelper1 - InputTagHelper2 - InputTagHelper3 - SelfClosing - - bound-required-int - Minimized - unbound-required - Minimized - bound-required-string - Minimized +RazorDocument - [0..67)::67 - [] + MarkupBlock - [0..67)::67 + MarkupTagHelperElement - [0..67)::67 - input[SelfClosing] - InputTagHelper1 - InputTagHelper2 - InputTagHelper3 + MarkupTagHelperStartTag - [0..67)::67 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..25)::19 - bound-required-int - Minimized - Bound - [ bound-required-int] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..25)::18 - [bound-required-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-int]; + MarkupMinimizedTagHelperAttribute - [25..42)::17 - unbound-required - Minimized - Unbound - [ unbound-required] + MarkupTextLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [26..42)::16 - [unbound-required] - Gen - SpanEditHandler;Accepts:Any + Text;[unbound-required]; + MarkupMinimizedTagHelperAttribute - [42..64)::22 - bound-required-string - Minimized - Bound - [ bound-required-string] + MarkupTextLiteral - [42..43)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [43..64)::21 - [bound-required-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-string]; + MarkupTextLiteral - [64..67)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document19.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document19.stree.txt index a3c21fad1..eadd68811 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document19.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document19.stree.txt @@ -1,6 +1,30 @@ -Markup block - Gen - 43 - (0:0,0) - Tag block - Gen - 43 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - bound-int - Minimized - bound-string - Minimized - bound-string - Minimized +RazorDocument - [0..43)::43 - [

        ] + MarkupBlock - [0..43)::43 + MarkupTagHelperElement - [0..43)::43 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..39)::39 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [2..12)::10 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..12)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; + MarkupMinimizedTagHelperAttribute - [12..25)::13 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [13..25)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; + MarkupMinimizedTagHelperAttribute - [25..38)::13 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [26..38)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; + MarkupTextLiteral - [38..39)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [39..43)::4 + MarkupTextLiteral - [39..43)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document2.stree.txt index 43cbf9453..b8273f755 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document2.stree.txt @@ -1,4 +1,20 @@ -Markup block - Gen - 20 - (0:0,0) - Tag block - Gen - 20 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - bound-string - Minimized +RazorDocument - [0..20)::20 - [

        ] + MarkupBlock - [0..20)::20 + MarkupTagHelperElement - [0..20)::20 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..16)::16 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [2..15)::13 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..15)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; + MarkupTextLiteral - [15..16)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [16..20)::4 + MarkupTextLiteral - [16..20)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document20.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document20.stree.txt index 013582e57..6260f25bc 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document20.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document20.stree.txt @@ -1,7 +1,30 @@ -Markup block - Gen - 38 - (0:0,0) - Tag block - Gen - 38 - (0:0,0) - input - InputTagHelper1 - InputTagHelper3 - SelfClosing - - unbound-required - Minimized - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..38)::38 - [] + MarkupBlock - [0..38)::38 + MarkupTagHelperElement - [0..38)::38 - input[SelfClosing] - InputTagHelper1 - InputTagHelper3 + MarkupTagHelperStartTag - [0..38)::38 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..23)::17 - unbound-required - Minimized - Unbound - [ unbound-required] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..23)::16 - [unbound-required] - Gen - SpanEditHandler;Accepts:Any + Text;[unbound-required]; + MarkupTagHelperAttribute - [23..35)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [23..24)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [24..29)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [30..31)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [31..34)::3 + MarkupLiteralAttributeValue - [31..34)::3 - [btn] + MarkupTextLiteral - [31..34)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [34..35)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [35..38)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document21.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document21.stree.txt index e99feb726..bc6bcfe18 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document21.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document21.stree.txt @@ -1,7 +1,34 @@ -Markup block - Gen - 32 - (0:0,0) - Tag block - Gen - 32 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - bound-string - Minimized - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..32)::32 - [

        ] + MarkupBlock - [0..32)::32 + MarkupTagHelperElement - [0..32)::32 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..28)::28 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [2..15)::13 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..15)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; + MarkupTagHelperAttribute - [15..27)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [15..16)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [16..21)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [22..23)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [23..26)::3 + MarkupLiteralAttributeValue - [23..26)::3 - [btn] + MarkupTextLiteral - [23..26)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [26..27)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [27..28)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [28..32)::4 + MarkupTextLiteral - [28..32)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document22.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document22.stree.txt index e6e91e96d..412a844fc 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document22.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document22.stree.txt @@ -1,7 +1,30 @@ -Markup block - Gen - 38 - (0:0,0) - Tag block - Gen - 38 - (0:0,0) - input - InputTagHelper1 - InputTagHelper3 - SelfClosing - - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.Text;[btn]; - unbound-required - Minimized +RazorDocument - [0..38)::38 - [] + MarkupBlock - [0..38)::38 + MarkupTagHelperElement - [0..38)::38 - input[SelfClosing] - InputTagHelper1 - InputTagHelper3 + MarkupTagHelperStartTag - [0..38)::38 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..18)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..12)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [14..17)::3 + MarkupLiteralAttributeValue - [14..17)::3 - [btn] + MarkupTextLiteral - [14..17)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [17..18)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [18..35)::17 - unbound-required - Minimized - Unbound - [ unbound-required] + MarkupTextLiteral - [18..19)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [19..35)::16 - [unbound-required] - Gen - SpanEditHandler;Accepts:Any + Text;[unbound-required]; + MarkupTextLiteral - [35..38)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document23.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document23.stree.txt index 900e86680..5e6900b35 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document23.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document23.stree.txt @@ -1,7 +1,34 @@ -Markup block - Gen - 32 - (0:0,0) - Tag block - Gen - 32 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; - bound-string - Minimized +RazorDocument - [0..32)::32 - [

        ] + MarkupBlock - [0..32)::32 + MarkupTagHelperElement - [0..32)::32 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..28)::28 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [14..27)::13 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [15..27)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; + MarkupTextLiteral - [27..28)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [28..32)::4 + MarkupTextLiteral - [28..32)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document24.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document24.stree.txt index 6f45d0db8..56f18db51 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document24.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document24.stree.txt @@ -1,7 +1,30 @@ -Markup block - Gen - 43 - (0:0,0) - Tag block - Gen - 43 - (0:0,0) - input - InputTagHelper1 - InputTagHelper3 - SelfClosing - - bound-required-string - Minimized - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (36:0,36) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..43)::43 - [] + MarkupBlock - [0..43)::43 + MarkupTagHelperElement - [0..43)::43 - input[SelfClosing] - InputTagHelper1 - InputTagHelper3 + MarkupTagHelperStartTag - [0..43)::43 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..28)::22 - bound-required-string - Minimized - Bound - [ bound-required-string] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..28)::21 - [bound-required-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-string]; + MarkupTagHelperAttribute - [28..40)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [28..29)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [29..34)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [35..36)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [36..39)::3 + MarkupLiteralAttributeValue - [36..39)::3 - [btn] + MarkupTextLiteral - [36..39)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [39..40)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [40..43)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document25.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document25.stree.txt index 0191e1713..8fd68a1de 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document25.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document25.stree.txt @@ -1,7 +1,30 @@ -Markup block - Gen - 43 - (0:0,0) - Tag block - Gen - 43 - (0:0,0) - input - InputTagHelper1 - InputTagHelper3 - SelfClosing - - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.Text;[btn]; - bound-required-string - Minimized +RazorDocument - [0..43)::43 - [] + MarkupBlock - [0..43)::43 + MarkupTagHelperElement - [0..43)::43 - input[SelfClosing] - InputTagHelper1 - InputTagHelper3 + MarkupTagHelperStartTag - [0..43)::43 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..18)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..12)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [14..17)::3 + MarkupLiteralAttributeValue - [14..17)::3 - [btn] + MarkupTextLiteral - [14..17)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [17..18)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [18..40)::22 - bound-required-string - Minimized - Bound - [ bound-required-string] + MarkupTextLiteral - [18..19)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [19..40)::21 - [bound-required-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-string]; + MarkupTextLiteral - [40..43)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document26.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document26.stree.txt index de9970397..a34464be0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document26.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document26.stree.txt @@ -1,7 +1,30 @@ -Markup block - Gen - 40 - (0:0,0) - Tag block - Gen - 40 - (0:0,0) - input - InputTagHelper2 - InputTagHelper3 - SelfClosing - - bound-required-int - Minimized - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..40)::40 - [] + MarkupBlock - [0..40)::40 + MarkupTagHelperElement - [0..40)::40 - input[SelfClosing] - InputTagHelper2 - InputTagHelper3 + MarkupTagHelperStartTag - [0..40)::40 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..25)::19 - bound-required-int - Minimized - Bound - [ bound-required-int] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..25)::18 - [bound-required-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-int]; + MarkupTagHelperAttribute - [25..37)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [26..31)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [32..33)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [33..36)::3 + MarkupLiteralAttributeValue - [33..36)::3 - [btn] + MarkupTextLiteral - [33..36)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [36..37)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [37..40)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document27.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document27.stree.txt index 605f4e325..512b71f23 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document27.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document27.stree.txt @@ -1,7 +1,34 @@ -Markup block - Gen - 29 - (0:0,0) - Tag block - Gen - 29 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - bound-int - Minimized - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..29)::29 - [

        ] + MarkupBlock - [0..29)::29 + MarkupTagHelperElement - [0..29)::29 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..25)::25 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [2..12)::10 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..12)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; + MarkupTagHelperAttribute - [12..24)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [13..18)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [19..20)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [20..23)::3 + MarkupLiteralAttributeValue - [20..23)::3 - [btn] + MarkupTextLiteral - [20..23)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [23..24)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [24..25)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [25..29)::4 + MarkupTextLiteral - [25..29)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document28.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document28.stree.txt index 762c47e1d..6219a249f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document28.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document28.stree.txt @@ -1,7 +1,30 @@ -Markup block - Gen - 40 - (0:0,0) - Tag block - Gen - 40 - (0:0,0) - input - InputTagHelper2 - InputTagHelper3 - SelfClosing - - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.Text;[btn]; - bound-required-int - Minimized +RazorDocument - [0..40)::40 - [] + MarkupBlock - [0..40)::40 + MarkupTagHelperElement - [0..40)::40 - input[SelfClosing] - InputTagHelper2 - InputTagHelper3 + MarkupTagHelperStartTag - [0..40)::40 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..18)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..12)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [14..17)::3 + MarkupLiteralAttributeValue - [14..17)::3 - [btn] + MarkupTextLiteral - [14..17)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [17..18)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [18..37)::19 - bound-required-int - Minimized - Bound - [ bound-required-int] + MarkupTextLiteral - [18..19)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [19..37)::18 - [bound-required-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-int]; + MarkupTextLiteral - [37..40)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document29.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document29.stree.txt index fbb8c1dc5..00c2c37ba 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document29.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document29.stree.txt @@ -1,7 +1,34 @@ -Markup block - Gen - 29 - (0:0,0) - Tag block - Gen - 29 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - class - SingleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; - bound-int - Minimized +RazorDocument - [0..29)::29 - [

        ] + MarkupBlock - [0..29)::29 + MarkupTagHelperElement - [0..29)::29 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..25)::25 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - SingleQuotes - Unbound - [ class='btn'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [14..24)::10 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [15..24)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; + MarkupTextLiteral - [24..25)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [25..29)::4 + MarkupTextLiteral - [25..29)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document3.stree.txt index 8603a024a..6b9b8a897 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document3.stree.txt @@ -1,4 +1,16 @@ -Markup block - Gen - 31 - (0:0,0) - Tag block - Gen - 31 - (0:0,0) - input - InputTagHelper1 - InputTagHelper3 - SelfClosing - - bound-required-string - Minimized +RazorDocument - [0..31)::31 - [] + MarkupBlock - [0..31)::31 + MarkupTagHelperElement - [0..31)::31 - input[SelfClosing] - InputTagHelper1 - InputTagHelper3 + MarkupTagHelperStartTag - [0..31)::31 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..28)::22 - bound-required-string - Minimized - Bound - [ bound-required-string] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..28)::21 - [bound-required-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-string]; + MarkupTextLiteral - [28..31)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document30.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document30.stree.txt index 0457882a1..a94739906 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document30.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document30.stree.txt @@ -1,20 +1,49 @@ -Markup block - Gen - 54 - (0:0,0) - Tag block - Gen - 54 - (0:0,0) - input - InputTagHelper2 - InputTagHelper3 - SelfClosing - - class - SingleQuotes - Markup block - Gen - 17 - (14:0,14) - Markup block - Gen - 13 - (14:0,14) - Expression block - Gen - 13 - (14:0,14) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (14:0,14) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (15:0,15) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ +] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[+]; - Markup span - Gen - [ 1] - SpanEditHandler;Accepts:Any - (29:0,29) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[1]; - bound-required-int - Minimized +RazorDocument - [0..54)::54 - [] + MarkupBlock - [0..54)::54 + MarkupTagHelperElement - [0..54)::54 - input[SelfClosing] - InputTagHelper2 - InputTagHelper3 + MarkupTagHelperStartTag - [0..54)::54 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupTagHelperAttribute - [6..32)::26 - class - SingleQuotes - Unbound - [ class='@DateTime.Now + 1'] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..12)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [14..31)::17 + MarkupDynamicAttributeValue - [14..27)::13 - [@DateTime.Now] + GenericBlock - [14..27)::13 + CSharpCodeBlock - [14..27)::13 + CSharpImplicitExpression - [14..27)::13 + CSharpTransition - [14..15)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [15..27)::12 + CSharpCodeBlock - [15..27)::12 + CSharpExpressionLiteral - [15..27)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupLiteralAttributeValue - [27..29)::2 - [ +] + MarkupTextLiteral - [27..28)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [28..29)::1 - [+] - Gen - SpanEditHandler;Accepts:Any + Text;[+]; + MarkupLiteralAttributeValue - [29..31)::2 - [ 1] + MarkupTextLiteral - [29..30)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [30..31)::1 - [1] - Gen - SpanEditHandler;Accepts:Any + Text;[1]; + MarkupTextLiteral - [31..32)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [32..51)::19 - bound-required-int - Minimized - Bound - [ bound-required-int] + MarkupTextLiteral - [32..33)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [33..51)::18 - [bound-required-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-int]; + MarkupTextLiteral - [51..54)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document31.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document31.stree.txt index e3369ba47..c36cc9917 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document31.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document31.stree.txt @@ -1,20 +1,53 @@ -Markup block - Gen - 43 - (0:0,0) - Tag block - Gen - 43 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - class - SingleQuotes - Markup block - Gen - 17 - (10:0,10) - Markup block - Gen - 13 - (10:0,10) - Expression block - Gen - 13 - (10:0,10) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (11:0,11) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ +] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[+]; - Markup span - Gen - [ 1] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[1]; - bound-int - Minimized +RazorDocument - [0..43)::43 - [

        ] + MarkupBlock - [0..43)::43 + MarkupTagHelperElement - [0..43)::43 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..39)::39 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..28)::26 - class - SingleQuotes - Unbound - [ class='@DateTime.Now + 1'] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [10..27)::17 + MarkupDynamicAttributeValue - [10..23)::13 - [@DateTime.Now] + GenericBlock - [10..23)::13 + CSharpCodeBlock - [10..23)::13 + CSharpImplicitExpression - [10..23)::13 + CSharpTransition - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [11..23)::12 + CSharpCodeBlock - [11..23)::12 + CSharpExpressionLiteral - [11..23)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupLiteralAttributeValue - [23..25)::2 - [ +] + MarkupTextLiteral - [23..24)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [24..25)::1 - [+] - Gen - SpanEditHandler;Accepts:Any + Text;[+]; + MarkupLiteralAttributeValue - [25..27)::2 - [ 1] + MarkupTextLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [26..27)::1 - [1] - Gen - SpanEditHandler;Accepts:Any + Text;[1]; + MarkupTextLiteral - [27..28)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [28..38)::10 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [28..29)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [29..38)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; + MarkupTextLiteral - [38..39)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [39..43)::4 + MarkupTextLiteral - [39..43)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document32.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document32.stree.txt index d7a154272..671c6cea1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document32.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document32.stree.txt @@ -1,38 +1,92 @@ -Markup block - Gen - 126 - (0:0,0) - Tag block - Gen - 126 - (0:0,0) - input - InputTagHelper1 - InputTagHelper2 - InputTagHelper3 - SelfClosing - - bound-required-int - Minimized - class - SingleQuotes - Markup block - Gen - 17 - (36:0,36) - Markup block - Gen - 13 - (36:0,36) - Expression block - Gen - 13 - (36:0,36) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (36:0,36) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (37:0,37) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ +] - SpanEditHandler;Accepts:Any - (49:0,49) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[+]; - Markup span - Gen - [ 1] - SpanEditHandler;Accepts:Any - (51:0,51) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[1]; - bound-required-string - Minimized - class - SingleQuotes - Markup block - Gen - 17 - (86:0,86) - Markup block - Gen - 13 - (86:0,86) - Expression block - Gen - 13 - (86:0,86) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (86:0,86) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (87:0,87) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ +] - SpanEditHandler;Accepts:Any - (99:0,99) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[+]; - Markup span - Gen - [ 1] - SpanEditHandler;Accepts:Any - (101:0,101) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[1]; - unbound-required - Minimized +RazorDocument - [0..126)::126 - [] + MarkupBlock - [0..126)::126 + MarkupTagHelperElement - [0..126)::126 - input[SelfClosing] - InputTagHelper1 - InputTagHelper2 - InputTagHelper3 + MarkupTagHelperStartTag - [0..126)::126 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..28)::22 - bound-required-int - Minimized - Bound - [ bound-required-int] + MarkupTextLiteral - [6..10)::4 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [10..28)::18 - [bound-required-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-int]; + MarkupTagHelperAttribute - [28..54)::26 - class - SingleQuotes - Unbound - [ class='@DateTime.Now + 1'] + MarkupTextLiteral - [28..29)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [29..34)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [35..36)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [36..53)::17 + MarkupDynamicAttributeValue - [36..49)::13 - [@DateTime.Now] + GenericBlock - [36..49)::13 + CSharpCodeBlock - [36..49)::13 + CSharpImplicitExpression - [36..49)::13 + CSharpTransition - [36..37)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [37..49)::12 + CSharpCodeBlock - [37..49)::12 + CSharpExpressionLiteral - [37..49)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupLiteralAttributeValue - [49..51)::2 - [ +] + MarkupTextLiteral - [49..50)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [50..51)::1 - [+] - Gen - SpanEditHandler;Accepts:Any + Text;[+]; + MarkupLiteralAttributeValue - [51..53)::2 - [ 1] + MarkupTextLiteral - [51..52)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [52..53)::1 - [1] - Gen - SpanEditHandler;Accepts:Any + Text;[1]; + MarkupTextLiteral - [53..54)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [54..78)::24 - bound-required-string - Minimized - Bound - [ bound-required-string] + MarkupTextLiteral - [54..57)::3 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [57..78)::21 - [bound-required-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-string]; + MarkupTagHelperAttribute - [78..104)::26 - class - SingleQuotes - Unbound - [ class='@DateTime.Now + 1'] + MarkupTextLiteral - [78..79)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [79..84)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [85..86)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [86..103)::17 + MarkupDynamicAttributeValue - [86..99)::13 - [@DateTime.Now] + GenericBlock - [86..99)::13 + CSharpCodeBlock - [86..99)::13 + CSharpImplicitExpression - [86..99)::13 + CSharpTransition - [86..87)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [87..99)::12 + CSharpCodeBlock - [87..99)::12 + CSharpExpressionLiteral - [87..99)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupLiteralAttributeValue - [99..101)::2 - [ +] + MarkupTextLiteral - [99..100)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [100..101)::1 - [+] - Gen - SpanEditHandler;Accepts:Any + Text;[+]; + MarkupLiteralAttributeValue - [101..103)::2 - [ 1] + MarkupTextLiteral - [101..102)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [102..103)::1 - [1] - Gen - SpanEditHandler;Accepts:Any + Text;[1]; + MarkupTextLiteral - [103..104)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [104..122)::18 - unbound-required - Minimized - Unbound - [ unbound-required] + MarkupTextLiteral - [104..106)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [106..122)::16 - [unbound-required] - Gen - SpanEditHandler;Accepts:Any + Text;[unbound-required]; + MarkupTextLiteral - [122..126)::4 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document33.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document33.stree.txt index c27595040..1e06d3cd0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document33.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document33.stree.txt @@ -1,38 +1,96 @@ -Markup block - Gen - 101 - (0:0,0) - Tag block - Gen - 101 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - bound-int - Minimized - class - SingleQuotes - Markup block - Gen - 17 - (23:0,23) - Markup block - Gen - 13 - (23:0,23) - Expression block - Gen - 13 - (23:0,23) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (23:0,23) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (24:0,24) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ +] - SpanEditHandler;Accepts:Any - (36:0,36) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[+]; - Markup span - Gen - [ 1] - SpanEditHandler;Accepts:Any - (38:0,38) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[1]; - bound-string - Minimized - class - SingleQuotes - Markup block - Gen - 17 - (64:0,64) - Markup block - Gen - 13 - (64:0,64) - Expression block - Gen - 13 - (64:0,64) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (64:0,64) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (65:0,65) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ +] - SpanEditHandler;Accepts:Any - (77:0,77) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[+]; - Markup span - Gen - [ 1] - SpanEditHandler;Accepts:Any - (79:0,79) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[1]; - bound-string - Minimized +RazorDocument - [0..101)::101 - [

        ] + MarkupBlock - [0..101)::101 + MarkupTagHelperElement - [0..101)::101 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..97)::97 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [2..15)::13 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [2..6)::4 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..15)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; + MarkupTagHelperAttribute - [15..41)::26 - class - SingleQuotes - Unbound - [ class='@DateTime.Now + 1'] + MarkupTextLiteral - [15..16)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [16..21)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [22..23)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [23..40)::17 + MarkupDynamicAttributeValue - [23..36)::13 - [@DateTime.Now] + GenericBlock - [23..36)::13 + CSharpCodeBlock - [23..36)::13 + CSharpImplicitExpression - [23..36)::13 + CSharpTransition - [23..24)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [24..36)::12 + CSharpCodeBlock - [24..36)::12 + CSharpExpressionLiteral - [24..36)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupLiteralAttributeValue - [36..38)::2 - [ +] + MarkupTextLiteral - [36..37)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [37..38)::1 - [+] - Gen - SpanEditHandler;Accepts:Any + Text;[+]; + MarkupLiteralAttributeValue - [38..40)::2 - [ 1] + MarkupTextLiteral - [38..39)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [39..40)::1 - [1] - Gen - SpanEditHandler;Accepts:Any + Text;[1]; + MarkupTextLiteral - [40..41)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [41..56)::15 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [41..44)::3 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [44..56)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; + MarkupTagHelperAttribute - [56..82)::26 - class - SingleQuotes - Unbound - [ class='@DateTime.Now + 1'] + MarkupTextLiteral - [56..57)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [57..62)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [63..64)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTagHelperAttributeValue - [64..81)::17 + MarkupDynamicAttributeValue - [64..77)::13 - [@DateTime.Now] + GenericBlock - [64..77)::13 + CSharpCodeBlock - [64..77)::13 + CSharpImplicitExpression - [64..77)::13 + CSharpTransition - [64..65)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [65..77)::12 + CSharpCodeBlock - [65..77)::12 + CSharpExpressionLiteral - [65..77)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupLiteralAttributeValue - [77..79)::2 - [ +] + MarkupTextLiteral - [77..78)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [78..79)::1 - [+] - Gen - SpanEditHandler;Accepts:Any + Text;[+]; + MarkupLiteralAttributeValue - [79..81)::2 - [ 1] + MarkupTextLiteral - [79..80)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [80..81)::1 - [1] - Gen - SpanEditHandler;Accepts:Any + Text;[1]; + MarkupTextLiteral - [81..82)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupMinimizedTagHelperAttribute - [82..96)::14 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [82..84)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [84..96)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; + MarkupTextLiteral - [96..97)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [97..101)::4 + MarkupTextLiteral - [97..101)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document4.stree.txt index fc50535f1..e0d945f13 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document4.stree.txt @@ -1,4 +1,16 @@ -Markup block - Gen - 28 - (0:0,0) - Tag block - Gen - 28 - (0:0,0) - input - InputTagHelper2 - InputTagHelper3 - SelfClosing - - bound-required-int - Minimized +RazorDocument - [0..28)::28 - [] + MarkupBlock - [0..28)::28 + MarkupTagHelperElement - [0..28)::28 - input[SelfClosing] - InputTagHelper2 - InputTagHelper3 + MarkupTagHelperStartTag - [0..28)::28 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..25)::19 - bound-required-int - Minimized - Bound - [ bound-required-int] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..25)::18 - [bound-required-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-int]; + MarkupTextLiteral - [25..28)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document5.stree.txt index 1808af976..624fe61eb 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document5.stree.txt @@ -1,4 +1,20 @@ -Markup block - Gen - 17 - (0:0,0) - Tag block - Gen - 17 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - bound-int - Minimized +RazorDocument - [0..17)::17 - [

        ] + MarkupBlock - [0..17)::17 + MarkupTagHelperElement - [0..17)::17 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..13)::13 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [2..12)::10 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..12)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; + MarkupTextLiteral - [12..13)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [13..17)::4 + MarkupTextLiteral - [13..17)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document6.stree.txt index 74632783f..ae93684dd 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document6.stree.txt @@ -1,4 +1,15 @@ -Markup block - Gen - 23 - (0:0,0) - Tag block - Gen - 23 - (0:0,0) - input - InputTagHelper3 - SelfClosing - - int-dictionary - Minimized +RazorDocument - [0..23)::23 - [] + MarkupBlock - [0..23)::23 + MarkupTagHelperElement - [0..23)::23 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [0..23)::23 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..21)::15 - int-dictionary - Minimized - Bound - [ int-dictionary] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..21)::14 - [int-dictionary] - Gen - SpanEditHandler;Accepts:Any + Text;[int-dictionary]; + MarkupTextLiteral - [21..23)::2 - [/>] - Gen - SpanEditHandler;Accepts:Any + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document7.stree.txt index 938c61a11..54840502c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document7.stree.txt @@ -1,4 +1,16 @@ -Markup block - Gen - 27 - (0:0,0) - Tag block - Gen - 27 - (0:0,0) - input - InputTagHelper3 - SelfClosing - - string-dictionary - Minimized +RazorDocument - [0..27)::27 - [] + MarkupBlock - [0..27)::27 + MarkupTagHelperElement - [0..27)::27 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [0..27)::27 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..24)::18 - string-dictionary - Minimized - Bound - [ string-dictionary] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..24)::17 - [string-dictionary] - Gen - SpanEditHandler;Accepts:Any + Text;[string-dictionary]; + MarkupTextLiteral - [24..27)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document8.stree.txt index 766a4da8b..012bb8c2e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document8.stree.txt @@ -1,4 +1,16 @@ -Markup block - Gen - 21 - (0:0,0) - Tag block - Gen - 21 - (0:0,0) - input - InputTagHelper3 - SelfClosing - - int-prefix- - Minimized +RazorDocument - [0..21)::21 - [] + MarkupBlock - [0..21)::21 + MarkupTagHelperElement - [0..21)::21 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [0..21)::21 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..18)::12 - int-prefix- - Minimized - Bound - [ int-prefix-] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..18)::11 - [int-prefix-] - Gen - SpanEditHandler;Accepts:Any + Text;[int-prefix-]; + MarkupTextLiteral - [18..21)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document9.stree.txt index 65f176bb5..0e590ed9f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document9.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document9.stree.txt @@ -1,4 +1,15 @@ -Markup block - Gen - 23 - (0:0,0) - Tag block - Gen - 23 - (0:0,0) - input - InputTagHelper3 - SelfClosing - - string-prefix- - Minimized +RazorDocument - [0..23)::23 - [] + MarkupBlock - [0..23)::23 + MarkupTagHelperElement - [0..23)::23 - input[SelfClosing] - InputTagHelper3 + MarkupTagHelperStartTag - [0..23)::23 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..21)::15 - string-prefix- - Minimized - Bound - [ string-prefix-] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..21)::14 - [string-prefix-] - Gen - SpanEditHandler;Accepts:Any + Text;[string-prefix-]; + MarkupTextLiteral - [21..23)::2 - [/>] - Gen - SpanEditHandler;Accepts:Any + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags1.stree.txt index f19a3803b..331c5156d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags1.stree.txt @@ -1,4 +1,12 @@ -Markup block - Gen - 23 - (0:0,0) - Tag block - Gen - 23 - (0:0,0) - input - InputTagHelper1 - InputTagHelper3 - StartTagAndEndTag - - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..23)::17 - unbound-required - Minimized - Unbound - [ unbound-required] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..23)::16 - [unbound-required] - Gen - SpanEditHandler;Accepts:Any + Text;[unbound-required]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags2.stree.txt index 599738b0e..a2daf7a55 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags2.stree.txt @@ -1,4 +1,12 @@ -Markup block - Gen - 28 - (0:0,0) - Tag block - Gen - 28 - (0:0,0) - input - InputTagHelper1 - InputTagHelper3 - StartTagAndEndTag - - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..28)::22 - bound-required-string - Minimized - Bound - [ bound-required-string] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..28)::21 - [bound-required-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-string]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags3.stree.txt index 51350e1bd..4943c9056 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags3.stree.txt @@ -1,4 +1,12 @@ -Markup block - Gen - 25 - (0:0,0) - Tag block - Gen - 25 - (0:0,0) - input - InputTagHelper2 - InputTagHelper3 - StartTagAndEndTag - - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..25)::19 - bound-required-int - Minimized - Bound - [ bound-required-int] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..25)::18 - [bound-required-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-int]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags4.stree.txt index dd174f8f5..bd5f5d9de 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags4.stree.txt @@ -1,6 +1,22 @@ -Markup block - Gen - 64 - (0:0,0) - Tag block - Gen - 64 - (0:0,0) - input - InputTagHelper1 - InputTagHelper2 - InputTagHelper3 - StartTagAndEndTag - - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..25)::19 - bound-required-int - Minimized - Bound - [ bound-required-int] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..25)::18 - [bound-required-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-int]; + MarkupMinimizedTagHelperAttribute - [25..42)::17 - unbound-required - Minimized - Unbound - [ unbound-required] + MarkupTextLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [26..42)::16 - [unbound-required] - Gen - SpanEditHandler;Accepts:Any + Text;[unbound-required]; + MarkupMinimizedTagHelperAttribute - [42..64)::22 - bound-required-string - Minimized - Bound - [ bound-required-string] + MarkupTextLiteral - [42..43)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [43..64)::21 - [bound-required-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-string]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags5.stree.txt index bfbc9958b..c8ba64d90 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags5.stree.txt @@ -1,4 +1,12 @@ -Markup block - Gen - 15 - (0:0,0) - Tag block - Gen - 15 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [2..15)::13 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..15)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags6.stree.txt index cf33d9f99..b96cd258d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags6.stree.txt @@ -1,4 +1,12 @@ -Markup block - Gen - 12 - (0:0,0) - Tag block - Gen - 12 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [2..12)::10 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..12)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags7.stree.txt index b8bf70c91..6b54e555f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags7.stree.txt @@ -1,5 +1,17 @@ -Markup block - Gen - 25 - (0:0,0) - Tag block - Gen - 25 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [2..12)::10 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..12)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; + MarkupMinimizedTagHelperAttribute - [12..25)::13 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [12..13)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [13..25)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags8.stree.txt index 5ea2f5855..e623f0ac1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_PartialTags8.stree.txt @@ -1,10 +1,37 @@ -Markup block - Gen - 89 - (0:0,0) - Tag block - Gen - 89 - (0:0,0) - input - InputTagHelper1 - InputTagHelper2 - InputTagHelper3 - StartTagAndEndTag - - 25 - (64:0,64) - p - PTagHelper - StartTagAndEndTag -

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..25)::19 - bound-required-int - Minimized - Bound - [ bound-required-int] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..25)::18 - [bound-required-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-int]; + MarkupMinimizedTagHelperAttribute - [25..42)::17 - unbound-required - Minimized - Unbound - [ unbound-required] + MarkupTextLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [26..42)::16 - [unbound-required] - Gen - SpanEditHandler;Accepts:Any + Text;[unbound-required]; + MarkupMinimizedTagHelperAttribute - [42..64)::22 - bound-required-string - Minimized - Bound - [ bound-required-string] + MarkupTextLiteral - [42..43)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [43..64)::21 - [bound-required-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-required-string]; + MarkupTagHelperElement - [64..89)::25 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [64..89)::25 + MarkupTextLiteral - [64..66)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupMinimizedTagHelperAttribute - [66..76)::10 - bound-int - Minimized - Bound - [ bound-int] + MarkupTextLiteral - [66..67)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [67..76)::9 - [bound-int] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-int]; + MarkupMinimizedTagHelperAttribute - [76..89)::13 - bound-string - Minimized - Bound - [ bound-string] + MarkupTextLiteral - [76..77)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [77..89)::12 - [bound-string] - Gen - SpanEditHandler;Accepts:Any + Text;[bound-string]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedBooleanBoundAttributes.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedBooleanBoundAttributes.stree.txt index 8ff170117..1d5ebc5e2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedBooleanBoundAttributes.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedBooleanBoundAttributes.stree.txt @@ -1,5 +1,21 @@ -Markup block - Gen - 37 - (0:0,0) - Tag block - Gen - 37 - (0:0,0) - input - InputTagHelper - SelfClosing - - boundbool - Minimized - boundbooldict-key - Minimized +RazorDocument - [0..37)::37 - [] + MarkupBlock - [0..37)::37 + MarkupTagHelperElement - [0..37)::37 - input[SelfClosing] - InputTagHelper + MarkupTagHelperStartTag - [0..37)::37 + MarkupTextLiteral - [0..6)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + MarkupMinimizedTagHelperAttribute - [6..16)::10 - boundbool - Minimized - Bound - [ boundbool] + MarkupTextLiteral - [6..7)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [7..16)::9 - [boundbool] - Gen - SpanEditHandler;Accepts:Any + Text;[boundbool]; + MarkupMinimizedTagHelperAttribute - [16..34)::18 - boundbooldict-key - Minimized - Bound - [ boundbooldict-key] + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [17..34)::17 - [boundbooldict-key] - Gen - SpanEditHandler;Accepts:Any + Text;[boundbooldict-key]; + MarkupTextLiteral - [34..37)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers1.stree.txt index e56537a94..be3ea5965 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers1.stree.txt @@ -1,8 +1,9 @@ -Markup block - Gen - 7 - (0:0,0) - Tag block - Gen - 7 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:5 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[th:]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..7)::7 - [] + MarkupBlock - [0..7)::7 + MarkupTagBlock - [0..7)::7 - [] + MarkupTextLiteral - [0..7)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers10.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers10.stree.txt index e36b2ff45..962cf6cf6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers10.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers10.stree.txt @@ -1,13 +1,35 @@ -Markup block - Gen - 47 - (0:0,0) - Tag block - Gen - 47 - (0:0,0) - th:myth - mythTagHelper - StartTagAndEndTag - ... - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[btn]; - SyntaxKind.HtmlTextLiteral - [words and spaces] - [21..37) - FullWidth: 16 - Slots: 1 - SyntaxKind.List - [words and spaces] - [21..37) - FullWidth: 16 - Slots: 5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; +RazorDocument - [0..47)::47 - [words and spaces] + MarkupBlock - [0..47)::47 + MarkupTagHelperElement - [0..47)::47 - th:myth[StartTagAndEndTag] - mythTagHelper + MarkupTagHelperStartTag - [0..21)::21 + MarkupTextLiteral - [0..8)::8 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:myth]; + MarkupTagHelperAttribute - [8..20)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [16..19)::3 + MarkupLiteralAttributeValue - [16..19)::3 - [btn] + MarkupTextLiteral - [16..19)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [19..20)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [20..21)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [21..37)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagHelperEndTag - [37..47)::10 + MarkupTextLiteral - [37..47)::10 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[th:myth]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers11.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers11.stree.txt index edc4636aa..c98031c7e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers11.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers11.stree.txt @@ -1,13 +1,34 @@ -Markup block - Gen - 34 - (0:0,0) - Tag block - Gen - 34 - (0:0,0) - th:myth2 - mythTagHelper2 - SelfClosing - - bound - DoubleQuotes - Markup block - Gen - 13 - (17:0,17) - Markup block - Gen - 13 - (17:0,17) - Expression block - Gen - 13 - (17:0,17) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (17:0,17) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (18:0,18) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; +RazorDocument - [0..34)::34 - [] + MarkupBlock - [0..34)::34 + MarkupTagHelperElement - [0..34)::34 - th:myth2[SelfClosing] - mythTagHelper2 + MarkupTagHelperStartTag - [0..34)::34 + MarkupTextLiteral - [0..9)::9 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:myth2]; + MarkupTagHelperAttribute - [9..31)::22 - bound - DoubleQuotes - Bound - [ bound="@DateTime.Now"] + MarkupTextLiteral - [9..10)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [10..15)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any + Text;[bound]; + Equals;[=]; + MarkupTextLiteral - [16..17)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [17..30)::13 + MarkupDynamicAttributeValue - [17..30)::13 - [@DateTime.Now] + GenericBlock - [17..30)::13 + CSharpCodeBlock - [17..30)::13 + CSharpImplicitExpression - [17..30)::13 + CSharpTransition - [17..18)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [18..30)::12 + CSharpCodeBlock - [18..30)::12 + CSharpExpressionLiteral - [18..30)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [30..31)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [31..34)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers2.stree.txt index 8f244a612..5e102b0e0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers2.stree.txt @@ -1,19 +1,19 @@ -Markup block - Gen - 27 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[th:]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [words and spaces] - [5..21) - FullWidth: 16 - Slots: 1 - SyntaxKind.List - [words and spaces] - [5..21) - FullWidth: 16 - Slots: 5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; - Tag block - Gen - 6 - (21:0,21) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[th:]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..27)::27 - [words and spaces] + MarkupBlock - [0..27)::27 + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:]; + CloseAngle;[>]; + MarkupTextLiteral - [5..21)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagBlock - [21..27)::6 - [] + MarkupTextLiteral - [21..27)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[th:]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers3.stree.txt index 6fa88c654..b6594f700 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers3.stree.txt @@ -1,3 +1,10 @@ -Markup block - Gen - 11 - (0:0,0) - Tag block - Gen - 11 - (0:0,0) - th:myth - mythTagHelper - SelfClosing - +RazorDocument - [0..11)::11 - [] + MarkupBlock - [0..11)::11 + MarkupTagHelperElement - [0..11)::11 - th:myth[SelfClosing] - mythTagHelper + MarkupTagHelperStartTag - [0..11)::11 + MarkupTextLiteral - [0..11)::11 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:myth]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers4.stree.txt index 25308b73b..b53776a02 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers4.stree.txt @@ -1,3 +1,14 @@ -Markup block - Gen - 19 - (0:0,0) - Tag block - Gen - 19 - (0:0,0) - th:myth - mythTagHelper - StartTagAndEndTag - ... +RazorDocument - [0..19)::19 - [] + MarkupBlock - [0..19)::19 + MarkupTagHelperElement - [0..19)::19 - th:myth[StartTagAndEndTag] - mythTagHelper + MarkupTagHelperStartTag - [0..9)::9 + MarkupTextLiteral - [0..9)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:myth]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [9..19)::10 + MarkupTextLiteral - [9..19)::10 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[th:myth]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers5.stree.txt index aa4726272..734aa8511 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers5.stree.txt @@ -1,14 +1,25 @@ -Markup block - Gen - 40 - (0:0,0) - Tag block - Gen - 40 - (0:0,0) - th:myth - mythTagHelper - StartTagAndEndTag - ... - Tag block - Gen - 10 - (9:0,9) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[th:my2th]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 11 - (19:0,19) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[th:my2th]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..40)::40 - [] + MarkupBlock - [0..40)::40 + MarkupTagHelperElement - [0..40)::40 - th:myth[StartTagAndEndTag] - mythTagHelper + MarkupTagHelperStartTag - [0..9)::9 + MarkupTextLiteral - [0..9)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:myth]; + CloseAngle;[>]; + MarkupTagBlock - [9..19)::10 - [] + MarkupTextLiteral - [9..19)::10 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:my2th]; + CloseAngle;[>]; + MarkupTagBlock - [19..30)::11 - [] + MarkupTextLiteral - [19..30)::11 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[th:my2th]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [30..40)::10 + MarkupTextLiteral - [30..40)::10 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[th:myth]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers6.stree.txt index 541d6b999..9a36af554 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers6.stree.txt @@ -1,11 +1,12 @@ -Markup block - Gen - 12 - (0:0,0) - Tag block - Gen - 12 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [th:myth />] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:4 - SyntaxKind.Text;[th:myth]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..12)::12 - [] + MarkupBlock - [0..12)::12 + MarkupTagBlock - [0..12)::12 - [] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..12)::10 - [th:myth />] - Gen - SpanEditHandler;Accepts:Any + Text;[th:myth]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers7.stree.txt index e0fd9882b..29d040629 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers7.stree.txt @@ -1,18 +1,19 @@ -Markup block - Gen - 21 - (0:0,0) - Tag block - Gen - 10 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [th:myth>] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:2 - SyntaxKind.Text;[th:myth]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 11 - (10:0,10) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [th:myth>] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:2 - SyntaxKind.Text;[th:myth]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..21)::21 - [] + MarkupBlock - [0..21)::21 + MarkupTagBlock - [0..10)::10 - [] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..10)::8 - [th:myth>] - Gen - SpanEditHandler;Accepts:Any + Text;[th:myth]; + CloseAngle;[>]; + MarkupTagBlock - [10..21)::11 - [] + MarkupTextLiteral - [10..12)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [12..13)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [13..21)::8 - [th:myth>] - Gen - SpanEditHandler;Accepts:Any + Text;[th:myth]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers8.stree.txt index b27544e31..838fb64cc 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers8.stree.txt @@ -1,6 +1,25 @@ -Markup block - Gen - 23 - (0:0,0) - Tag block - Gen - 23 - (0:0,0) - th:myth - mythTagHelper - SelfClosing - - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..23)::23 - [] + MarkupBlock - [0..23)::23 + MarkupTagHelperElement - [0..23)::23 - th:myth[SelfClosing] - mythTagHelper + MarkupTagHelperStartTag - [0..23)::23 + MarkupTextLiteral - [0..8)::8 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:myth]; + MarkupTagHelperAttribute - [8..20)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [16..19)::3 + MarkupLiteralAttributeValue - [16..19)::3 - [btn] + MarkupTextLiteral - [16..19)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [19..20)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [20..23)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers9.stree.txt index c2cc6ba69..11055a52c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers9.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers9.stree.txt @@ -1,6 +1,25 @@ -Markup block - Gen - 24 - (0:0,0) - Tag block - Gen - 24 - (0:0,0) - th:myth2 - mythTagHelper2 - SelfClosing - - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..24)::24 - [] + MarkupBlock - [0..24)::24 + MarkupTagHelperElement - [0..24)::24 - th:myth2[SelfClosing] - mythTagHelper2 + MarkupTagHelperStartTag - [0..24)::24 + MarkupTextLiteral - [0..9)::9 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:myth2]; + MarkupTagHelperAttribute - [9..21)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [9..10)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [10..15)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [16..17)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [17..20)::3 + MarkupLiteralAttributeValue - [17..20)::3 - [btn] + MarkupTextLiteral - [17..20)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [21..24)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorCommentsAsChildren.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorCommentsAsChildren.stree.txt index 06caab940..ab4530e89 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorCommentsAsChildren.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorCommentsAsChildren.stree.txt @@ -1,27 +1,33 @@ -Markup block - Gen - 26 - (0:0,0) - Tag block - Gen - 26 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 3 - (3:0,3) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[b]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [asdf] - [6..10) - FullWidth: 4 - Slots: 1 - SyntaxKind.Text;[asdf]; - Tag block - Gen - 4 - (10:0,10) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[b]; - SyntaxKind.CloseAngle;[>]; - Comment block - Gen - 8 - (14:0,14) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (14:0,14) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Comment span - Gen - [asdf] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.RazorCommentLiteral;[asdf]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; +RazorDocument - [0..26)::26 - [

        asdf@*asdf*@

        ] + MarkupBlock - [0..26)::26 + MarkupTagHelperElement - [0..26)::26 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..6)::3 - [] + MarkupTextLiteral - [3..6)::3 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[b]; + CloseAngle;[>]; + MarkupTextLiteral - [6..10)::4 - [asdf] - Gen - SpanEditHandler;Accepts:Any + Text;[asdf]; + MarkupTagBlock - [10..14)::4 - [] + MarkupTextLiteral - [10..14)::4 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[b]; + CloseAngle;[>]; + RazorComment - [14..22)::8 + RazorCommentTransition;[@]; + RazorCommentStar;[*]; + RazorCommentLiteral;[asdf]; + RazorCommentStar;[*]; + RazorCommentTransition;[@]; + MarkupTagHelperEndTag - [22..26)::4 + MarkupTextLiteral - [22..26)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorMarkupInHtmlComment.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorMarkupInHtmlComment.stree.txt index b1006157b..113f4d153 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorMarkupInHtmlComment.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorMarkupInHtmlComment.stree.txt @@ -1,32 +1,46 @@ -Markup block - Gen - 37 - (0:0,0) - Tag block - Gen - 37 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 3 - (3:0,3) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[b]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [asdf] - [6..10) - FullWidth: 4 - Slots: 1 - SyntaxKind.Text;[asdf]; - Tag block - Gen - 4 - (10:0,10) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[b]; - SyntaxKind.CloseAngle;[>]; - HtmlComment block - Gen - 19 - (14:0,14) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (30:0,30) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..37)::37 - [

        asdf

        ] + MarkupBlock - [0..37)::37 + MarkupTagHelperElement - [0..37)::37 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..6)::3 - [] + MarkupTextLiteral - [3..6)::3 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[b]; + CloseAngle;[>]; + MarkupTextLiteral - [6..10)::4 - [asdf] - Gen - SpanEditHandler;Accepts:Any + Text;[asdf]; + MarkupTagBlock - [10..14)::4 - [] + MarkupTextLiteral - [10..14)::4 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[b]; + CloseAngle;[>]; + MarkupCommentBlock - [14..33)::19 + MarkupTextLiteral - [14..18)::4 - [] - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [33..37)::4 + MarkupTextLiteral - [33..37)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsSimpleHtmlCommentsAsChildren.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsSimpleHtmlCommentsAsChildren.stree.txt index 41643cef9..b74bc809e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsSimpleHtmlCommentsAsChildren.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsSimpleHtmlCommentsAsChildren.stree.txt @@ -1,28 +1,39 @@ -Markup block - Gen - 36 - (0:0,0) - Tag block - Gen - 36 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 3 - (3:0,3) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[b]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [asdf] - [6..10) - FullWidth: 4 - Slots: 1 - SyntaxKind.Text;[asdf]; - Tag block - Gen - 4 - (10:0,10) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[b]; - SyntaxKind.CloseAngle;[>]; - HtmlComment block - Gen - 18 - (14:0,14) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (29:0,29) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..36)::36 - [

        asdf

        ] + MarkupBlock - [0..36)::36 + MarkupTagHelperElement - [0..36)::36 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..6)::3 - [] + MarkupTextLiteral - [3..6)::3 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[b]; + CloseAngle;[>]; + MarkupTextLiteral - [6..10)::4 - [asdf] - Gen - SpanEditHandler;Accepts:Any + Text;[asdf]; + MarkupTagBlock - [10..14)::4 - [] + MarkupTextLiteral - [10..14)::4 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[b]; + CloseAngle;[>]; + MarkupCommentBlock - [14..32)::18 + MarkupTextLiteral - [14..18)::4 - [] - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [32..36)::4 + MarkupTextLiteral - [32..36)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag1.stree.txt index 7e1625642..1820cae1f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag1.stree.txt @@ -1,30 +1,40 @@ -Markup block - Gen - 22 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 22 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 20 - (2:0,2) - Tag block - Gen - 19 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[text]; - Markup block - Gen - 12 - (8:0,8) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..22)::22 - [@{}] + MarkupBlock - [0..22)::22 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..22)::22 + CSharpStatement - [0..22)::22 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..22)::21 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..22)::20 + MarkupBlock - [2..22)::20 + MarkupTagBlock - [2..21)::19 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..8)::4 - [text] - Gen - SpanEditHandler;Accepts:Any + Text;[text]; + MarkupAttributeBlock - [8..20)::12 - [ class="btn"] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [16..19)::3 + MarkupLiteralAttributeValue - [16..19)::3 - [btn] + MarkupTextLiteral - [16..19)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [19..20)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [20..21)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTextLiteral - [21..22)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; + RazorMetaCode - [22..22)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag2.stree.txt index 67597040c..cbdf9ea72 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag2.stree.txt @@ -1,43 +1,51 @@ -Markup block - Gen - 30 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 30 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 27 - (2:0,2) - Tag block - Gen - 19 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[text]; - Markup block - Gen - 12 - (8:0,8) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 8 - (21:0,21) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (23:0,23) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (29:0,29) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (29:0,29) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..30)::30 - [@{}] + MarkupBlock - [0..30)::30 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..30)::30 + CSharpStatement - [0..30)::30 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..30)::29 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..29)::27 + MarkupBlock - [2..29)::27 + MarkupTagBlock - [2..21)::19 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..8)::4 - [text] - Gen - SpanEditHandler;Accepts:Any + Text;[text]; + MarkupAttributeBlock - [8..20)::12 - [ class="btn"] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [16..19)::3 + MarkupLiteralAttributeValue - [16..19)::3 - [btn] + MarkupTextLiteral - [16..19)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [19..20)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [20..21)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagBlock - [21..29)::8 - [] + MarkupTextLiteral - [21..23)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [23..24)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [24..29)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [29..29)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [29..30)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [30..30)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag3.stree.txt index 6468ec902..9ccfbc308 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag3.stree.txt @@ -1,49 +1,57 @@ -Markup block - Gen - 47 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 47 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 44 - (2:0,2) - Tag block - Gen - 19 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[text]; - Markup block - Gen - 12 - (8:0,8) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [words with spaces] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[with]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; - Tag block - Gen - 8 - (38:0,38) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (41:0,41) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (46:0,46) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (46:0,46) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (47:0,47) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..47)::47 - [@{words with spaces}] + MarkupBlock - [0..47)::47 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..47)::47 + CSharpStatement - [0..47)::47 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..47)::46 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..46)::44 + MarkupBlock - [2..46)::44 + MarkupTagBlock - [2..21)::19 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..8)::4 - [text] - Gen - SpanEditHandler;Accepts:Any + Text;[text]; + MarkupAttributeBlock - [8..20)::12 - [ class="btn"] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [16..19)::3 + MarkupLiteralAttributeValue - [16..19)::3 - [btn] + MarkupTextLiteral - [16..19)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [19..20)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [20..21)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTextLiteral - [21..38)::17 - [words with spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[with]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagBlock - [38..46)::8 - [] + MarkupTextLiteral - [38..40)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [40..41)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [41..46)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [46..46)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [46..47)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [47..47)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag4.stree.txt index 7f34c4efd..fd66721f5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag4.stree.txt @@ -1,53 +1,66 @@ -Markup block - Gen - 47 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 47 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 44 - (2:0,2) - Tag block - Gen - 36 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[text]; - Markup block - Gen - 18 - (8:0,8) - Markup span - Gen - [ class='] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [btn1] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[btn1]; - Markup span - Gen - [ btn2] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[btn2]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 11 - (26:0,26) - Markup span - Gen - [ class2=] - SpanEditHandler;Accepts:Any - (26:0,26) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class2]; - SyntaxKind.Equals;[=]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (37:0,37) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 8 - (38:0,38) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (41:0,41) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (46:0,46) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (46:0,46) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (47:0,47) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..47)::47 - [@{}] + MarkupBlock - [0..47)::47 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..47)::47 + CSharpStatement - [0..47)::47 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..47)::46 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..46)::44 + MarkupBlock - [2..46)::44 + MarkupTagBlock - [2..38)::36 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..8)::4 - [text] - Gen - SpanEditHandler;Accepts:Any + Text;[text]; + MarkupAttributeBlock - [8..26)::18 - [ class='btn1 btn2'] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [16..25)::9 + MarkupLiteralAttributeValue - [16..20)::4 - [btn1] + MarkupTextLiteral - [16..20)::4 - [btn1] - Gen - SpanEditHandler;Accepts:Any + Text;[btn1]; + MarkupLiteralAttributeValue - [20..25)::5 - [ btn2] + MarkupTextLiteral - [20..21)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [21..25)::4 - [btn2] - Gen - SpanEditHandler;Accepts:Any + Text;[btn2]; + MarkupTextLiteral - [25..26)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [26..37)::11 - [ class2=btn] + MarkupTextLiteral - [26..27)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [27..33)::6 - [class2] - Gen - SpanEditHandler;Accepts:Any + Text;[class2]; + Equals;[=]; + GenericBlock - [34..37)::3 + MarkupLiteralAttributeValue - [34..37)::3 - [btn] + MarkupTextLiteral - [34..37)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [37..38)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagBlock - [38..46)::8 - [] + MarkupTextLiteral - [38..40)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [40..41)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [41..46)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [46..46)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [46..47)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [47..47)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag5.stree.txt index 35071254a..ae63cba1b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag5.stree.txt @@ -1,56 +1,70 @@ -Markup block - Gen - 50 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 50 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 47 - (2:0,2) - Tag block - Gen - 39 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[text]; - Markup block - Gen - 32 - (8:0,8) - Markup span - Gen - [ class='] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [btn1] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[btn1]; - Markup block - Gen - 14 - (20:0,20) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (21:0,21) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (22:0,22) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ btn2] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[btn2]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (39:0,39) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 8 - (41:0,41) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (43:0,43) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (44:0,44) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (49:0,49) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (49:0,49) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (50:0,50) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..50)::50 - [@{}] + MarkupBlock - [0..50)::50 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..50)::50 + CSharpStatement - [0..50)::50 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..50)::49 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..49)::47 + MarkupBlock - [2..49)::47 + MarkupTagBlock - [2..41)::39 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..8)::4 - [text] - Gen - SpanEditHandler;Accepts:Any + Text;[text]; + MarkupAttributeBlock - [8..40)::32 - [ class='btn1 @DateTime.Now btn2'] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [16..39)::23 + MarkupLiteralAttributeValue - [16..20)::4 - [btn1] + MarkupTextLiteral - [16..20)::4 - [btn1] - Gen - SpanEditHandler;Accepts:Any + Text;[btn1]; + MarkupDynamicAttributeValue - [20..34)::14 - [ @DateTime.Now] + MarkupTextLiteral - [20..21)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + GenericBlock - [21..34)::13 + CSharpCodeBlock - [21..34)::13 + CSharpImplicitExpression - [21..34)::13 + CSharpTransition - [21..22)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [22..34)::12 + CSharpCodeBlock - [22..34)::12 + CSharpExpressionLiteral - [22..34)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupLiteralAttributeValue - [34..39)::5 - [ btn2] + MarkupTextLiteral - [34..35)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [35..39)::4 - [btn2] - Gen - SpanEditHandler;Accepts:Any + Text;[btn2]; + MarkupTextLiteral - [39..40)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [40..41)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagBlock - [41..49)::8 - [] + MarkupTextLiteral - [41..43)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [43..44)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [44..49)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [49..49)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [49..50)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [50..50)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag1.stree.txt index 2e66d58a5..e0dba1948 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag1.stree.txt @@ -1,19 +1,25 @@ -Markup block - Gen - 10 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 10 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 8 - (2:0,2) - Tag block - Gen - 7 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..10)::10 - [@{}] + MarkupBlock - [0..10)::10 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..10)::10 + CSharpStatement - [0..10)::10 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..10)::9 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..10)::8 + MarkupBlock - [2..10)::8 + MarkupTagBlock - [2..9)::7 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..9)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [9..10)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; + RazorMetaCode - [10..10)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag2.stree.txt index 29bbed756..a77624de5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag2.stree.txt @@ -1,24 +1,28 @@ -Markup block - Gen - 11 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 11 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 8 - (2:0,2) - Tag block - Gen - 8 - (2:0,2) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (5:0,5) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..11)::11 - [@{}] + MarkupBlock - [0..11)::11 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..11)::11 + CSharpStatement - [0..11)::11 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..11)::10 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..10)::8 + MarkupBlock - [2..10)::8 + MarkupTagBlock - [2..10)::8 - [] + MarkupTextLiteral - [2..4)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [4..5)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [5..10)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [10..10)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [11..11)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag3.stree.txt index 071019f03..dd4a2f53e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag3.stree.txt @@ -1,32 +1,36 @@ -Markup block - Gen - 18 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 18 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 15 - (2:0,2) - Tag block - Gen - 7 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 8 - (9:0,9) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (11:0,11) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (17:0,17) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..18)::18 - [@{}] + MarkupBlock - [0..18)::18 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..18)::18 + CSharpStatement - [0..18)::18 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..18)::17 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..17)::15 + MarkupBlock - [2..17)::15 + MarkupTagBlock - [2..9)::7 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..9)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + MarkupTagBlock - [9..17)::8 - [] + MarkupTextLiteral - [9..11)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [11..12)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [12..17)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [17..17)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [17..18)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [18..18)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag4.stree.txt index 6af1febb2..76ed69993 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag4.stree.txt @@ -1,38 +1,42 @@ -Markup block - Gen - 34 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 34 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 31 - (2:0,2) - Tag block - Gen - 7 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [words and spaces] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; - Tag block - Gen - 8 - (25:0,25) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (27:0,27) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (28:0,28) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (33:0,33) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..34)::34 - [@{words and spaces}] + MarkupBlock - [0..34)::34 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..34)::34 + CSharpStatement - [0..34)::34 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..34)::33 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..33)::31 + MarkupBlock - [2..33)::31 + MarkupTagBlock - [2..9)::7 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..9)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [9..25)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagBlock - [25..33)::8 - [] + MarkupTextLiteral - [25..27)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [27..28)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [28..33)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [33..33)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [33..34)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [34..34)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag5.stree.txt index 345239d4a..f25f69c17 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag5.stree.txt @@ -1,29 +1,33 @@ -Markup block - Gen - 17 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 17 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 14 - (2:0,2) - Tag block - Gen - 7 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (9:0,9) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..17)::17 - [@{}] + MarkupBlock - [0..17)::17 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..17)::17 + CSharpStatement - [0..17)::17 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..17)::16 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..16)::14 + MarkupBlock - [2..16)::14 + MarkupTagBlock - [2..9)::7 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..9)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + MarkupTagBlock - [9..16)::7 - [] + MarkupTextLiteral - [9..16)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [16..16)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [16..17)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [17..17)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag6.stree.txt index 90ebfc8d6..d1f5b4305 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag6.stree.txt @@ -1,29 +1,33 @@ -Markup block - Gen - 17 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 17 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 14 - (2:0,2) - Tag block - Gen - 6 - (2:0,2) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (2:0,2) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 8 - (8:0,8) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (11:0,11) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..17)::17 - [@{}] + MarkupBlock - [0..17)::17 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..17)::17 + CSharpStatement - [0..17)::17 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..17)::16 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..16)::14 + MarkupBlock - [2..16)::14 + MarkupTagBlock - [2..8)::6 - [] + MarkupTransition - [2..8)::6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTagBlock - [8..16)::8 - [] + MarkupTextLiteral - [8..10)::2 - [ - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [11..16)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [16..16)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [16..17)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [17..17)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag7.stree.txt index 9feb97f15..0a1ea6c25 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag7.stree.txt @@ -1,34 +1,48 @@ -Markup block - Gen - 31 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 31 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 28 - (2:0,2) - Tag block - Gen - 7 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 13 - (9:0,9) - text - texttaghelper - StartTagAndEndTag - ... - Tag block - Gen - 8 - (22:0,22) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (25:0,25) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (30:0,30) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..31)::31 - [@{}] + MarkupBlock - [0..31)::31 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..31)::31 + CSharpStatement - [0..31)::31 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..31)::30 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..30)::28 + MarkupBlock - [2..30)::28 + MarkupTagBlock - [2..9)::7 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..9)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + MarkupTagHelperElement - [9..22)::13 - text[StartTagAndEndTag] - texttaghelper + MarkupTagHelperStartTag - [9..15)::6 + MarkupTextLiteral - [9..15)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [15..22)::7 + MarkupTextLiteral - [15..22)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; + MarkupTagBlock - [22..30)::8 - [] + MarkupTextLiteral - [22..24)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [24..25)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [25..30)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [30..30)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [30..31)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [31..31)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag8.stree.txt index 4f4e21ac8..44eb53c51 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag8.stree.txt @@ -1,33 +1,39 @@ -Markup block - Gen - 24 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 24 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 22 - (2:0,2) - Tag block - Gen - 6 - (2:0,2) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (2:0,2) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (8:0,8) - Markup span - Gen - [<] - SpanEditHandler;Accepts:None - (8:0,8) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 8 - (15:0,15) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (17:0,17) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (18:0,18) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..24)::24 - [@{}] + MarkupBlock - [0..24)::24 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..24)::24 + CSharpStatement - [0..24)::24 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..24)::23 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..24)::22 + MarkupBlock - [2..24)::22 + MarkupTagBlock - [2..8)::6 - [] + MarkupTransition - [2..8)::6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTagBlock - [8..15)::7 - [] + MarkupTextLiteral - [8..9)::1 - [<] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + RazorMetaCode - [9..10)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [10..15)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + MarkupTagBlock - [15..23)::8 - [] + MarkupTextLiteral - [15..17)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [17..18)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [18..23)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [23..24)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; + RazorMetaCode - [24..24)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag9.stree.txt index 8f47730c5..846d0090a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag9.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithBlockTextTag9.stree.txt @@ -1,39 +1,43 @@ -Markup block - Gen - 25 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 25 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 15 - (2:0,2) - Tag block - Gen - 7 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 8 - (9:0,9) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (11:0,11) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup block - Gen - 7 - (17:0,17) - Tag block - Gen - 7 - (17:0,17) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (17:0,17) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..25)::25 - [@{}] + MarkupBlock - [0..25)::25 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..25)::25 + CSharpStatement - [0..25)::25 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..25)::24 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..24)::22 + MarkupBlock - [2..17)::15 + MarkupTagBlock - [2..9)::7 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..9)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + MarkupTagBlock - [9..17)::8 - [] + MarkupTextLiteral - [9..11)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [11..12)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [12..17)::5 - [text>] - Gen - SpanEditHandler;Accepts:None + Text;[text]; + CloseAngle;[>]; + MarkupBlock - [17..24)::7 + MarkupTagBlock - [17..24)::7 - [] + MarkupTextLiteral - [17..24)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [24..24)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [24..25)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [25..25)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML1.stree.txt index b852bc30e..61c1a03dc 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML1.stree.txt @@ -1,4 +1,5 @@ -Markup block - Gen - 2 - (0:0,0) - Markup span - Gen - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Bang;[!]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML2.stree.txt index b95ea2835..52d9469e7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML2.stree.txt @@ -1,8 +1,9 @@ -Markup block - Gen - 3 - (0:0,0) - Tag block - Gen - 3 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.Text;[p]; +RazorDocument - [0..3)::3 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..3)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML3.stree.txt index 6896e1033..3a79c373e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML3.stree.txt @@ -1,10 +1,11 @@ -Markup block - Gen - 5 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p /] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:3 - SyntaxKind.Text;[p]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; +RazorDocument - [0..5)::5 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..5)::3 - [p /] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + Whitespace;[ ]; + ForwardSlash;[/]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML4.stree.txt index 06ba639ea..9208c63b1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML4.stree.txt @@ -1,13 +1,15 @@ -Markup block - Gen - 10 - (0:0,0) - Tag block - Gen - 10 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - 7 - (3:0,3) - Markup span - Gen - [ class=] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; +RazorDocument - [0..10)::10 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..3)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [3..10)::7 - [ class=] + MarkupTextLiteral - [3..4)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [4..9)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML5.stree.txt index 935851bd7..0d4e13b18 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML5.stree.txt @@ -1,16 +1,21 @@ -Markup block - Gen - 14 - (0:0,0) - Tag block - Gen - 14 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - [btn] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..14)::14 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..3)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [3..14)::11 - [ class="btn] + MarkupTextLiteral - [3..4)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [4..9)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [10..11)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [11..14)::3 + MarkupLiteralAttributeValue - [11..14)::3 - [btn] + MarkupTextLiteral - [11..14)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML6.stree.txt index ba08d7e85..4a49cc947 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML6.stree.txt @@ -1,18 +1,23 @@ -Markup block - Gen - 15 - (0:0,0) - Tag block - Gen - 15 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - 12 - (3:0,3) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.DoubleQuote;["]; +RazorDocument - [0..15)::15 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..3)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [3..15)::12 - [ class="btn"] + MarkupTextLiteral - [3..4)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [4..9)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [10..11)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [11..14)::3 + MarkupLiteralAttributeValue - [11..14)::3 - [btn] + MarkupTextLiteral - [11..14)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [14..15)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML7.stree.txt index 0a6811f4a..6c37a7d5c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTML7.stree.txt @@ -1,21 +1,26 @@ -Markup block - Gen - 17 - (0:0,0) - Tag block - Gen - 17 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - 12 - (3:0,3) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [ /] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; +RazorDocument - [0..17)::17 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..3)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [3..15)::12 - [ class="btn"] + MarkupTextLiteral - [3..4)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [4..9)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [10..11)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [11..14)::3 + MarkupLiteralAttributeValue - [11..14)::3 - [btn] + MarkupTextLiteral - [11..14)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [14..15)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [15..17)::2 - [ /] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock1.stree.txt index db03e1316..b8d82590b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock1.stree.txt @@ -1,16 +1,22 @@ -Markup block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 5 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 3 - (2:0,2) - Tag block - Gen - 3 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..5)::5 - [@{ - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..5)::5 + CSharpStatement - [0..5)::5 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..5)::4 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..5)::3 + MarkupBlock - [2..5)::3 + MarkupTagBlock - [2..5)::3 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..5)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; + RazorMetaCode - [5..5)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock2.stree.txt index 2778fc41f..5e474138d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock2.stree.txt @@ -1,16 +1,22 @@ -Markup block - Gen - 6 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 6 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 4 - (2:0,2) - Tag block - Gen - 4 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p}] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[p}]; +RazorDocument - [0..6)::6 - [@{ - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..6)::6 + CSharpStatement - [0..6)::6 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..6)::5 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..6)::4 + MarkupBlock - [2..6)::4 + MarkupTagBlock - [2..6)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..6)::2 - [p}] - Gen - SpanEditHandler;Accepts:Any + Text;[p}]; + RazorMetaCode - [6..6)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock3.stree.txt index 7a92ce2da..34a66c67b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock3.stree.txt @@ -1,21 +1,27 @@ -Markup block - Gen - 8 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 8 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 6 - (2:0,2) - Tag block - Gen - 6 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p /] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:3 - SyntaxKind.Text;[p]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - Markup block - Gen - 1 - (7:0,7) - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (7:0,7) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..8)::8 - [@{ - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..8)::8 + CSharpStatement - [0..8)::8 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..8)::7 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..8)::6 + MarkupBlock - [2..8)::6 + MarkupTagBlock - [2..8)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..7)::3 - [p /] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + Whitespace;[ ]; + ForwardSlash;[/]; + MarkupMinimizedAttributeBlock - [7..8)::1 - [}] + MarkupTextLiteral - [7..8)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; + RazorMetaCode - [8..8)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock4.stree.txt index 99565cb44..b417b1cec 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock4.stree.txt @@ -1,23 +1,32 @@ -Markup block - Gen - 13 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 13 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 11 - (2:0,2) - Tag block - Gen - 11 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - 8 - (5:0,5) - Markup span - Gen - [ class=] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..13)::13 - [@{ - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..13)::13 + CSharpStatement - [0..13)::13 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..13)::12 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..13)::11 + MarkupBlock - [2..13)::11 + MarkupTagBlock - [2..13)::11 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..5)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [5..13)::8 - [ class=}] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + GenericBlock - [12..13)::1 + MarkupLiteralAttributeValue - [12..13)::1 - [}] + MarkupTextLiteral - [12..13)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; + RazorMetaCode - [13..13)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock5.stree.txt index 8f20babae..4917b1dee 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock5.stree.txt @@ -1,24 +1,34 @@ -Markup block - Gen - 17 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 17 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 15 - (2:0,2) - Tag block - Gen - 15 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - [btn}] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Text;[btn}]; +RazorDocument - [0..17)::17 - [@{ - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..17)::17 + CSharpStatement - [0..17)::17 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..17)::16 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..17)::15 + MarkupBlock - [2..17)::15 + MarkupTagBlock - [2..17)::15 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..5)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [5..17)::12 - [ class="btn}] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [13..17)::4 + MarkupLiteralAttributeValue - [13..17)::4 - [btn}] + MarkupTextLiteral - [13..17)::4 - [btn}] - Gen - SpanEditHandler;Accepts:Any + Text;[btn}]; + RazorMetaCode - [17..17)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock6.stree.txt index 01ab2a148..65b84da2e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock6.stree.txt @@ -1,31 +1,42 @@ -Markup block - Gen - 19 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 19 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 17 - (2:0,2) - Tag block - Gen - 17 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - [btn] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup block - Gen - 2 - (16:0,16) - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (17:0,17) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..19)::19 - [@{ - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..19)::19 + CSharpStatement - [0..19)::19 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..19)::18 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..19)::17 + MarkupBlock - [2..19)::17 + MarkupTagBlock - [2..19)::17 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..5)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [5..19)::14 - [ class="btn@@}] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [13..19)::6 + MarkupLiteralAttributeValue - [13..16)::3 - [btn] + MarkupTextLiteral - [13..16)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupBlock - [16..18)::2 + MarkupTextLiteral - [16..17)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupEphemeralTextLiteral - [17..18)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupLiteralAttributeValue - [18..19)::1 - [}] + MarkupTextLiteral - [18..19)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; + RazorMetaCode - [19..19)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock7.stree.txt index 6ffeaac81..c3e2ac96b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock7.stree.txt @@ -1,29 +1,39 @@ -Markup block - Gen - 18 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 18 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 16 - (2:0,2) - Tag block - Gen - 16 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - 12 - (5:0,5) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup block - Gen - 1 - (17:0,17) - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..18)::18 - [@{ - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..18)::18 + CSharpStatement - [0..18)::18 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..18)::17 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..18)::16 + MarkupBlock - [2..18)::16 + MarkupTagBlock - [2..18)::16 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..5)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [5..17)::12 - [ class="btn"] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [13..16)::3 + MarkupLiteralAttributeValue - [13..16)::3 - [btn] + MarkupTextLiteral - [13..16)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [16..17)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupMinimizedAttributeBlock - [17..18)::1 - [}] + MarkupTextLiteral - [17..18)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; + RazorMetaCode - [18..18)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock8.stree.txt index 71a957170..26ffe4ab6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteHTMLInCSharpBlock8.stree.txt @@ -1,32 +1,42 @@ -Markup block - Gen - 20 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 20 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 18 - (2:0,2) - Tag block - Gen - 18 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - 12 - (5:0,5) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [ /] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - Markup block - Gen - 1 - (19:0,19) - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..20)::20 - [@{ - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..20)::20 + CSharpStatement - [0..20)::20 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..20)::19 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..20)::18 + MarkupBlock - [2..20)::18 + MarkupTagBlock - [2..20)::18 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..5)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [5..17)::12 - [ class="btn"] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [13..16)::3 + MarkupLiteralAttributeValue - [13..16)::3 - [btn] + MarkupTextLiteral - [13..16)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [16..17)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [17..19)::2 - [ /] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + MarkupMinimizedAttributeBlock - [19..20)::1 - [}] + MarkupTextLiteral - [19..20)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; + RazorMetaCode - [20..20)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock1.stree.txt index 4361281bb..bdbf9331b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock1.stree.txt @@ -1,16 +1,22 @@ -Markup block - Gen - 9 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 9 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 7 - (2:0,2) - Tag block - Gen - 7 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text}] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[text}]; +RazorDocument - [0..9)::9 - [@{ - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..9)::9 + CSharpStatement - [0..9)::9 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..9)::8 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..9)::7 + MarkupBlock - [2..9)::7 + MarkupTagBlock - [2..9)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..9)::5 - [text}] - Gen - SpanEditHandler;Accepts:Any + Text;[text}]; + RazorMetaCode - [9..9)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock2.stree.txt index 38179386c..97ba0757a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock2.stree.txt @@ -1,21 +1,27 @@ -Markup block - Gen - 11 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 11 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 9 - (2:0,2) - Tag block - Gen - 9 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text /] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:3 - SyntaxKind.Text;[text]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - Markup block - Gen - 1 - (10:0,10) - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..11)::11 - [@{ - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..11)::11 + CSharpStatement - [0..11)::11 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..11)::10 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..11)::9 + MarkupBlock - [2..11)::9 + MarkupTagBlock - [2..11)::9 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..10)::6 - [text /] - Gen - SpanEditHandler;Accepts:Any + Text;[text]; + Whitespace;[ ]; + ForwardSlash;[/]; + MarkupMinimizedAttributeBlock - [10..11)::1 - [}] + MarkupTextLiteral - [10..11)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; + RazorMetaCode - [11..11)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock3.stree.txt index d04369b66..331006644 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock3.stree.txt @@ -1,23 +1,32 @@ -Markup block - Gen - 16 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 16 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 14 - (2:0,2) - Tag block - Gen - 14 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[text]; - Markup block - Gen - 8 - (8:0,8) - Markup span - Gen - [ class=] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..16)::16 - [@{ - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..16)::16 + CSharpStatement - [0..16)::16 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..16)::15 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..16)::14 + MarkupBlock - [2..16)::14 + MarkupTagBlock - [2..16)::14 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..8)::4 - [text] - Gen - SpanEditHandler;Accepts:Any + Text;[text]; + MarkupAttributeBlock - [8..16)::8 - [ class=}] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + GenericBlock - [15..16)::1 + MarkupLiteralAttributeValue - [15..16)::1 - [}] + MarkupTextLiteral - [15..16)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; + RazorMetaCode - [16..16)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock4.stree.txt index a21322e32..cfb0682b6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock4.stree.txt @@ -1,24 +1,34 @@ -Markup block - Gen - 20 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 20 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 18 - (2:0,2) - Tag block - Gen - 18 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[text]; - Markup block - Gen - [btn}] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[btn}]; +RazorDocument - [0..20)::20 - [@{ - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..20)::20 + CSharpStatement - [0..20)::20 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..20)::19 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..20)::18 + MarkupBlock - [2..20)::18 + MarkupTagBlock - [2..20)::18 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..8)::4 - [text] - Gen - SpanEditHandler;Accepts:Any + Text;[text]; + MarkupAttributeBlock - [8..20)::12 - [ class="btn}] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [16..20)::4 + MarkupLiteralAttributeValue - [16..20)::4 - [btn}] + MarkupTextLiteral - [16..20)::4 - [btn}] - Gen - SpanEditHandler;Accepts:Any + Text;[btn}]; + RazorMetaCode - [20..20)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock5.stree.txt index f4490f882..72c4f51c2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock5.stree.txt @@ -1,29 +1,39 @@ -Markup block - Gen - 21 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 21 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 19 - (2:0,2) - Tag block - Gen - 19 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[text]; - Markup block - Gen - 12 - (8:0,8) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup block - Gen - 1 - (20:0,20) - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..21)::21 - [@{ - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..21)::21 + CSharpStatement - [0..21)::21 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..21)::20 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..21)::19 + MarkupBlock - [2..21)::19 + MarkupTagBlock - [2..21)::19 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..8)::4 - [text] - Gen - SpanEditHandler;Accepts:Any + Text;[text]; + MarkupAttributeBlock - [8..20)::12 - [ class="btn"] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [16..19)::3 + MarkupLiteralAttributeValue - [16..19)::3 - [btn] + MarkupTextLiteral - [16..19)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [19..20)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupMinimizedAttributeBlock - [20..21)::1 - [}] + MarkupTextLiteral - [20..21)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; + RazorMetaCode - [21..21)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock6.stree.txt index 21a5461c4..35141aa09 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptForIncompleteTextTagInCSharpBlock6.stree.txt @@ -1,32 +1,42 @@ -Markup block - Gen - 23 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 23 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 21 - (2:0,2) - Tag block - Gen - 21 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[text]; - Markup block - Gen - 12 - (8:0,8) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [ /] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - Markup block - Gen - 1 - (22:0,22) - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..23)::23 - [@{ - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..23)::23 + CSharpStatement - [0..23)::23 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..23)::22 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..23)::21 + MarkupBlock - [2..23)::21 + MarkupTagBlock - [2..23)::21 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..8)::4 - [text] - Gen - SpanEditHandler;Accepts:Any + Text;[text]; + MarkupAttributeBlock - [8..20)::12 - [ class="btn"] + MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [16..19)::3 + MarkupLiteralAttributeValue - [16..19)::3 - [btn] + MarkupTextLiteral - [16..19)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [19..20)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [20..22)::2 - [ /] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + MarkupMinimizedAttributeBlock - [22..23)::1 - [}] + MarkupTextLiteral - [22..23)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; + RazorMetaCode - [23..23)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData1.stree.txt index cb43adda8..726257ea8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData1.stree.txt @@ -1,30 +1,40 @@ -Markup block - Gen - 19 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 19 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 17 - (2:0,2) - Tag block - Gen - 16 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - 12 - (5:0,5) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (17:0,17) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..19)::19 - [@{}] + MarkupBlock - [0..19)::19 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..19)::19 + CSharpStatement - [0..19)::19 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..19)::18 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..19)::17 + MarkupBlock - [2..19)::17 + MarkupTagBlock - [2..18)::16 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..5)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [5..17)::12 - [ class="btn"] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [13..16)::3 + MarkupLiteralAttributeValue - [13..16)::3 - [btn] + MarkupTextLiteral - [13..16)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [16..17)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [17..18)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTextLiteral - [18..19)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; + RazorMetaCode - [19..19)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData2.stree.txt index 5fce9ea8c..ec8de2b66 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData2.stree.txt @@ -1,43 +1,51 @@ -Markup block - Gen - 24 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 24 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 21 - (2:0,2) - Tag block - Gen - 16 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - 12 - (5:0,5) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (17:0,17) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (18:0,18) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (23:0,23) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..24)::24 - [@{}] + MarkupBlock - [0..24)::24 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..24)::24 + CSharpStatement - [0..24)::24 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..24)::23 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..23)::21 + MarkupBlock - [2..23)::21 + MarkupTagBlock - [2..18)::16 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..5)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [5..17)::12 - [ class="btn"] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [13..16)::3 + MarkupLiteralAttributeValue - [13..16)::3 - [btn] + MarkupTextLiteral - [13..16)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [16..17)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [17..18)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagBlock - [18..23)::5 - [] + MarkupTextLiteral - [18..20)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [20..21)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [21..23)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [23..23)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [23..24)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [24..24)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData3.stree.txt index f29b08f89..70c21e5b7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData3.stree.txt @@ -1,49 +1,57 @@ -Markup block - Gen - 41 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 41 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 38 - (2:0,2) - Tag block - Gen - 16 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - 12 - (5:0,5) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (17:0,17) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [words with spaces] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[with]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; - Tag block - Gen - 5 - (35:0,35) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (37:0,37) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (38:0,38) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (40:0,40) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (41:0,41) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..41)::41 - [@{words with spaces}] + MarkupBlock - [0..41)::41 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..41)::41 + CSharpStatement - [0..41)::41 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..41)::40 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..40)::38 + MarkupBlock - [2..40)::38 + MarkupTagBlock - [2..18)::16 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..5)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [5..17)::12 - [ class="btn"] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [13..16)::3 + MarkupLiteralAttributeValue - [13..16)::3 - [btn] + MarkupTextLiteral - [13..16)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [16..17)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [17..18)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTextLiteral - [18..35)::17 - [words with spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[with]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagBlock - [35..40)::5 - [] + MarkupTextLiteral - [35..37)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [37..38)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [38..40)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [40..40)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [40..41)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [41..41)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData4.stree.txt index 1bf92e47d..daf373042 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData4.stree.txt @@ -1,53 +1,66 @@ -Markup block - Gen - 41 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 41 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 38 - (2:0,2) - Tag block - Gen - 33 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - 18 - (5:0,5) - Markup span - Gen - [ class='] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [btn1] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Text;[btn1]; - Markup span - Gen - [ btn2] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[btn2]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 11 - (23:0,23) - Markup span - Gen - [ class2=] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class2]; - SyntaxKind.Equals;[=]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (34:0,34) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (35:0,35) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (37:0,37) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (38:0,38) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (40:0,40) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (41:0,41) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..41)::41 - [@{}] + MarkupBlock - [0..41)::41 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..41)::41 + CSharpStatement - [0..41)::41 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..41)::40 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..40)::38 + MarkupBlock - [2..40)::38 + MarkupTagBlock - [2..35)::33 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..5)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [5..23)::18 - [ class='btn1 btn2'] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [13..22)::9 + MarkupLiteralAttributeValue - [13..17)::4 - [btn1] + MarkupTextLiteral - [13..17)::4 - [btn1] - Gen - SpanEditHandler;Accepts:Any + Text;[btn1]; + MarkupLiteralAttributeValue - [17..22)::5 - [ btn2] + MarkupTextLiteral - [17..18)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [18..22)::4 - [btn2] - Gen - SpanEditHandler;Accepts:Any + Text;[btn2]; + MarkupTextLiteral - [22..23)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [23..34)::11 - [ class2=btn] + MarkupTextLiteral - [23..24)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [24..30)::6 - [class2] - Gen - SpanEditHandler;Accepts:Any + Text;[class2]; + Equals;[=]; + GenericBlock - [31..34)::3 + MarkupLiteralAttributeValue - [31..34)::3 - [btn] + MarkupTextLiteral - [31..34)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [34..35)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagBlock - [35..40)::5 - [] + MarkupTextLiteral - [35..37)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [37..38)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [38..40)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [40..40)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [40..41)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [41..41)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData5.stree.txt index 21f9fa95b..025747eb0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithAttributeData5.stree.txt @@ -1,56 +1,70 @@ -Markup block - Gen - 44 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 44 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 41 - (2:0,2) - Tag block - Gen - 36 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - 32 - (5:0,5) - Markup span - Gen - [ class='] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [btn1] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Text;[btn1]; - Markup block - Gen - 14 - (17:0,17) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (18:0,18) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (18:0,18) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (19:0,19) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ btn2] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[btn2]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (36:0,36) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (37:0,37) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (38:0,38) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (41:0,41) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (43:0,43) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (43:0,43) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (44:0,44) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..44)::44 - [@{}] + MarkupBlock - [0..44)::44 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..44)::44 + CSharpStatement - [0..44)::44 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..44)::43 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..43)::41 + MarkupBlock - [2..43)::41 + MarkupTagBlock - [2..38)::36 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..5)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [5..37)::32 - [ class='btn1 @DateTime.Now btn2'] + MarkupTextLiteral - [5..6)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [6..11)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [13..36)::23 + MarkupLiteralAttributeValue - [13..17)::4 - [btn1] + MarkupTextLiteral - [13..17)::4 - [btn1] - Gen - SpanEditHandler;Accepts:Any + Text;[btn1]; + MarkupDynamicAttributeValue - [17..31)::14 - [ @DateTime.Now] + MarkupTextLiteral - [17..18)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + GenericBlock - [18..31)::13 + CSharpCodeBlock - [18..31)::13 + CSharpImplicitExpression - [18..31)::13 + CSharpTransition - [18..19)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [19..31)::12 + CSharpCodeBlock - [19..31)::12 + CSharpExpressionLiteral - [19..31)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupLiteralAttributeValue - [31..36)::5 - [ btn2] + MarkupTextLiteral - [31..32)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [32..36)::4 - [btn2] - Gen - SpanEditHandler;Accepts:Any + Text;[btn2]; + MarkupTextLiteral - [36..37)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [37..38)::1 - [>] - Gen - SpanEditHandler;Accepts:None + CloseAngle;[>]; + MarkupTagBlock - [38..43)::5 - [] + MarkupTextLiteral - [38..40)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [40..41)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [41..43)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [43..43)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [43..44)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [44..44)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData1.stree.txt index 5fb494235..50b192a1b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData1.stree.txt @@ -1,19 +1,25 @@ -Markup block - Gen - 7 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 7 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 5 - (2:0,2) - Tag block - Gen - 4 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..7)::7 - [@{}] + MarkupBlock - [0..7)::7 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..7)::7 + CSharpStatement - [0..7)::7 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..7)::6 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..7)::5 + MarkupBlock - [2..7)::5 + MarkupTagBlock - [2..6)::4 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..6)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [6..7)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; + RazorMetaCode - [7..7)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData10.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData10.stree.txt index af2417dd0..1618647cb 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData10.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData10.stree.txt @@ -1,33 +1,41 @@ -Markup block - Gen - 25 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 25 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 13 - (2:0,2) - Tag block - Gen - 13 - (2:0,2) - strong - strongtaghelper - StartTagAndEndTag - - Tag block - Gen - 5 - (10:0,10) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup block - Gen - 9 - (15:0,15) - Tag block - Gen - 9 - (15:0,15) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..25)::25 - [@{}] + MarkupBlock - [0..25)::25 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..25)::25 + CSharpStatement - [0..25)::25 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..25)::24 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..24)::22 + MarkupBlock - [2..15)::13 + MarkupTagHelperElement - [2..15)::13 - strong[StartTagAndEndTag] - strongtaghelper + MarkupTagHelperStartTag - [2..10)::8 + MarkupTextLiteral - [2..10)::8 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [10..15)::5 - [] + MarkupTextLiteral - [10..12)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [12..13)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [13..15)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + MarkupBlock - [15..24)::9 + MarkupTagBlock - [15..24)::9 - [] + MarkupTextLiteral - [15..24)::9 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + CSharpStatementLiteral - [24..24)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [24..25)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [25..25)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData11.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData11.stree.txt index 71809b696..687be1c9a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData11.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData11.stree.txt @@ -1,35 +1,49 @@ -Markup block - Gen - 29 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 29 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 17 - (2:0,2) - Tag block - Gen - 17 - (2:0,2) - strong - strongtaghelper - StartTagAndEndTag - ... - Markup block - Gen - 9 - (19:0,19) - Tag block - Gen - 4 - (19:0,19) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (23:0,23) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (25:0,25) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (26:0,26) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (28:0,28) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (28:0,28) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (29:0,29) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..29)::29 - [@{}] + MarkupBlock - [0..29)::29 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..29)::29 + CSharpStatement - [0..29)::29 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..29)::28 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..28)::26 + MarkupBlock - [2..19)::17 + MarkupTagHelperElement - [2..19)::17 - strong[StartTagAndEndTag] - strongtaghelper + MarkupTagHelperStartTag - [2..10)::8 + MarkupTextLiteral - [2..10)::8 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [10..19)::9 + MarkupTextLiteral - [10..19)::9 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupBlock - [19..28)::9 + MarkupTagBlock - [19..23)::4 - [] + MarkupTextLiteral - [19..20)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [20..21)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [21..23)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [23..28)::5 - [] + MarkupTextLiteral - [23..25)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [25..26)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [26..28)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [28..28)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [28..29)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [29..29)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData12.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData12.stree.txt index 179751088..9794d1274 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData12.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData12.stree.txt @@ -1,53 +1,65 @@ -Markup block - Gen - 42 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 42 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 21 - (2:0,2) - Tag block - Gen - 21 - (2:0,2) - p - ptaghelper - StartTagAndEndTag -

        - Tag block - Gen - 18 - (5:0,5) - strong - strongtaghelper - StartTagAndEndTag - - Tag block - Gen - 10 - (13:0,13) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [strong>] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:2 - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Markup block - Gen - 13 - (23:0,23) - Tag block - Gen - 4 - (23:0,23) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (25:0,25) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (27:0,27) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (27:0,27) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Markup block - Gen - 5 - (36:0,36) - Tag block - Gen - 5 - (36:0,36) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (38:0,38) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (39:0,39) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (41:0,41) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (41:0,41) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (42:0,42) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..42)::42 - [@{

        }] + MarkupBlock - [0..42)::42 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..42)::42 + CSharpStatement - [0..42)::42 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..42)::41 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..41)::39 + MarkupBlock - [2..23)::21 + MarkupTagHelperElement - [2..23)::21 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [2..5)::3 + MarkupTextLiteral - [2..5)::3 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [5..23)::18 - strong[StartTagAndEndTag] - strongtaghelper + MarkupTagHelperStartTag - [5..13)::8 + MarkupTextLiteral - [5..13)::8 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [13..23)::10 - [] + MarkupTextLiteral - [13..15)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [15..16)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [16..23)::7 - [strong>] - Gen - SpanEditHandler;Accepts:None + Text;[strong]; + CloseAngle;[>]; + MarkupBlock - [23..36)::13 + MarkupTagBlock - [23..27)::4 - [] + MarkupTextLiteral - [23..24)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [24..25)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [25..27)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [27..36)::9 - [] + MarkupTextLiteral - [27..36)::9 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupBlock - [36..41)::5 + MarkupTagBlock - [36..41)::5 - [] + MarkupTextLiteral - [36..38)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [38..39)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [39..41)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [41..41)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [41..42)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [42..42)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData2.stree.txt index 8da34473c..b77794b95 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData2.stree.txt @@ -1,24 +1,28 @@ -Markup block - Gen - 8 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 8 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 5 - (2:0,2) - Tag block - Gen - 5 - (2:0,2) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (5:0,5) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (7:0,7) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (7:0,7) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..8)::8 - [@{}] + MarkupBlock - [0..8)::8 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..8)::8 + CSharpStatement - [0..8)::8 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..8)::7 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..7)::5 + MarkupBlock - [2..7)::5 + MarkupTagBlock - [2..7)::5 - [] + MarkupTextLiteral - [2..4)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [4..5)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [5..7)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [7..7)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [7..8)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [8..8)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData3.stree.txt index 55b5fdda0..c8c84f649 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData3.stree.txt @@ -1,32 +1,36 @@ -Markup block - Gen - 12 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 12 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 9 - (2:0,2) - Tag block - Gen - 4 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (6:0,6) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (8:0,8) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (11:0,11) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..12)::12 - [@{}] + MarkupBlock - [0..12)::12 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..12)::12 + CSharpStatement - [0..12)::12 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..12)::11 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..11)::9 + MarkupBlock - [2..11)::9 + MarkupTagBlock - [2..6)::4 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..6)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [6..11)::5 - [] + MarkupTextLiteral - [6..8)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [8..9)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [9..11)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [11..11)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [11..12)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [12..12)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData4.stree.txt index 3fc4a59ce..bf95348d7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData4.stree.txt @@ -1,38 +1,42 @@ -Markup block - Gen - 28 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 28 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 25 - (2:0,2) - Tag block - Gen - 4 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [words and spaces] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; - Tag block - Gen - 5 - (22:0,22) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (25:0,25) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (27:0,27) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (28:0,28) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..28)::28 - [@{words and spaces}] + MarkupBlock - [0..28)::28 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..28)::28 + CSharpStatement - [0..28)::28 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..28)::27 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..27)::25 + MarkupBlock - [2..27)::25 + MarkupTagBlock - [2..6)::4 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..6)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [6..22)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagBlock - [22..27)::5 - [] + MarkupTextLiteral - [22..24)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [24..25)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [25..27)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [27..27)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [27..28)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [28..28)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData5.stree.txt index dd0672684..dc8aabd04 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData5.stree.txt @@ -1,29 +1,33 @@ -Markup block - Gen - 11 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 11 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 8 - (2:0,2) - Tag block - Gen - 4 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 4 - (6:0,6) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:None - (6:0,6) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..11)::11 - [@{

        }] + MarkupBlock - [0..11)::11 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..11)::11 + CSharpStatement - [0..11)::11 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..11)::10 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..10)::8 + MarkupBlock - [2..10)::8 + MarkupTagBlock - [2..6)::4 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..6)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [6..10)::4 - [

        ] + MarkupTextLiteral - [6..10)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [10..10)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [11..11)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData6.stree.txt index 5a7fdfc9a..530c8a0c5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData6.stree.txt @@ -1,26 +1,34 @@ -Markup block - Gen - 11 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 11 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 8 - (2:0,2) - Tag block - Gen - 8 - (2:0,2) - p - ptaghelper - StartTagAndEndTag -

        - Tag block - Gen - 5 - (5:0,5) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (7:0,7) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (8:0,8) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..11)::11 - [@{

        }] + MarkupBlock - [0..11)::11 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..11)::11 + CSharpStatement - [0..11)::11 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..11)::10 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..10)::8 + MarkupBlock - [2..10)::8 + MarkupTagHelperElement - [2..10)::8 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [2..5)::3 + MarkupTextLiteral - [2..5)::3 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [5..10)::5 - [] + MarkupTextLiteral - [5..7)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [7..8)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [8..10)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [10..10)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [11..11)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData7.stree.txt index cbb233dcb..c278e5816 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData7.stree.txt @@ -1,34 +1,48 @@ -Markup block - Gen - 19 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 19 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 16 - (2:0,2) - Tag block - Gen - 16 - (2:0,2) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 4 - (5:0,5) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (6:0,6) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (7:0,7) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (9:0,9) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (11:0,11) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (18:0,18) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..19)::19 - [@{

        }] + MarkupBlock - [0..19)::19 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..19)::19 + CSharpStatement - [0..19)::19 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..19)::18 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..18)::16 + MarkupBlock - [2..18)::16 + MarkupTagHelperElement - [2..18)::16 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [2..5)::3 + MarkupTextLiteral - [2..5)::3 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [5..9)::4 - [] + MarkupTextLiteral - [5..6)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [6..7)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [7..9)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [9..14)::5 - [] + MarkupTextLiteral - [9..11)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [11..12)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [12..14)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [14..18)::4 + MarkupTextLiteral - [14..18)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [18..18)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [18..19)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [19..19)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData8.stree.txt index ccaf54362..2a1f08d6e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData8.stree.txt @@ -1,30 +1,40 @@ -Markup block - Gen - 15 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 15 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 13 - (2:0,2) - Tag block - Gen - 13 - (2:0,2) - p - ptaghelper - StartTagAndEndTag -

        - Tag block - Gen - 4 - (5:0,5) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (6:0,6) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (7:0,7) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (9:0,9) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (11:0,11) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..15)::15 - [@{

        }] + MarkupBlock - [0..15)::15 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..15)::15 + CSharpStatement - [0..15)::15 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..15)::14 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..15)::13 + MarkupBlock - [2..15)::13 + MarkupTagHelperElement - [2..15)::13 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [2..5)::3 + MarkupTextLiteral - [2..5)::3 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [5..9)::4 - [] + MarkupTextLiteral - [5..6)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [6..7)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [7..9)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [9..14)::5 - [] + MarkupTextLiteral - [9..11)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [11..12)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [12..14)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [14..15)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; + RazorMetaCode - [15..15)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData9.stree.txt index 869d294fe..334df5c46 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData9.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutCSharp_WithBlockData9.stree.txt @@ -1,39 +1,43 @@ -Markup block - Gen - 16 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 16 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 9 - (2:0,2) - Tag block - Gen - 4 - (2:0,2) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (6:0,6) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (8:0,8) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup block - Gen - 4 - (11:0,11) - Tag block - Gen - 4 - (11:0,11) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:None - (11:0,11) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..16)::16 - [@{

        }] + MarkupBlock - [0..16)::16 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..16)::16 + CSharpStatement - [0..16)::16 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..16)::15 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..15)::13 + MarkupBlock - [2..11)::9 + MarkupTagBlock - [2..6)::4 - [] + MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [4..6)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [6..11)::5 - [] + MarkupTextLiteral - [6..8)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [8..9)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [9..11)::2 - [p>] - Gen - SpanEditHandler;Accepts:None + Text;[p]; + CloseAngle;[>]; + MarkupBlock - [11..15)::4 + MarkupTagBlock - [11..15)::4 - [

        ] + MarkupTextLiteral - [11..15)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [15..15)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [15..16)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [16..16)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData1.stree.txt index db31725b1..7036ebb7e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData1.stree.txt @@ -1,20 +1,25 @@ -Markup block - Gen - 16 - (0:0,0) - Tag block - Gen - 16 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - 12 - (3:0,3) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..16)::16 - [] + MarkupBlock - [0..16)::16 + MarkupTagBlock - [0..16)::16 - [] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..3)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [3..15)::12 - [ class="btn"] + MarkupTextLiteral - [3..4)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [4..9)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [10..11)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [11..14)::3 + MarkupLiteralAttributeValue - [11..14)::3 - [btn] + MarkupTextLiteral - [11..14)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [14..15)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [15..16)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData2.stree.txt index 7e4a56068..c7c25082e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData2.stree.txt @@ -1,29 +1,34 @@ -Markup block - Gen - 21 - (0:0,0) - Tag block - Gen - 16 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - 12 - (3:0,3) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (16:0,16) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (18:0,18) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..21)::21 - [] + MarkupBlock - [0..21)::21 + MarkupTagBlock - [0..16)::16 - [] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..3)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [3..15)::12 - [ class="btn"] + MarkupTextLiteral - [3..4)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [4..9)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [10..11)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [11..14)::3 + MarkupLiteralAttributeValue - [11..14)::3 - [btn] + MarkupTextLiteral - [11..14)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [14..15)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [15..16)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [16..21)::5 - [] + MarkupTextLiteral - [16..18)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [18..19)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [19..21)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData3.stree.txt index 1287d4471..b9a298b12 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData3.stree.txt @@ -1,36 +1,40 @@ -Markup block - Gen - 37 - (0:0,0) - Tag block - Gen - 16 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - 12 - (3:0,3) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [words and spaces] - [16..32) - FullWidth: 16 - Slots: 1 - SyntaxKind.List - [words and spaces] - [16..32) - FullWidth: 16 - Slots: 5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; - Tag block - Gen - 5 - (32:0,32) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (34:0,34) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..37)::37 - [words and spaces] + MarkupBlock - [0..37)::37 + MarkupTagBlock - [0..16)::16 - [] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..3)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [3..15)::12 - [ class="btn"] + MarkupTextLiteral - [3..4)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [4..9)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [10..11)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [11..14)::3 + MarkupLiteralAttributeValue - [11..14)::3 - [btn] + MarkupTextLiteral - [11..14)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [14..15)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [15..16)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [16..32)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagBlock - [32..37)::5 - [] + MarkupTextLiteral - [32..34)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [34..35)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [35..37)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData4.stree.txt index 76659fc91..d2f267594 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData4.stree.txt @@ -1,39 +1,49 @@ -Markup block - Gen - 38 - (0:0,0) - Tag block - Gen - 33 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - 18 - (3:0,3) - Markup span - Gen - [ class='] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [btn1] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:1 - SyntaxKind.Text;[btn1]; - Markup span - Gen - [ btn2] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[btn2]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 11 - (21:0,21) - Markup span - Gen - [ class2=] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class2]; - SyntaxKind.Equals;[=]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (29:0,29) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (32:0,32) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (33:0,33) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (35:0,35) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (36:0,36) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..38)::38 - [] + MarkupBlock - [0..38)::38 + MarkupTagBlock - [0..33)::33 - [] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..3)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [3..21)::18 - [ class='btn1 btn2'] + MarkupTextLiteral - [3..4)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [4..9)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [10..11)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [11..20)::9 + MarkupLiteralAttributeValue - [11..15)::4 - [btn1] + MarkupTextLiteral - [11..15)::4 - [btn1] - Gen - SpanEditHandler;Accepts:Any + Text;[btn1]; + MarkupLiteralAttributeValue - [15..20)::5 - [ btn2] + MarkupTextLiteral - [15..16)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [16..20)::4 - [btn2] - Gen - SpanEditHandler;Accepts:Any + Text;[btn2]; + MarkupTextLiteral - [20..21)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupAttributeBlock - [21..32)::11 - [ class2=btn] + MarkupTextLiteral - [21..22)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [22..28)::6 - [class2] - Gen - SpanEditHandler;Accepts:Any + Text;[class2]; + Equals;[=]; + GenericBlock - [29..32)::3 + MarkupLiteralAttributeValue - [29..32)::3 - [btn] + MarkupTextLiteral - [29..32)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [32..33)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [33..38)::5 - [] + MarkupTextLiteral - [33..35)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [35..36)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [36..38)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData5.stree.txt index 984a6d0f7..b3856ca50 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithAttributeData5.stree.txt @@ -1,42 +1,53 @@ -Markup block - Gen - 41 - (0:0,0) - Tag block - Gen - 36 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.Text;[p]; - Markup block - Gen - 32 - (3:0,3) - Markup span - Gen - [ class='] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [btn1] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:1 - SyntaxKind.Text;[btn1]; - Markup block - Gen - 14 - (15:0,15) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 13 - (16:0,16) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (17:0,17) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - Markup span - Gen - [ btn2] - SpanEditHandler;Accepts:Any - (29:0,29) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[btn2]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (36:0,36) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (38:0,38) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (39:0,39) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..41)::41 - [] + MarkupBlock - [0..41)::41 + MarkupTagBlock - [0..36)::36 - [] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..3)::1 - [p] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + MarkupAttributeBlock - [3..35)::32 - [ class='btn1 @DateTime.Now btn2'] + MarkupTextLiteral - [3..4)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [4..9)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [10..11)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + GenericBlock - [11..34)::23 + MarkupLiteralAttributeValue - [11..15)::4 - [btn1] + MarkupTextLiteral - [11..15)::4 - [btn1] - Gen - SpanEditHandler;Accepts:Any + Text;[btn1]; + MarkupDynamicAttributeValue - [15..29)::14 - [ @DateTime.Now] + MarkupTextLiteral - [15..16)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + GenericBlock - [16..29)::13 + CSharpCodeBlock - [16..29)::13 + CSharpImplicitExpression - [16..29)::13 + CSharpTransition - [16..17)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [17..29)::12 + CSharpCodeBlock - [17..29)::12 + CSharpExpressionLiteral - [17..29)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupLiteralAttributeValue - [29..34)::5 - [ btn2] + MarkupTextLiteral - [29..30)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [30..34)::4 - [btn2] - Gen - SpanEditHandler;Accepts:Any + Text;[btn2]; + MarkupTextLiteral - [34..35)::1 - ['] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [35..36)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [36..41)::5 - [] + MarkupTextLiteral - [36..38)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [38..39)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [39..41)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData1.stree.txt index 1954422f0..acb1f0a40 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData1.stree.txt @@ -1,9 +1,10 @@ -Markup block - Gen - 4 - (0:0,0) - Tag block - Gen - 4 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..4)::4 - [] + MarkupBlock - [0..4)::4 + MarkupTagBlock - [0..4)::4 - [] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..4)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData10.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData10.stree.txt index fa747175c..37731b876 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData10.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData10.stree.txt @@ -1,12 +1,23 @@ -Markup block - Gen - 22 - (0:0,0) - Tag block - Gen - 22 - (0:0,0) - strong - strongtaghelper - StartTagAndEndTag - ... - Tag block - Gen - 5 - (8:0,8) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..22)::22 - [] + MarkupBlock - [0..22)::22 + MarkupTagHelperElement - [0..22)::22 - strong[StartTagAndEndTag] - strongtaghelper + MarkupTagHelperStartTag - [0..8)::8 + MarkupTextLiteral - [0..8)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [8..13)::5 - [] + MarkupTextLiteral - [8..10)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [11..13)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [13..22)::9 + MarkupTextLiteral - [13..22)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData11.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData11.stree.txt index c97b9042a..7852dcdd4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData11.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData11.stree.txt @@ -1,20 +1,31 @@ -Markup block - Gen - 26 - (0:0,0) - Tag block - Gen - 17 - (0:0,0) - strong - strongtaghelper - StartTagAndEndTag - ... - Tag block - Gen - 4 - (17:0,17) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (18:0,18) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (21:0,21) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (23:0,23) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..26)::26 - [] + MarkupBlock - [0..26)::26 + MarkupTagHelperElement - [0..17)::17 - strong[StartTagAndEndTag] - strongtaghelper + MarkupTagHelperStartTag - [0..8)::8 + MarkupTextLiteral - [0..8)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [8..17)::9 + MarkupTextLiteral - [8..17)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [17..21)::4 - [] + MarkupTextLiteral - [17..18)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [18..19)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [19..21)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [21..26)::5 - [] + MarkupTextLiteral - [21..23)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [23..24)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [24..26)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData12.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData12.stree.txt index 5496bb002..b246c4a31 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData12.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData12.stree.txt @@ -1,31 +1,46 @@ -Markup block - Gen - 39 - (0:0,0) - Tag block - Gen - 39 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - Tag block - Gen - 31 - (3:0,3) - strong - strongtaghelper - StartTagAndEndTag - ... - Tag block - Gen - 10 - (11:0,11) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [strong>] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:2 - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 4 - (21:0,21) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (22:0,22) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (34:0,34) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (36:0,36) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (37:0,37) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..39)::39 - [

        ] + MarkupBlock - [0..39)::39 + MarkupTagHelperElement - [0..39)::39 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..34)::31 - strong[StartTagAndEndTag] - strongtaghelper + MarkupTagHelperStartTag - [3..11)::8 + MarkupTextLiteral - [3..11)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [11..21)::10 - [] + MarkupTextLiteral - [11..13)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [13..14)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [14..21)::7 - [strong>] - Gen - SpanEditHandler;Accepts:Any + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [21..25)::4 - [] + MarkupTextLiteral - [21..22)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [22..23)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [23..25)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [25..34)::9 + MarkupTextLiteral - [25..34)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [34..39)::5 - [] + MarkupTextLiteral - [34..36)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [36..37)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [37..39)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData2.stree.txt index 57b448f28..504c231e5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData2.stree.txt @@ -1,10 +1,11 @@ -Markup block - Gen - 5 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (2:0,2) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..5)::5 - [] + MarkupBlock - [0..5)::5 + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [2..3)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [3..5)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData3.stree.txt index a7ec91ed2..c5f2ee2fb 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData3.stree.txt @@ -1,18 +1,19 @@ -Markup block - Gen - 9 - (0:0,0) - Tag block - Gen - 4 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (4:0,4) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (6:0,6) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (7:0,7) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..9)::9 - [] + MarkupBlock - [0..9)::9 + MarkupTagBlock - [0..4)::4 - [] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..4)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [4..9)::5 - [] + MarkupTextLiteral - [4..6)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [6..7)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [7..9)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData4.stree.txt index 9e09446fd..fe05aa041 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData4.stree.txt @@ -1,25 +1,25 @@ -Markup block - Gen - 25 - (0:0,0) - Tag block - Gen - 4 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [words and spaces] - [4..20) - FullWidth: 16 - Slots: 1 - SyntaxKind.List - [words and spaces] - [4..20) - FullWidth: 16 - Slots: 5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; - Tag block - Gen - 5 - (20:0,20) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (22:0,22) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..25)::25 - [words and spaces] + MarkupBlock - [0..25)::25 + MarkupTagBlock - [0..4)::4 - [] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..4)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [4..20)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagBlock - [20..25)::5 - [] + MarkupTextLiteral - [20..22)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [22..23)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [23..25)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData5.stree.txt index f023d05b9..b2ba2a2b2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData5.stree.txt @@ -1,15 +1,16 @@ -Markup block - Gen - 8 - (0:0,0) - Tag block - Gen - 4 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 4 - (4:0,4) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..8)::8 - [

        ] + MarkupBlock - [0..8)::8 + MarkupTagBlock - [0..4)::4 - [] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..4)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [4..8)::4 - [

        ] + MarkupTextLiteral - [4..8)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData6.stree.txt index 3b9cf7813..2dd48d43c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData6.stree.txt @@ -1,12 +1,17 @@ -Markup block - Gen - 8 - (0:0,0) - Tag block - Gen - 8 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - Tag block - Gen - 5 - (3:0,3) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (5:0,5) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..8)::8 - [

        ] + MarkupBlock - [0..8)::8 + MarkupTagHelperElement - [0..8)::8 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..8)::5 - [] + MarkupTextLiteral - [3..5)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [5..6)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [6..8)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData7.stree.txt index 6d70a7544..cdd50c028 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData7.stree.txt @@ -1,20 +1,31 @@ -Markup block - Gen - 16 - (0:0,0) - Tag block - Gen - 16 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 4 - (3:0,3) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (7:0,7) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..16)::16 - [

        ] + MarkupBlock - [0..16)::16 + MarkupTagHelperElement - [0..16)::16 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..7)::4 - [] + MarkupTextLiteral - [3..4)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [4..5)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [5..7)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [7..12)::5 - [] + MarkupTextLiteral - [7..9)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [9..10)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [10..12)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [12..16)::4 + MarkupTextLiteral - [12..16)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData8.stree.txt index fa672e3ea..187d7fbe9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData8.stree.txt @@ -1,20 +1,25 @@ -Markup block - Gen - 12 - (0:0,0) - Tag block - Gen - 12 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        - Tag block - Gen - 4 - (3:0,3) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (7:0,7) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..12)::12 - [

        ] + MarkupBlock - [0..12)::12 + MarkupTagHelperElement - [0..12)::12 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..7)::4 - [] + MarkupTextLiteral - [3..4)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [4..5)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [5..7)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [7..12)::5 - [] + MarkupTextLiteral - [7..9)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [9..10)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [10..12)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData9.stree.txt index aa0b8186e..06cd6f933 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData9.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTagHelperElementOptOutHTML_WithBlockData9.stree.txt @@ -1,24 +1,25 @@ -Markup block - Gen - 13 - (0:0,0) - Tag block - Gen - 4 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 5 - (4:0,4) - Markup span - Gen - [ - [!] - SpanEditHandler;Accepts:None - (6:0,6) - Tokens:1 - SyntaxKind.Bang;[!]; - Markup span - Gen - [p>] - SpanEditHandler;Accepts:Any - (7:0,7) - Tokens:2 - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 4 - (9:0,9) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..13)::13 - [

        ] + MarkupBlock - [0..13)::13 + MarkupTagBlock - [0..4)::4 - [] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [2..4)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [4..9)::5 - [] + MarkupTextLiteral - [4..6)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + RazorMetaCode - [6..7)::1 - Gen - SpanEditHandler;Accepts:None + Bang;[!]; + MarkupTextLiteral - [7..9)::2 - [p>] - Gen - SpanEditHandler;Accepts:Any + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [9..13)::4 - [

        ] + MarkupTextLiteral - [9..13)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CanHandleInvalidChildrenWithWhitespace.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CanHandleInvalidChildrenWithWhitespace.stree.txt index f6b647258..af792a8cc 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CanHandleInvalidChildrenWithWhitespace.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CanHandleInvalidChildrenWithWhitespace.stree.txt @@ -1,27 +1,36 @@ -Markup block - Gen - 53 - (0:0,0) - Tag block - Gen - 53 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [LF ] - [3..9) - FullWidth: 6 - Slots: 1 - SyntaxKind.List - [LF ] - [3..9) - FullWidth: 6 - Slots: 2 - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 8 - (9:1,4) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (9:1,4) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [LF HelloLF ] - [17..38) - FullWidth: 21 - Slots: 1 - SyntaxKind.List - [LF HelloLF ] - [17..38) - FullWidth: 21 - Slots: 5 - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Hello]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 9 - (38:3,4) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (38:3,4) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [LF] - [47..49) - FullWidth: 2 - Slots: 1 - SyntaxKind.NewLine;[LF]; +RazorDocument - [0..53)::53 - [

        LF LF HelloLF LF

        ] + MarkupBlock - [0..53)::53 + MarkupTagHelperElement - [0..53)::53 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..9)::6 - [LF ] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Whitespace;[ ]; + MarkupTagBlock - [9..17)::8 - [] + MarkupTextLiteral - [9..17)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [17..38)::21 - [LF HelloLF ] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + Whitespace;[ ]; + Text;[Hello]; + NewLine;[LF]; + Whitespace;[ ]; + MarkupTagBlock - [38..47)::9 - [] + MarkupTextLiteral - [38..47)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [47..49)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupTagHelperEndTag - [49..53)::4 + MarkupTextLiteral - [49..53)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CanHandleMultipleTagHelpersWithAllowedChildren.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CanHandleMultipleTagHelpersWithAllowedChildren.stree.txt index 895fbe361..2fa4f737a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CanHandleMultipleTagHelpersWithAllowedChildren.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CanHandleMultipleTagHelpersWithAllowedChildren.stree.txt @@ -1,12 +1,36 @@ -Markup block - Gen - 39 - (0:0,0) - Tag block - Gen - 39 - (0:0,0) - p - PTagHelper1 - PTagHelper2 - StartTagAndEndTag -

        ...

        - Tag block - Gen - 28 - (3:0,3) - strong - StrongTagHelper - StartTagAndEndTag - ... - SyntaxKind.HtmlTextLiteral - [Hello World] - [11..22) - FullWidth: 11 - Slots: 1 - SyntaxKind.List - [Hello World] - [11..22) - FullWidth: 11 - Slots: 3 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; - Tag block - Gen - 4 - (31:0,31) - br - BRTagHelper - StartTagOnly -
        +RazorDocument - [0..39)::39 - [

        Hello World

        ] + MarkupBlock - [0..39)::39 + MarkupTagHelperElement - [0..39)::39 - p[StartTagAndEndTag] - PTagHelper1 - PTagHelper2 + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..31)::28 - strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [3..11)::8 + MarkupTextLiteral - [3..11)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [11..22)::11 - [Hello World] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + MarkupTagHelperEndTag - [22..31)::9 + MarkupTextLiteral - [22..31)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperElement - [31..35)::4 - br[StartTagOnly] - BRTagHelper + MarkupTagHelperStartTag - [31..35)::4 + MarkupTextLiteral - [31..35)::4 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [35..39)::4 + MarkupTextLiteral - [35..39)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CanHandleMultipleTagHelpersWithAllowedChildren_OneNull.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CanHandleMultipleTagHelpersWithAllowedChildren_OneNull.stree.txt index 895fbe361..2fa4f737a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CanHandleMultipleTagHelpersWithAllowedChildren_OneNull.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CanHandleMultipleTagHelpersWithAllowedChildren_OneNull.stree.txt @@ -1,12 +1,36 @@ -Markup block - Gen - 39 - (0:0,0) - Tag block - Gen - 39 - (0:0,0) - p - PTagHelper1 - PTagHelper2 - StartTagAndEndTag -

        ...

        - Tag block - Gen - 28 - (3:0,3) - strong - StrongTagHelper - StartTagAndEndTag - ... - SyntaxKind.HtmlTextLiteral - [Hello World] - [11..22) - FullWidth: 11 - Slots: 1 - SyntaxKind.List - [Hello World] - [11..22) - FullWidth: 11 - Slots: 3 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; - Tag block - Gen - 4 - (31:0,31) - br - BRTagHelper - StartTagOnly -
        +RazorDocument - [0..39)::39 - [

        Hello World

        ] + MarkupBlock - [0..39)::39 + MarkupTagHelperElement - [0..39)::39 - p[StartTagAndEndTag] - PTagHelper1 - PTagHelper2 + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..31)::28 - strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [3..11)::8 + MarkupTextLiteral - [3..11)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [11..22)::11 - [Hello World] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + MarkupTagHelperEndTag - [22..31)::9 + MarkupTextLiteral - [22..31)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperElement - [31..35)::4 - br[StartTagOnly] - BRTagHelper + MarkupTagHelperStartTag - [31..35)::4 + MarkupTextLiteral - [31..35)::4 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [35..39)::4 + MarkupTextLiteral - [35..39)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CanHandleStartTagOnlyTagTagMode.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CanHandleStartTagOnlyTagTagMode.stree.txt index 64f951bb8..764c76b22 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CanHandleStartTagOnlyTagTagMode.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CanHandleStartTagOnlyTagTagMode.stree.txt @@ -1,3 +1,8 @@ -Markup block - Gen - 7 - (0:0,0) - Tag block - Gen - 7 - (0:0,0) - input - InputTagHelper - StartTagOnly - +RazorDocument - [0..7)::7 - [] + MarkupBlock - [0..7)::7 + MarkupTagHelperElement - [0..7)::7 - input[StartTagOnly] - InputTagHelper + MarkupTagHelperStartTag - [0..7)::7 + MarkupTextLiteral - [0..7)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CreatesErrorForInconsistentTagStructures.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CreatesErrorForInconsistentTagStructures.stree.txt index ce48d3462..f75dab8e9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CreatesErrorForInconsistentTagStructures.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CreatesErrorForInconsistentTagStructures.stree.txt @@ -1,3 +1,8 @@ -Markup block - Gen - 7 - (0:0,0) - Tag block - Gen - 7 - (0:0,0) - input - InputTagHelper1 - InputTagHelper2 - StartTagOnly - +RazorDocument - [0..7)::7 - [] + MarkupBlock - [0..7)::7 + MarkupTagHelperElement - [0..7)::7 - input[StartTagOnly] - InputTagHelper1 - InputTagHelper2 + MarkupTagHelperStartTag - [0..7)::7 + MarkupTextLiteral - [0..7)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CreatesErrorForWithoutEndTagTagStructureForEndTags.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CreatesErrorForWithoutEndTagTagStructureForEndTags.stree.txt index ccdf6fa94..bbad7a51e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CreatesErrorForWithoutEndTagTagStructureForEndTags.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/CreatesErrorForWithoutEndTagTagStructureForEndTags.stree.txt @@ -1,7 +1,8 @@ -Markup block - Gen - 8 - (0:0,0) - Tag block - Gen - 8 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[input]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..8)::8 - [] + MarkupBlock - [0..8)::8 + MarkupTagBlock - [0..8)::8 - [] + MarkupTextLiteral - [0..8)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[input]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers1.diag.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers1.diag.txt new file mode 100644 index 000000000..67536937c --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers1.diag.txt @@ -0,0 +1,5 @@ +(0,0): Error RZ3008: Tag helpers cannot target tag name '!--' because it contains a '!' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '?xml' because it contains a '?' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '![CDATA[' because it contains a '!' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '![CDATA[' because it contains a '[' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '!DOCTYPE' because it contains a '!' character. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers1.stree.txt index fbadbcc6d..1d82e5c9d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers1.stree.txt @@ -1,26 +1,27 @@ -Markup block - Gen - 31 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - HtmlComment block - Gen - 20 - (5:0,5) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (22:0,22) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (25:0,25) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..31)::31 - [] + MarkupBlock - [0..31)::31 + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupCommentBlock - [5..25)::20 + MarkupTextLiteral - [5..9)::4 - [] - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTagBlock - [25..31)::6 - [] + MarkupTextLiteral - [25..31)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers2.diag.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers2.diag.txt new file mode 100644 index 000000000..67536937c --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers2.diag.txt @@ -0,0 +1,5 @@ +(0,0): Error RZ3008: Tag helpers cannot target tag name '!--' because it contains a '!' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '?xml' because it contains a '?' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '![CDATA[' because it contains a '!' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '![CDATA[' because it contains a '[' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '!DOCTYPE' because it contains a '!' character. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers2.stree.txt index 96ad08ee1..6435e3cdd 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers2.stree.txt @@ -1,29 +1,33 @@ -Markup block - Gen - 24 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - HtmlComment block - Gen - 13 - (5:0,5) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (18:0,18) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..24)::24 - [] + MarkupBlock - [0..24)::24 + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupCommentBlock - [5..18)::13 + MarkupTextLiteral - [5..9)::4 - [] - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTagBlock - [18..24)::6 - [] + MarkupTextLiteral - [18..24)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers3.diag.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers3.diag.txt new file mode 100644 index 000000000..67536937c --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers3.diag.txt @@ -0,0 +1,5 @@ +(0,0): Error RZ3008: Tag helpers cannot target tag name '!--' because it contains a '!' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '?xml' because it contains a '?' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '![CDATA[' because it contains a '!' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '![CDATA[' because it contains a '[' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '!DOCTYPE' because it contains a '!' character. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers3.stree.txt index a8c8955b7..a435551c4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers3.stree.txt @@ -1,24 +1,24 @@ -Markup block - Gen - 31 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [] - [5..25) - FullWidth: 20 - Slots: 1 - SyntaxKind.List - [] - [5..25) - FullWidth: 20 - Slots: 10 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.Text;[xml]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (25:0,25) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..31)::31 - [] + MarkupBlock - [0..31)::31 + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [5..25)::20 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + QuestionMark;[?]; + Text;[xml]; + Whitespace;[ ]; + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + Whitespace;[ ]; + QuestionMark;[?]; + CloseAngle;[>]; + MarkupTagBlock - [25..31)::6 - [] + MarkupTextLiteral - [25..31)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers4.diag.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers4.diag.txt new file mode 100644 index 000000000..67536937c --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers4.diag.txt @@ -0,0 +1,5 @@ +(0,0): Error RZ3008: Tag helpers cannot target tag name '!--' because it contains a '!' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '?xml' because it contains a '?' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '![CDATA[' because it contains a '!' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '![CDATA[' because it contains a '[' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '!DOCTYPE' because it contains a '!' character. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers4.stree.txt index 23207701d..8aa9f0848 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers4.stree.txt @@ -1,27 +1,30 @@ -Markup block - Gen - 24 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ - 4 - (11:0,11) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (11:0,11) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (12:0,12) - Tokens:1 - SyntaxKind.Identifier;[foo]; - SyntaxKind.HtmlTextLiteral - [ ?>] - [15..18) - FullWidth: 3 - Slots: 1 - SyntaxKind.List - [ ?>] - [15..18) - FullWidth: 3 - Slots: 3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (18:0,18) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..24)::24 - [] + MarkupBlock - [0..24)::24 + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [5..11)::6 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + QuestionMark;[?]; + Text;[xml]; + Whitespace;[ ]; + CSharpCodeBlock - [11..15)::4 + CSharpImplicitExpression - [11..15)::4 + CSharpTransition - [11..12)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [12..15)::3 + CSharpCodeBlock - [12..15)::3 + CSharpExpressionLiteral - [12..15)::3 - [foo] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[foo]; + MarkupTextLiteral - [15..18)::3 - [ ?>] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + QuestionMark;[?]; + CloseAngle;[>]; + MarkupTagBlock - [18..24)::6 - [] + MarkupTextLiteral - [18..24)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers5.diag.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers5.diag.txt new file mode 100644 index 000000000..67536937c --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers5.diag.txt @@ -0,0 +1,5 @@ +(0,0): Error RZ3008: Tag helpers cannot target tag name '!--' because it contains a '!' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '?xml' because it contains a '?' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '![CDATA[' because it contains a '!' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '![CDATA[' because it contains a '[' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '!DOCTYPE' because it contains a '!' character. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers5.stree.txt index 639e17fa3..bb000ad7f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers5.stree.txt @@ -1,26 +1,29 @@ -Markup block - Gen - 27 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ - 4 - (15:0,15) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (16:0,16) - Tokens:1 - SyntaxKind.Identifier;[foo]; - SyntaxKind.HtmlTextLiteral - [ >] - [19..21) - FullWidth: 2 - Slots: 1 - SyntaxKind.List - [ >] - [19..21) - FullWidth: 2 - Slots: 2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (21:0,21) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..27)::27 - [] + MarkupBlock - [0..27)::27 + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [5..15)::10 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Bang;[!]; + Text;[DOCTYPE]; + Whitespace;[ ]; + CSharpCodeBlock - [15..19)::4 + CSharpImplicitExpression - [15..19)::4 + CSharpTransition - [15..16)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [16..19)::3 + CSharpCodeBlock - [16..19)::3 + CSharpExpressionLiteral - [16..19)::3 - [foo] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[foo]; + MarkupTextLiteral - [19..21)::2 - [ >] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTagBlock - [21..27)::6 - [] + MarkupTextLiteral - [21..27)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers6.diag.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers6.diag.txt new file mode 100644 index 000000000..67536937c --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers6.diag.txt @@ -0,0 +1,5 @@ +(0,0): Error RZ3008: Tag helpers cannot target tag name '!--' because it contains a '!' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '?xml' because it contains a '?' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '![CDATA[' because it contains a '!' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '![CDATA[' because it contains a '[' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '!DOCTYPE' because it contains a '!' character. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers6.stree.txt index 4e9a91346..f2dffdde6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers6.stree.txt @@ -1,25 +1,25 @@ -Markup block - Gen - 36 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [] - [5..30) - FullWidth: 25 - Slots: 1 - SyntaxKind.List - [] - [5..30) - FullWidth: 25 - Slots: 11 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Bang;[!]; - SyntaxKind.Text;[DOCTYPE]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[hello]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - SyntaxKind.Text;[world]; - SyntaxKind.DoubleQuote;["]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (30:0,30) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..36)::36 - [] + MarkupBlock - [0..36)::36 + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [5..30)::25 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Bang;[!]; + Text;[DOCTYPE]; + Whitespace;[ ]; + Text;[hello]; + Equals;[=]; + DoubleQuote;["]; + Text;[world]; + DoubleQuote;["]; + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTagBlock - [30..36)::6 - [] + MarkupTextLiteral - [30..36)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers7.diag.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers7.diag.txt new file mode 100644 index 000000000..67536937c --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers7.diag.txt @@ -0,0 +1,5 @@ +(0,0): Error RZ3008: Tag helpers cannot target tag name '!--' because it contains a '!' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '?xml' because it contains a '?' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '![CDATA[' because it contains a '!' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '![CDATA[' because it contains a '[' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '!DOCTYPE' because it contains a '!' character. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers7.stree.txt index 429c94278..23a73af55 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers7.stree.txt @@ -1,27 +1,27 @@ -Markup block - Gen - 36 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [] - [5..30) - FullWidth: 25 - Slots: 1 - SyntaxKind.List - [] - [5..30) - FullWidth: 25 - Slots: 13 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Bang;[!]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Text;[CDATA]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (30:0,30) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..36)::36 - [] + MarkupBlock - [0..36)::36 + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [5..30)::25 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Bang;[!]; + LeftBracket;[[]; + Text;[CDATA]; + LeftBracket;[[]; + Whitespace;[ ]; + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + Whitespace;[ ]; + RightBracket;[]]; + RightBracket;[]]; + CloseAngle;[>]; + MarkupTagBlock - [30..36)::6 - [] + MarkupTextLiteral - [30..36)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers8.diag.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers8.diag.txt new file mode 100644 index 000000000..67536937c --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers8.diag.txt @@ -0,0 +1,5 @@ +(0,0): Error RZ3008: Tag helpers cannot target tag name '!--' because it contains a '!' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '?xml' because it contains a '?' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '![CDATA[' because it contains a '!' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '![CDATA[' because it contains a '[' character. +(0,0): Error RZ3008: Tag helpers cannot target tag name '!DOCTYPE' because it contains a '!' character. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers8.stree.txt index 513b48778..bc149d467 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteSpecialTagTagHelpers8.stree.txt @@ -1,30 +1,33 @@ -Markup block - Gen - 29 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ - 4 - (15:0,15) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (16:0,16) - Tokens:1 - SyntaxKind.Identifier;[foo]; - SyntaxKind.HtmlTextLiteral - [ ]]>] - [19..23) - FullWidth: 4 - Slots: 1 - SyntaxKind.List - [ ]]>] - [19..23) - FullWidth: 4 - Slots: 4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (23:0,23) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[foo]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..29)::29 - [] + MarkupBlock - [0..29)::29 + MarkupTagBlock - [0..5)::5 - [] + MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[foo]; + CloseAngle;[>]; + MarkupTextLiteral - [5..15)::10 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Bang;[!]; + LeftBracket;[[]; + Text;[CDATA]; + LeftBracket;[[]; + Whitespace;[ ]; + CSharpCodeBlock - [15..19)::4 + CSharpImplicitExpression - [15..19)::4 + CSharpTransition - [15..16)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [16..19)::3 + CSharpCodeBlock - [16..19)::3 + CSharpExpressionLiteral - [16..19)::3 - [foo] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[foo]; + MarkupTextLiteral - [19..23)::4 - [ ]]>] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RightBracket;[]]; + RightBracket;[]]; + CloseAngle;[>]; + MarkupTagBlock - [23..29)::6 - [] + MarkupTextLiteral - [23..29)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[foo]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteTextTagTransitionTagHelpers1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteTextTagTransitionTagHelpers1.stree.txt index 36c3ee79e..a0890322f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteTextTagTransitionTagHelpers1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteTextTagTransitionTagHelpers1.stree.txt @@ -1,8 +1,18 @@ -Markup block - Gen - 24 - (0:0,0) - Tag block - Gen - 24 - (0:0,0) - text - texttaghelper - StartTagAndEndTag - ... - SyntaxKind.HtmlTextLiteral - [Hello World] - [6..17) - FullWidth: 11 - Slots: 1 - SyntaxKind.List - [Hello World] - [6..17) - FullWidth: 11 - Slots: 3 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; +RazorDocument - [0..24)::24 - [Hello World] + MarkupBlock - [0..24)::24 + MarkupTagHelperElement - [0..24)::24 - text[StartTagAndEndTag] - texttaghelper + MarkupTagHelperStartTag - [0..6)::6 + MarkupTextLiteral - [0..6)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [6..17)::11 - [Hello World] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + MarkupTagHelperEndTag - [17..24)::7 + MarkupTextLiteral - [17..24)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteTextTagTransitionTagHelpers2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteTextTagTransitionTagHelpers2.stree.txt index cf9c0f9b2..fcfb244b7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteTextTagTransitionTagHelpers2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteTextTagTransitionTagHelpers2.stree.txt @@ -1,30 +1,34 @@ -Markup block - Gen - 27 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 27 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 24 - (2:0,2) - Tag block - Gen - 6 - (2:0,2) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (2:0,2) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Hello World] - SpanEditHandler;Accepts:None - (8:0,8) - Tokens:3 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; - Tag block - Gen - 7 - (19:0,19) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (19:0,19) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (26:0,26) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (26:0,26) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..27)::27 - [@{Hello World}] + MarkupBlock - [0..27)::27 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..27)::27 + CSharpStatement - [0..27)::27 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..27)::26 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..26)::24 + MarkupBlock - [2..26)::24 + MarkupTagBlock - [2..8)::6 - [] + MarkupTransition - [2..8)::6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [8..19)::11 - [Hello World] - Gen - SpanEditHandler;Accepts:None + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + MarkupTagBlock - [19..26)::7 - [] + MarkupTransition - [19..26)::7 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [26..26)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [26..27)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [27..27)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteTextTagTransitionTagHelpers3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteTextTagTransitionTagHelpers3.stree.txt index a579c1c53..728705632 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteTextTagTransitionTagHelpers3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteTextTagTransitionTagHelpers3.stree.txt @@ -1,32 +1,46 @@ -Markup block - Gen - 34 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 34 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 31 - (2:0,2) - Tag block - Gen - 6 - (2:0,2) - Transition span - Gen - [] - SpanEditHandler;Accepts:None - (2:0,2) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 18 - (8:0,8) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Markup span - Gen - [Hello World] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:3 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; - Tag block - Gen - 7 - (26:0,26) - Transition span - Gen - [
        ] - SpanEditHandler;Accepts:None - (26:0,26) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[text]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (33:0,33) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..34)::34 - [@{

        Hello World

        }] + MarkupBlock - [0..34)::34 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..34)::34 + CSharpStatement - [0..34)::34 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..34)::33 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..33)::31 + MarkupBlock - [2..33)::31 + MarkupTagBlock - [2..8)::6 - [] + MarkupTransition - [2..8)::6 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTagHelperElement - [8..26)::18 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [8..11)::3 + MarkupTextLiteral - [8..11)::3 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [11..22)::11 - [Hello World] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + MarkupTagHelperEndTag - [22..26)::4 + MarkupTextLiteral - [22..26)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [26..33)::7 - [
        ] + MarkupTransition - [26..33)::7 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; + CSharpStatementLiteral - [33..33)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [33..34)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [34..34)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteTextTagTransitionTagHelpers4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteTextTagTransitionTagHelpers4.stree.txt index 1a76d36a9..2376ffa08 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteTextTagTransitionTagHelpers4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotRewriteTextTagTransitionTagHelpers4.stree.txt @@ -1,23 +1,47 @@ -Markup block - Gen - 34 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Statement block - Gen - 34 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 31 - (2:0,2) - Tag block - Gen - 31 - (2:0,2) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 24 - (5:0,5) - text - texttaghelper - StartTagAndEndTag - ... - Markup span - Gen - [Hello World] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:3 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (33:0,33) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..34)::34 - [@{

        Hello World

        }] + MarkupBlock - [0..34)::34 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..34)::34 + CSharpStatement - [0..34)::34 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..34)::33 + RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..33)::31 + MarkupBlock - [2..33)::31 + MarkupTagHelperElement - [2..33)::31 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [2..5)::3 + MarkupTextLiteral - [2..5)::3 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [5..29)::24 - text[StartTagAndEndTag] - texttaghelper + MarkupTagHelperStartTag - [5..11)::6 + MarkupTextLiteral - [5..11)::6 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[text]; + CloseAngle;[>]; + MarkupTextLiteral - [11..22)::11 - [Hello World] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + MarkupTagHelperEndTag - [22..29)::7 + MarkupTextLiteral - [22..29)::7 - [] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[text]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [29..33)::4 + MarkupTextLiteral - [29..33)::4 - [

        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + CSharpStatementLiteral - [33..33)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [33..34)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [34..34)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotUnderstandTagHelpersInInvalidHtmlTypedScriptTags1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotUnderstandTagHelpersInInvalidHtmlTypedScriptTags1.stree.txt index 7e9ac9853..4fbcbc27e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotUnderstandTagHelpersInInvalidHtmlTypedScriptTags1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotUnderstandTagHelpersInInvalidHtmlTypedScriptTags1.stree.txt @@ -1,23 +1,25 @@ -Markup block - Gen - 31 - (0:0,0) - Tag block - Gen - 13 - (0:0,0) - Markup span - Gen - [ - 5 - (7:0,7) - Markup span - Gen - [ type] - SpanEditHandler;Accepts:Any - (7:0,7) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[type]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:5 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[input]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (22:0,22) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..31)::31 - [] + MarkupBlock - [0..31)::31 + MarkupTagBlock - [0..13)::13 - [] + MarkupTextLiteral - [22..31)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotUnderstandTagHelpersInInvalidHtmlTypedScriptTags2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotUnderstandTagHelpersInInvalidHtmlTypedScriptTags2.stree.txt index 717a88fcf..eeb165528 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotUnderstandTagHelpersInInvalidHtmlTypedScriptTags2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotUnderstandTagHelpersInInvalidHtmlTypedScriptTags2.stree.txt @@ -1,31 +1,36 @@ -Markup block - Gen - 44 - (0:0,0) - Tag block - Gen - 26 - (0:0,0) - Markup span - Gen - [ - 18 - (7:0,7) - Markup span - Gen - [ types='] - SpanEditHandler;Accepts:Any - (7:0,7) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[types]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [text/html] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:3 - SyntaxKind.Text;[text]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[html]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (26:0,26) - Tokens:5 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[input]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (35:0,35) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..44)::44 - [] + MarkupBlock - [0..44)::44 + MarkupTagBlock - [0..26)::26 - [] + MarkupTextLiteral - [35..44)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotUnderstandTagHelpersInInvalidHtmlTypedScriptTags3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotUnderstandTagHelpersInInvalidHtmlTypedScriptTags3.stree.txt index 0af4884cf..a06447556 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotUnderstandTagHelpersInInvalidHtmlTypedScriptTags3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotUnderstandTagHelpersInInvalidHtmlTypedScriptTags3.stree.txt @@ -1,34 +1,41 @@ -Markup block - Gen - 51 - (0:0,0) - Tag block - Gen - 33 - (0:0,0) - Markup span - Gen - [ - 25 - (7:0,7) - Markup span - Gen - [ type='] - SpanEditHandler;Accepts:Any - (7:0,7) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[type]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [text/html] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:3 - SyntaxKind.Text;[text]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[html]; - Markup span - Gen - [ invalid] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[invalid]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (32:0,32) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:5 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[input]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (42:0,42) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (42:0,42) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..51)::51 - [] + MarkupBlock - [0..51)::51 + MarkupTagBlock - [0..33)::33 - [] + MarkupTextLiteral - [42..51)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotUnderstandTagHelpersInInvalidHtmlTypedScriptTags4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotUnderstandTagHelpersInInvalidHtmlTypedScriptTags4.stree.txt index 497785349..50e28a2af 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotUnderstandTagHelpersInInvalidHtmlTypedScriptTags4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesNotUnderstandTagHelpersInInvalidHtmlTypedScriptTags4.stree.txt @@ -1,43 +1,52 @@ -Markup block - Gen - 60 - (0:0,0) - Tag block - Gen - 42 - (0:0,0) - Markup span - Gen - [ - 17 - (7:0,7) - Markup span - Gen - [ type='] - SpanEditHandler;Accepts:Any - (7:0,7) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[type]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [text/ng-*] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:3 - SyntaxKind.Text;[text]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[ng-*]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 17 - (24:0,24) - Markup span - Gen - [ type='] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[type]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [text/html] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:3 - SyntaxKind.Text;[text]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[html]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (40:0,40) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (41:0,41) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (42:0,42) - Tokens:5 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[input]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (51:0,51) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (51:0,51) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..60)::60 - [] + MarkupBlock - [0..60)::60 + MarkupTagBlock - [0..42)::42 - [] + MarkupTextLiteral - [51..60)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesntAllowSimpleHtmlCommentsAsChildrenWhenFeatureFlagIsOff.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesntAllowSimpleHtmlCommentsAsChildrenWhenFeatureFlagIsOff.stree.txt index e2345c824..5aaa74ba0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesntAllowSimpleHtmlCommentsAsChildrenWhenFeatureFlagIsOff.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/DoesntAllowSimpleHtmlCommentsAsChildrenWhenFeatureFlagIsOff.stree.txt @@ -1,13 +1,24 @@ -Markup block - Gen - 19 - (0:0,0) - Tag block - Gen - 19 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - HtmlComment block - Gen - 12 - (3:0,3) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..19)::19 - [

        ] + MarkupBlock - [0..19)::19 + MarkupTagHelperElement - [0..19)::19 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupCommentBlock - [3..15)::12 + MarkupTextLiteral - [3..7)::4 - [] - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [15..19)::4 + MarkupTextLiteral - [15..19)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/FailsForContentWithCommentsAsChildren.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/FailsForContentWithCommentsAsChildren.stree.txt index 3a1c9224a..783308c6a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/FailsForContentWithCommentsAsChildren.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/FailsForContentWithCommentsAsChildren.stree.txt @@ -1,25 +1,36 @@ -Markup block - Gen - 35 - (0:0,0) - Tag block - Gen - 35 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - HtmlComment block - Gen - 12 - (3:0,3) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [asdf] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.Text;[asdf]; - HtmlComment block - Gen - 12 - (19:0,19) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (28:0,28) - Tokens:2 - SyntaxKind.DoubleHyphen;[--]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..35)::35 - [

        asdf

        ] + MarkupBlock - [0..35)::35 + MarkupTagHelperElement - [0..35)::35 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupCommentBlock - [3..15)::12 + MarkupTextLiteral - [3..7)::4 - [] - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTextLiteral - [15..19)::4 - [asdf] - Gen - SpanEditHandler;Accepts:Any + Text;[asdf]; + MarkupCommentBlock - [19..31)::12 + MarkupTextLiteral - [19..23)::4 - [] - Gen - SpanEditHandler;Accepts:None + DoubleHyphen;[--]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [31..35)::4 + MarkupTextLiteral - [31..35)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesMalformedNestedNonTagHelperTags_Correctly.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesMalformedNestedNonTagHelperTags_Correctly.stree.txt index e0cd89550..8c0e0bf6a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesMalformedNestedNonTagHelperTags_Correctly.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesMalformedNestedNonTagHelperTags_Correctly.stree.txt @@ -1,24 +1,28 @@ -Markup block - Gen - 14 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - Statement block - Gen - 9 - (5:0,5) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (5:0,5) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (6:0,6) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 6 - (7:0,7) - Tag block - Gen - 6 - (7:0,7) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:None - (7:0,7) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..14)::14 - [
        @{
        }] + MarkupBlock - [0..14)::14 + MarkupTagBlock - [0..5)::5 - [
        ] + MarkupTextLiteral - [0..5)::5 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + CSharpCodeBlock - [5..14)::9 + CSharpStatement - [5..14)::9 + CSharpTransition - [5..6)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [6..14)::8 + RazorMetaCode - [6..7)::1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [7..13)::6 + MarkupBlock - [7..13)::6 + MarkupTagBlock - [7..13)::6 - [
        ] + MarkupTextLiteral - [7..13)::6 - [
        ] - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + CSharpStatementLiteral - [13..13)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [13..14)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [14..14)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/InvalidStructure_UnderstandsTHPrefixAndAllowedChildrenAndRequireParent.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/InvalidStructure_UnderstandsTHPrefixAndAllowedChildrenAndRequireParent.stree.txt index 1d0a8487b..dc6a45ec3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/InvalidStructure_UnderstandsTHPrefixAndAllowedChildrenAndRequireParent.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/InvalidStructure_UnderstandsTHPrefixAndAllowedChildrenAndRequireParent.stree.txt @@ -1,9 +1,20 @@ -Markup block - Gen - 25 - (0:0,0) - Tag block - Gen - 25 - (0:0,0) - th:p - PTagHelper - StartTagAndEndTag - ... - Tag block - Gen - 12 - (6:0,6) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[th:strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..25)::25 - [] + MarkupBlock - [0..25)::25 + MarkupTagHelperElement - [0..25)::25 - th:p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..6)::6 + MarkupTextLiteral - [0..6)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:p]; + CloseAngle;[>]; + MarkupTagBlock - [6..18)::12 - [] + MarkupTextLiteral - [6..18)::12 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[th:strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [18..25)::7 + MarkupTextLiteral - [18..25)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[th:p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly1.stree.txt index 98ea2b7ec..e54b169ec 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly1.stree.txt @@ -1,17 +1,40 @@ -Markup block - Gen - 26 - (0:0,0) - Tag block - Gen - 26 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; - Tag block - Gen - 3 - (15:0,15) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 4 - (18:0,18) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..26)::26 - [

        ] + MarkupBlock - [0..26)::26 + MarkupTagHelperElement - [0..26)::26 - p[StartTagAndEndTag] - pTagHelper + MarkupTagHelperStartTag - [0..15)::15 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [14..15)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [15..18)::3 - [

        ] + MarkupTextLiteral - [15..18)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [18..22)::4 - [

        ] + MarkupTextLiteral - [18..22)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [22..26)::4 + MarkupTextLiteral - [22..26)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly10.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly10.stree.txt index 42120b8e2..738d2bf69 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly10.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly10.stree.txt @@ -1,44 +1,89 @@ -Markup block - Gen - 113 - (0:0,0) - Tag block - Gen - 113 - (0:0,0) - strong - catchAllTagHelper - StartTagAndEndTag - ... - catchAll - DoubleQuotes - Markup span - Gen - [hi] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.Text;[hi]; - Tag block - Gen - 8 - (22:0,22) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 8 - (30:0,30) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 48 - (38:0,38) - strong - catchAllTagHelper - StartTagAndEndTag - ... - catchAll - DoubleQuotes - Markup span - Gen - [hi] - SpanEditHandler;Accepts:Any - (56:0,56) - Tokens:1 - SyntaxKind.Text;[hi]; - Tag block - Gen - 8 - (60:0,60) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (60:0,60) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (68:0,68) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (68:0,68) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (86:0,86) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (86:0,86) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (95:0,95) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (95:0,95) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..113)::113 - [] + MarkupBlock - [0..113)::113 + MarkupTagHelperElement - [0..113)::113 - strong[StartTagAndEndTag] - catchAllTagHelper + MarkupTagHelperStartTag - [0..22)::22 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupTagHelperAttribute - [7..21)::14 - catchAll - DoubleQuotes - Unbound - [ catchAll="hi"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..16)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [17..18)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [18..20)::2 + MarkupLiteralAttributeValue - [18..20)::2 - [hi] + MarkupTextLiteral - [18..20)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [21..22)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [22..30)::8 - [] + MarkupTextLiteral - [22..30)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [30..38)::8 - [] + MarkupTextLiteral - [30..38)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperElement - [38..86)::48 - strong[StartTagAndEndTag] - catchAllTagHelper + MarkupTagHelperStartTag - [38..60)::22 + MarkupTextLiteral - [38..45)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupTagHelperAttribute - [45..59)::14 - catchAll - DoubleQuotes - Unbound - [ catchAll="hi"] + MarkupTextLiteral - [45..46)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [46..54)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [55..56)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [56..58)::2 + MarkupLiteralAttributeValue - [56..58)::2 - [hi] + MarkupTextLiteral - [56..58)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [58..59)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [59..60)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [60..68)::8 - [] + MarkupTextLiteral - [60..68)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [68..77)::9 - [] + MarkupTextLiteral - [68..77)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [77..86)::9 + MarkupTextLiteral - [77..86)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [86..95)::9 - [] + MarkupTextLiteral - [86..95)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [95..104)::9 - [] + MarkupTextLiteral - [95..104)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [104..113)::9 + MarkupTextLiteral - [104..113)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly2.stree.txt index a64f462a0..a6bd0c5f0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly2.stree.txt @@ -1,17 +1,40 @@ -Markup block - Gen - 48 - (0:0,0) - Tag block - Gen - 48 - (0:0,0) - strong - catchAllTagHelper - StartTagAndEndTag - ... - catchAll - DoubleQuotes - Markup span - Gen - [hi] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.Text;[hi]; - Tag block - Gen - 8 - (22:0,22) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (30:0,30) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..48)::48 - [] + MarkupBlock - [0..48)::48 + MarkupTagHelperElement - [0..48)::48 - strong[StartTagAndEndTag] - catchAllTagHelper + MarkupTagHelperStartTag - [0..22)::22 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupTagHelperAttribute - [7..21)::14 - catchAll - DoubleQuotes - Unbound - [ catchAll="hi"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..16)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [17..18)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [18..20)::2 + MarkupLiteralAttributeValue - [18..20)::2 - [hi] + MarkupTextLiteral - [18..20)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [21..22)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [22..30)::8 - [] + MarkupTextLiteral - [22..30)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [30..39)::9 - [] + MarkupTextLiteral - [30..39)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [39..48)::9 + MarkupTextLiteral - [39..48)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly3.stree.txt index 42c964719..65212d9fe 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly3.stree.txt @@ -1,28 +1,51 @@ -Markup block - Gen - 43 - (0:0,0) - Tag block - Gen - 43 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; - Tag block - Gen - 8 - (15:0,15) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 3 - (23:0,23) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 4 - (26:0,26) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (26:0,26) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (30:0,30) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..43)::43 - [

        ] + MarkupBlock - [0..43)::43 + MarkupTagHelperElement - [0..43)::43 - p[StartTagAndEndTag] - pTagHelper + MarkupTagHelperStartTag - [0..15)::15 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [14..15)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [15..23)::8 - [] + MarkupTextLiteral - [15..23)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [23..26)::3 - [

        ] + MarkupTextLiteral - [23..26)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [26..30)::4 - [

        ] + MarkupTextLiteral - [26..30)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [30..39)::9 - [
        ] + MarkupTextLiteral - [30..39)::9 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [39..43)::4 + MarkupTextLiteral - [39..43)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly4.stree.txt index 4b53e4464..7dab44ec9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly4.stree.txt @@ -1,28 +1,51 @@ -Markup block - Gen - 55 - (0:0,0) - Tag block - Gen - 55 - (0:0,0) - strong - catchAllTagHelper - StartTagAndEndTag - ... - catchAll - DoubleQuotes - Markup span - Gen - [hi] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.Text;[hi]; - Tag block - Gen - 3 - (22:0,22) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 8 - (25:0,25) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (33:0,33) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 4 - (42:0,42) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (42:0,42) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..55)::55 - [

        ] + MarkupBlock - [0..55)::55 + MarkupTagHelperElement - [0..55)::55 - strong[StartTagAndEndTag] - catchAllTagHelper + MarkupTagHelperStartTag - [0..22)::22 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupTagHelperAttribute - [7..21)::14 - catchAll - DoubleQuotes - Unbound - [ catchAll="hi"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..16)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [17..18)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [18..20)::2 + MarkupLiteralAttributeValue - [18..20)::2 - [hi] + MarkupTextLiteral - [18..20)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [21..22)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [22..25)::3 - [

        ] + MarkupTextLiteral - [22..25)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [25..33)::8 - [] + MarkupTextLiteral - [25..33)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [33..42)::9 - [] + MarkupTextLiteral - [33..42)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [42..46)::4 - [

        ] + MarkupTextLiteral - [42..46)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [46..55)::9 + MarkupTextLiteral - [46..55)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly5.stree.txt index 2dde3b716..b9ccf7520 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly5.stree.txt @@ -1,22 +1,67 @@ -Markup block - Gen - 57 - (0:0,0) - Tag block - Gen - 57 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; - Tag block - Gen - 38 - (15:0,15) - strong - catchAllTagHelper - StartTagAndEndTag - ... - catchAll - DoubleQuotes - Markup span - Gen - [hi] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:1 - SyntaxKind.Text;[hi]; - Tag block - Gen - 3 - (37:0,37) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (37:0,37) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 4 - (40:0,40) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (40:0,40) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..57)::57 - [

        ] + MarkupBlock - [0..57)::57 + MarkupTagHelperElement - [0..57)::57 - p[StartTagAndEndTag] - pTagHelper + MarkupTagHelperStartTag - [0..15)::15 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [14..15)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperElement - [15..53)::38 - strong[StartTagAndEndTag] - catchAllTagHelper + MarkupTagHelperStartTag - [15..37)::22 + MarkupTextLiteral - [15..22)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupTagHelperAttribute - [22..36)::14 - catchAll - DoubleQuotes - Unbound - [ catchAll="hi"] + MarkupTextLiteral - [22..23)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [23..31)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [32..33)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [33..35)::2 + MarkupLiteralAttributeValue - [33..35)::2 - [hi] + MarkupTextLiteral - [33..35)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [35..36)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [36..37)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [37..40)::3 - [

        ] + MarkupTextLiteral - [37..40)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [40..44)::4 - [

        ] + MarkupTextLiteral - [40..44)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [44..53)::9 + MarkupTextLiteral - [44..53)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [53..57)::4 + MarkupTextLiteral - [53..57)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly6.stree.txt index 2ffe852d7..b0a00277a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly6.stree.txt @@ -1,22 +1,67 @@ -Markup block - Gen - 67 - (0:0,0) - Tag block - Gen - 67 - (0:0,0) - strong - catchAllTagHelper - StartTagAndEndTag - ... - catchAll - DoubleQuotes - Markup span - Gen - [hi] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.Text;[hi]; - Tag block - Gen - 36 - (22:0,22) - p - pTagHelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (32:0,32) - Tokens:1 - SyntaxKind.Text;[btn]; - Tag block - Gen - 8 - (37:0,37) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (37:0,37) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (45:0,45) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (45:0,45) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..67)::67 - [

        ] + MarkupBlock - [0..67)::67 + MarkupTagHelperElement - [0..67)::67 - strong[StartTagAndEndTag] - catchAllTagHelper + MarkupTagHelperStartTag - [0..22)::22 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupTagHelperAttribute - [7..21)::14 - catchAll - DoubleQuotes - Unbound - [ catchAll="hi"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..16)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [17..18)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [18..20)::2 + MarkupLiteralAttributeValue - [18..20)::2 - [hi] + MarkupTextLiteral - [18..20)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [21..22)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperElement - [22..58)::36 - p[StartTagAndEndTag] - pTagHelper + MarkupTagHelperStartTag - [22..37)::15 + MarkupTextLiteral - [22..24)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [24..36)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [24..25)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [25..30)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [31..32)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [32..35)::3 + MarkupLiteralAttributeValue - [32..35)::3 - [btn] + MarkupTextLiteral - [32..35)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [35..36)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [36..37)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [37..45)::8 - [] + MarkupTextLiteral - [37..45)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [45..54)::9 - [] + MarkupTextLiteral - [45..54)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [54..58)::4 + MarkupTextLiteral - [54..58)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [58..67)::9 + MarkupTextLiteral - [58..67)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly7.stree.txt index 17373b163..2488a556b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly7.stree.txt @@ -1,22 +1,67 @@ -Markup block - Gen - 45 - (0:0,0) - Tag block - Gen - 45 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; - Tag block - Gen - 26 - (15:0,15) - p - pTagHelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:1 - SyntaxKind.Text;[btn]; - Tag block - Gen - 3 - (30:0,30) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 4 - (33:0,33) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..45)::45 - [

        ] + MarkupBlock - [0..45)::45 + MarkupTagHelperElement - [0..45)::45 - p[StartTagAndEndTag] - pTagHelper + MarkupTagHelperStartTag - [0..15)::15 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [14..15)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperElement - [15..41)::26 - p[StartTagAndEndTag] - pTagHelper + MarkupTagHelperStartTag - [15..30)::15 + MarkupTextLiteral - [15..17)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [17..29)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [17..18)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [18..23)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [24..25)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [25..28)::3 + MarkupLiteralAttributeValue - [25..28)::3 - [btn] + MarkupTextLiteral - [25..28)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [28..29)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [29..30)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [30..33)::3 - [

        ] + MarkupTextLiteral - [30..33)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [33..37)::4 - [

        ] + MarkupTextLiteral - [33..37)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [37..41)::4 + MarkupTextLiteral - [37..41)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [41..45)::4 + MarkupTextLiteral - [41..45)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly8.stree.txt index 7408752c4..581ce3468 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly8.stree.txt @@ -1,22 +1,67 @@ -Markup block - Gen - 79 - (0:0,0) - Tag block - Gen - 79 - (0:0,0) - strong - catchAllTagHelper - StartTagAndEndTag - ... - catchAll - DoubleQuotes - Markup span - Gen - [hi] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.Text;[hi]; - Tag block - Gen - 48 - (22:0,22) - strong - catchAllTagHelper - StartTagAndEndTag - ... - catchAll - DoubleQuotes - Markup span - Gen - [hi] - SpanEditHandler;Accepts:Any - (40:0,40) - Tokens:1 - SyntaxKind.Text;[hi]; - Tag block - Gen - 8 - (44:0,44) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (44:0,44) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (52:0,52) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (52:0,52) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..79)::79 - [] + MarkupBlock - [0..79)::79 + MarkupTagHelperElement - [0..79)::79 - strong[StartTagAndEndTag] - catchAllTagHelper + MarkupTagHelperStartTag - [0..22)::22 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupTagHelperAttribute - [7..21)::14 - catchAll - DoubleQuotes - Unbound - [ catchAll="hi"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..16)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [17..18)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [18..20)::2 + MarkupLiteralAttributeValue - [18..20)::2 - [hi] + MarkupTextLiteral - [18..20)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [21..22)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperElement - [22..70)::48 - strong[StartTagAndEndTag] - catchAllTagHelper + MarkupTagHelperStartTag - [22..44)::22 + MarkupTextLiteral - [22..29)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupTagHelperAttribute - [29..43)::14 - catchAll - DoubleQuotes - Unbound - [ catchAll="hi"] + MarkupTextLiteral - [29..30)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [30..38)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [39..40)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [40..42)::2 + MarkupLiteralAttributeValue - [40..42)::2 - [hi] + MarkupTextLiteral - [40..42)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [42..43)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [43..44)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [44..52)::8 - [] + MarkupTextLiteral - [44..52)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [52..61)::9 - [] + MarkupTextLiteral - [52..61)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [61..70)::9 + MarkupTextLiteral - [61..70)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [70..79)::9 + MarkupTextLiteral - [70..79)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly9.stree.txt index 56fe5e103..7a7ed95c3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly9.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NestedRequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly9.stree.txt @@ -1,44 +1,89 @@ -Markup block - Gen - 59 - (0:0,0) - Tag block - Gen - 59 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; - Tag block - Gen - 3 - (15:0,15) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 3 - (18:0,18) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 26 - (21:0,21) - p - pTagHelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.Text;[btn]; - Tag block - Gen - 3 - (36:0,36) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (36:0,36) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 4 - (39:0,39) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (39:0,39) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 4 - (47:0,47) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (47:0,47) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 4 - (51:0,51) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (51:0,51) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..59)::59 - [

        ] + MarkupBlock - [0..59)::59 + MarkupTagHelperElement - [0..59)::59 - p[StartTagAndEndTag] - pTagHelper + MarkupTagHelperStartTag - [0..15)::15 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [14..15)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [15..18)::3 - [

        ] + MarkupTextLiteral - [15..18)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [18..21)::3 - [

        ] + MarkupTextLiteral - [18..21)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [21..47)::26 - p[StartTagAndEndTag] - pTagHelper + MarkupTagHelperStartTag - [21..36)::15 + MarkupTextLiteral - [21..23)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [23..35)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [23..24)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [24..29)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [30..31)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [31..34)::3 + MarkupLiteralAttributeValue - [31..34)::3 - [btn] + MarkupTextLiteral - [31..34)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [34..35)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [35..36)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [36..39)::3 - [

        ] + MarkupTextLiteral - [36..39)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [39..43)::4 - [

        ] + MarkupTextLiteral - [39..43)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [43..47)::4 + MarkupTextLiteral - [43..47)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [47..51)::4 - [

        ] + MarkupTextLiteral - [47..51)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [51..55)::4 - [

        ] + MarkupTextLiteral - [51..55)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [55..59)::4 + MarkupTextLiteral - [55..59)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NonTagHelperChild_UnderstandsTagHelperPrefixAndAllowedChildren.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NonTagHelperChild_UnderstandsTagHelperPrefixAndAllowedChildren.stree.txt index 1323312f7..fb55ceeab 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NonTagHelperChild_UnderstandsTagHelperPrefixAndAllowedChildren.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/NonTagHelperChild_UnderstandsTagHelperPrefixAndAllowedChildren.stree.txt @@ -1,14 +1,25 @@ -Markup block - Gen - 30 - (0:0,0) - Tag block - Gen - 30 - (0:0,0) - th:p - PTagHelper - StartTagAndEndTag - ... - Tag block - Gen - 8 - (6:0,6) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (14:0,14) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..30)::30 - [] + MarkupBlock - [0..30)::30 + MarkupTagHelperElement - [0..30)::30 - th:p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..6)::6 + MarkupTextLiteral - [0..6)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:p]; + CloseAngle;[>]; + MarkupTagBlock - [6..14)::8 - [] + MarkupTextLiteral - [6..14)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [14..23)::9 - [] + MarkupTextLiteral - [14..23)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [23..30)::7 + MarkupTextLiteral - [23..30)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[th:p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RecoversWhenRequiredAttributeMismatchAndRestrictedChildren.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RecoversWhenRequiredAttributeMismatchAndRestrictedChildren.stree.txt index a2d109fe4..2b838f60e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RecoversWhenRequiredAttributeMismatchAndRestrictedChildren.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RecoversWhenRequiredAttributeMismatchAndRestrictedChildren.stree.txt @@ -1,15 +1,31 @@ -Markup block - Gen - 43 - (0:0,0) - Tag block - Gen - 43 - (0:0,0) - strong - StrongTagHelper - StartTagAndEndTag - ... - required - Minimized - Tag block - Gen - 8 - (17:0,17) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (25:0,25) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..43)::43 - [] + MarkupBlock - [0..43)::43 + MarkupTagHelperElement - [0..43)::43 - strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [0..17)::17 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupMinimizedTagHelperAttribute - [7..16)::9 - required - Minimized - Unbound - [ required] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..16)::8 - [required] - Gen - SpanEditHandler;Accepts:Any + Text;[required]; + MarkupTextLiteral - [16..17)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [17..25)::8 - [] + MarkupTextLiteral - [17..25)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [25..34)::9 - [] + MarkupTextLiteral - [25..34)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [34..43)::9 + MarkupTextLiteral - [34..43)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly1.stree.txt index 596d68d83..eab1ac90d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly1.stree.txt @@ -1,5 +1,6 @@ -Markup block - Gen - 2 - (0:0,0) - Tag block - Gen - 2 - (0:0,0) - Markup span - Gen - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly10.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly10.stree.txt index 4d2fec2aa..798f824da 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly10.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly10.stree.txt @@ -1,9 +1,42 @@ -Markup block - Gen - 35 - (0:0,0) - Tag block - Gen - 35 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        - [hi] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[hi]; - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..35)::35 - [

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..19)::17 - notRequired - DoubleQuotes - Unbound - [ notRequired="hi"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..14)::11 - [notRequired] - Gen - SpanEditHandler;Accepts:Any + Text;[notRequired]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [16..18)::2 + MarkupLiteralAttributeValue - [16..18)::2 - [hi] + MarkupTextLiteral - [16..18)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [18..19)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [19..31)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [19..20)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [20..25)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [26..27)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [27..30)::3 + MarkupLiteralAttributeValue - [27..30)::3 - [btn] + MarkupTextLiteral - [27..30)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [30..31)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [31..32)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperEndTag - [32..35)::3 + MarkupTextLiteral - [32..35)::3 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly2.stree.txt index 4c1acbe66..503cfd359 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly2.stree.txt @@ -1,6 +1,21 @@ -Markup block - Gen - 14 - (0:0,0) - Tag block - Gen - 14 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..14)::14 - [

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly3.stree.txt index 053556f3a..fe9f393e9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly3.stree.txt @@ -1,9 +1,35 @@ -Markup block - Gen - 31 - (0:0,0) - Tag block - Gen - 31 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        - [hi] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[hi]; - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..31)::31 - [

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..19)::17 - notRequired - DoubleQuotes - Unbound - [ notRequired="hi"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..14)::11 - [notRequired] - Gen - SpanEditHandler;Accepts:Any + Text;[notRequired]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [16..18)::2 + MarkupLiteralAttributeValue - [16..18)::2 - [hi] + MarkupTextLiteral - [16..18)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [18..19)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [19..31)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [19..20)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [20..25)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [26..27)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [27..30)::3 + MarkupLiteralAttributeValue - [27..30)::3 - [btn] + MarkupTextLiteral - [27..30)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [30..31)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly4.stree.txt index e8a98d3e3..c5ba65872 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly4.stree.txt @@ -1,11 +1,12 @@ -Markup block - Gen - 6 - (0:0,0) - Tag block - Gen - 3 - (0:0,0) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 3 - (3:0,3) - Markup span - Gen - [] + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..6)::3 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly5.stree.txt index 68684ef95..79471e244 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly5.stree.txt @@ -1,6 +1,28 @@ -Markup block - Gen - 18 - (0:0,0) - Tag block - Gen - 18 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        ...

        - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..18)::18 - [

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [14..15)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [15..18)::3 + MarkupTextLiteral - [15..18)::3 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly6.stree.txt index 0d2c7f935..f462c67c7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly6.stree.txt @@ -1,9 +1,42 @@ -Markup block - Gen - 35 - (0:0,0) - Tag block - Gen - 35 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        ...

        - [hi] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[hi]; - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..35)::35 - [

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..19)::17 - notRequired - DoubleQuotes - Unbound - [ notRequired="hi"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..14)::11 - [notRequired] - Gen - SpanEditHandler;Accepts:Any + Text;[notRequired]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [16..18)::2 + MarkupLiteralAttributeValue - [16..18)::2 - [hi] + MarkupTextLiteral - [16..18)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [18..19)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [19..31)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [19..20)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [20..25)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [26..27)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [27..30)::3 + MarkupLiteralAttributeValue - [27..30)::3 - [btn] + MarkupTextLiteral - [27..30)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [30..31)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [31..32)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagHelperEndTag - [32..35)::3 + MarkupTextLiteral - [32..35)::3 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly7.stree.txt index ace79e307..31df01968 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly7.stree.txt @@ -1,11 +1,28 @@ -Markup block - Gen - 18 - (0:0,0) - Tag block - Gen - 18 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; - Tag block - Gen - 3 - (15:0,15) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..18)::18 - [

        ] + MarkupBlock - [0..18)::18 + MarkupTagHelperElement - [0..18)::18 - p[StartTagAndEndTag] - pTagHelper + MarkupTagHelperStartTag - [0..15)::15 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [15..18)::3 - [

        ] + MarkupTextLiteral - [15..18)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly8.stree.txt index 2cf979b00..b52a99bf8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly8.stree.txt @@ -1,14 +1,42 @@ -Markup block - Gen - 35 - (0:0,0) - Tag block - Gen - 35 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        - [hi] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[hi]; - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:1 - SyntaxKind.Text;[btn]; - Tag block - Gen - 3 - (32:0,32) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (32:0,32) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..35)::35 - [

        ] + MarkupBlock - [0..35)::35 + MarkupTagHelperElement - [0..35)::35 - p[StartTagAndEndTag] - pTagHelper + MarkupTagHelperStartTag - [0..32)::32 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..19)::17 - notRequired - DoubleQuotes - Unbound - [ notRequired="hi"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..14)::11 - [notRequired] - Gen - SpanEditHandler;Accepts:Any + Text;[notRequired]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [16..18)::2 + MarkupLiteralAttributeValue - [16..18)::2 - [hi] + MarkupTextLiteral - [16..18)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [18..19)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [19..31)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [19..20)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [20..25)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [26..27)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [27..30)::3 + MarkupLiteralAttributeValue - [27..30)::3 - [btn] + MarkupTextLiteral - [27..30)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [30..31)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [31..32)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [32..35)::3 - [

        ] + MarkupTextLiteral - [32..35)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly9.stree.txt index 0fa243a50..965621131 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly9.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateMalformedTagHelperBlocksCorrectly9.stree.txt @@ -1,6 +1,28 @@ -Markup block - Gen - 18 - (0:0,0) - Tag block - Gen - 18 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..18)::18 - [

        - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperEndTag - [15..18)::3 + MarkupTextLiteral - [15..18)::3 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly1.stree.txt index 0b21e2db5..113a5935e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly1.stree.txt @@ -1,8 +1,9 @@ -Markup block - Gen - 5 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:5 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..5)::5 - [

        ] + MarkupBlock - [0..5)::5 + MarkupTagBlock - [0..5)::5 - [

        ] + MarkupTextLiteral - [0..5)::5 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly10.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly10.stree.txt index 1a20af44f..f32b50574 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly10.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly10.stree.txt @@ -1,6 +1,25 @@ -Markup block - Gen - 24 - (0:0,0) - Tag block - Gen - 24 - (0:0,0) - strong - catchAllTagHelper - SelfClosing - - catchAll - DoubleQuotes - Markup span - Gen - [hi] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.Text;[hi]; +RazorDocument - [0..24)::24 - [] + MarkupBlock - [0..24)::24 + MarkupTagHelperElement - [0..24)::24 - strong[SelfClosing] - catchAllTagHelper + MarkupTagHelperStartTag - [0..24)::24 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupTagHelperAttribute - [7..21)::14 - catchAll - DoubleQuotes - Unbound - [ catchAll="hi"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..16)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [17..18)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [18..20)::2 + MarkupLiteralAttributeValue - [18..20)::2 - [hi] + MarkupTextLiteral - [18..20)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [21..24)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly11.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly11.stree.txt index f26dbbcc7..37b118482 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly11.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly11.stree.txt @@ -1,13 +1,34 @@ -Markup block - Gen - 35 - (0:0,0) - Tag block - Gen - 35 - (0:0,0) - strong - catchAllTagHelper - SelfClosing - - catchAll - DoubleQuotes - Markup block - Gen - 13 - (18:0,18) - Markup block - Gen - 13 - (18:0,18) - Expression block - Gen - 13 - (18:0,18) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (18:0,18) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (19:0,19) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; +RazorDocument - [0..35)::35 - [] + MarkupBlock - [0..35)::35 + MarkupTagHelperElement - [0..35)::35 - strong[SelfClosing] - catchAllTagHelper + MarkupTagHelperStartTag - [0..35)::35 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupTagHelperAttribute - [7..32)::25 - catchAll - DoubleQuotes - Unbound - [ catchAll="@DateTime.Now"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..16)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [17..18)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [18..31)::13 + MarkupDynamicAttributeValue - [18..31)::13 - [@DateTime.Now] + GenericBlock - [18..31)::13 + CSharpCodeBlock - [18..31)::13 + CSharpImplicitExpression - [18..31)::13 + CSharpTransition - [18..19)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [19..31)::12 + CSharpCodeBlock - [19..31)::12 + CSharpExpressionLiteral - [19..31)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [31..32)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [32..35)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly12.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly12.stree.txt index 49fa4a94f..8f5dcd54c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly12.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly12.stree.txt @@ -1,13 +1,35 @@ -Markup block - Gen - 47 - (0:0,0) - Tag block - Gen - 47 - (0:0,0) - strong - catchAllTagHelper - StartTagAndEndTag - ... - catchAll - DoubleQuotes - Markup span - Gen - [hi] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.Text;[hi]; - SyntaxKind.HtmlTextLiteral - [words and spaces] - [22..38) - FullWidth: 16 - Slots: 1 - SyntaxKind.List - [words and spaces] - [22..38) - FullWidth: 16 - Slots: 5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; +RazorDocument - [0..47)::47 - [words and spaces] + MarkupBlock - [0..47)::47 + MarkupTagHelperElement - [0..47)::47 - strong[StartTagAndEndTag] - catchAllTagHelper + MarkupTagHelperStartTag - [0..22)::22 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupTagHelperAttribute - [7..21)::14 - catchAll - DoubleQuotes - Unbound - [ catchAll="hi"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..16)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [17..18)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [18..20)::2 + MarkupLiteralAttributeValue - [18..20)::2 - [hi] + MarkupTextLiteral - [18..20)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [21..22)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [22..38)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagHelperEndTag - [38..47)::9 + MarkupTextLiteral - [38..47)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly13.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly13.stree.txt index d57a5fe19..ecbcdd1d8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly13.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly13.stree.txt @@ -1,20 +1,44 @@ -Markup block - Gen - 58 - (0:0,0) - Tag block - Gen - 58 - (0:0,0) - strong - catchAllTagHelper - StartTagAndEndTag - ... - catchAll - DoubleQuotes - Markup block - Gen - 13 - (18:0,18) - Markup block - Gen - 13 - (18:0,18) - Expression block - Gen - 13 - (18:0,18) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (18:0,18) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (19:0,19) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.HtmlTextLiteral - [words and spaces] - [33..49) - FullWidth: 16 - Slots: 1 - SyntaxKind.List - [words and spaces] - [33..49) - FullWidth: 16 - Slots: 5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; +RazorDocument - [0..58)::58 - [words and spaces] + MarkupBlock - [0..58)::58 + MarkupTagHelperElement - [0..58)::58 - strong[StartTagAndEndTag] - catchAllTagHelper + MarkupTagHelperStartTag - [0..33)::33 + MarkupTextLiteral - [0..7)::7 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + MarkupTagHelperAttribute - [7..32)::25 - catchAll - DoubleQuotes - Unbound - [ catchAll="@DateTime.Now"] + MarkupTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [8..16)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [17..18)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [18..31)::13 + MarkupDynamicAttributeValue - [18..31)::13 - [@DateTime.Now] + GenericBlock - [18..31)::13 + CSharpCodeBlock - [18..31)::13 + CSharpImplicitExpression - [18..31)::13 + CSharpTransition - [18..19)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [19..31)::12 + CSharpCodeBlock - [19..31)::12 + CSharpExpressionLiteral - [19..31)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [31..32)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [32..33)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [33..49)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagHelperEndTag - [49..58)::9 + MarkupTextLiteral - [49..58)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly14.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly14.stree.txt index 1a8f7e684..8d64367f8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly14.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly14.stree.txt @@ -1,19 +1,24 @@ -Markup block - Gen - 19 - (0:0,0) - Tag block - Gen - 19 - (0:0,0) - Markup span - Gen - [ - 12 - (4:0,4) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [ />] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..19)::19 - [

        ] + MarkupBlock - [0..19)::19 + MarkupTagBlock - [0..19)::19 - [
        ] + MarkupTextLiteral - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + MarkupAttributeBlock - [4..16)::12 - [ class="btn"] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [12..15)::3 + MarkupLiteralAttributeValue - [12..15)::3 - [btn] + MarkupTextLiteral - [12..15)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [16..19)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly15.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly15.stree.txt index a2e01511c..0c736f686 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly15.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly15.stree.txt @@ -1,23 +1,28 @@ -Markup block - Gen - 23 - (0:0,0) - Tag block - Gen - 17 - (0:0,0) - Markup span - Gen - [ - 12 - (4:0,4) - Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.Text;[btn]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (17:0,17) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..23)::23 - [
        ] + MarkupBlock - [0..23)::23 + MarkupTagBlock - [0..17)::17 - [
        ] + MarkupTextLiteral - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + MarkupAttributeBlock - [4..16)::12 - [ class="btn"] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + GenericBlock - [12..15)::3 + MarkupLiteralAttributeValue - [12..15)::3 - [btn] + MarkupTextLiteral - [12..15)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [16..17)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTagBlock - [17..23)::6 - [
        ] + MarkupTextLiteral - [17..23)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly16.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly16.stree.txt index 2785f615d..371ac6d99 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly16.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly16.stree.txt @@ -1,9 +1,39 @@ -Markup block - Gen - 33 - (0:0,0) - Tag block - Gen - 33 - (0:0,0) - p - pTagHelper - SelfClosing -

        - notRequired - DoubleQuotes - Markup span - Gen - [a] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[a]; - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (26:0,26) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..33)::33 - [

        ] + MarkupBlock - [0..33)::33 + MarkupTagHelperElement - [0..33)::33 - p[SelfClosing] - pTagHelper + MarkupTagHelperStartTag - [0..33)::33 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..18)::16 - notRequired - DoubleQuotes - Unbound - [ notRequired="a"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..14)::11 - [notRequired] - Gen - SpanEditHandler;Accepts:Any + Text;[notRequired]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [16..17)::1 + MarkupLiteralAttributeValue - [16..17)::1 - [a] + MarkupTextLiteral - [16..17)::1 - [a] - Gen - SpanEditHandler;Accepts:Any + Text;[a]; + MarkupTextLiteral - [17..18)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [18..30)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [18..19)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [19..24)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [25..26)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [26..29)::3 + MarkupLiteralAttributeValue - [26..29)::3 - [btn] + MarkupTextLiteral - [26..29)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [29..30)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [30..33)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly17.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly17.stree.txt index c88ea81e7..b157fddec 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly17.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly17.stree.txt @@ -1,16 +1,48 @@ -Markup block - Gen - 45 - (0:0,0) - Tag block - Gen - 45 - (0:0,0) - p - pTagHelper - SelfClosing -

        - notRequired - DoubleQuotes - Markup block - Gen - 13 - (16:0,16) - Markup block - Gen - 13 - (16:0,16) - Expression block - Gen - 13 - (16:0,16) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (17:0,17) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (38:0,38) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..45)::45 - [

        ] + MarkupBlock - [0..45)::45 + MarkupTagHelperElement - [0..45)::45 - p[SelfClosing] - pTagHelper + MarkupTagHelperStartTag - [0..45)::45 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..30)::28 - notRequired - DoubleQuotes - Unbound - [ notRequired="@DateTime.Now"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..14)::11 - [notRequired] - Gen - SpanEditHandler;Accepts:Any + Text;[notRequired]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [16..29)::13 + MarkupDynamicAttributeValue - [16..29)::13 - [@DateTime.Now] + GenericBlock - [16..29)::13 + CSharpCodeBlock - [16..29)::13 + CSharpImplicitExpression - [16..29)::13 + CSharpTransition - [16..17)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [17..29)::12 + CSharpCodeBlock - [17..29)::12 + CSharpExpressionLiteral - [17..29)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [29..30)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [30..42)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [30..31)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [31..36)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [37..38)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [38..41)::3 + MarkupLiteralAttributeValue - [38..41)::3 - [btn] + MarkupTextLiteral - [38..41)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [41..42)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [42..45)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly18.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly18.stree.txt index 444e7dfa6..1e173c05b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly18.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly18.stree.txt @@ -1,16 +1,49 @@ -Markup block - Gen - 51 - (0:0,0) - Tag block - Gen - 51 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        ...

        - notRequired - DoubleQuotes - Markup span - Gen - [a] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Text;[a]; - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (26:0,26) - Tokens:1 - SyntaxKind.Text;[btn]; - SyntaxKind.HtmlTextLiteral - [words and spaces] - [31..47) - FullWidth: 16 - Slots: 1 - SyntaxKind.List - [words and spaces] - [31..47) - FullWidth: 16 - Slots: 5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; +RazorDocument - [0..51)::51 - [

        words and spaces

        ] + MarkupBlock - [0..51)::51 + MarkupTagHelperElement - [0..51)::51 - p[StartTagAndEndTag] - pTagHelper + MarkupTagHelperStartTag - [0..31)::31 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..18)::16 - notRequired - DoubleQuotes - Unbound - [ notRequired="a"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..14)::11 - [notRequired] - Gen - SpanEditHandler;Accepts:Any + Text;[notRequired]; + Equals;[=]; + MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [16..17)::1 + MarkupLiteralAttributeValue - [16..17)::1 - [a] + MarkupTextLiteral - [16..17)::1 - [a] - Gen - SpanEditHandler;Accepts:Any + Text;[a]; + MarkupTextLiteral - [17..18)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [18..30)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [18..19)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [19..24)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [25..26)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [26..29)::3 + MarkupLiteralAttributeValue - [26..29)::3 - [btn] + MarkupTextLiteral - [26..29)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [29..30)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [30..31)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [31..47)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagHelperEndTag - [47..51)::4 + MarkupTextLiteral - [47..51)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly19.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly19.stree.txt index 66b5a6a45..d41629a50 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly19.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly19.stree.txt @@ -1,8 +1,36 @@ -Markup block - Gen - 28 - (0:0,0) - Tag block - Gen - 28 - (0:0,0) - div - divTagHelper - SelfClosing -
        - style - DoubleQuotes - Markup block - Gen - 0 - (0:0,0) - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..28)::28 - [
        ] + MarkupBlock - [0..28)::28 + MarkupTagHelperElement - [0..28)::28 - div[SelfClosing] - divTagHelper + MarkupTagHelperStartTag - [0..28)::28 + MarkupTextLiteral - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + MarkupTagHelperAttribute - [4..13)::9 - style - DoubleQuotes - Unbound - [ style=""] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [12..12)::0 + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [13..25)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [14..19)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [21..24)::3 + MarkupLiteralAttributeValue - [21..24)::3 - [btn] + MarkupTextLiteral - [21..24)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [24..25)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [25..28)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly2.stree.txt index 5c14e6653..8a2d870d9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly2.stree.txt @@ -1,12 +1,13 @@ -Markup block - Gen - 7 - (0:0,0) - Tag block - Gen - 3 - (0:0,0) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 4 - (3:0,3) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..7)::7 - [

        ] + MarkupBlock - [0..7)::7 + MarkupTagBlock - [0..3)::3 - [

        ] + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..7)::4 - [

        ] + MarkupTextLiteral - [3..7)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly20.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly20.stree.txt index c3664a510..cfebeb7fc 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly20.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly20.stree.txt @@ -1,16 +1,48 @@ -Markup block - Gen - 41 - (0:0,0) - Tag block - Gen - 41 - (0:0,0) - div - divTagHelper - SelfClosing -
        - style - DoubleQuotes - Markup block - Gen - 13 - (12:0,12) - Markup block - Gen - 13 - (12:0,12) - Expression block - Gen - 13 - (12:0,12) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (13:0,13) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..41)::41 - [
        ] + MarkupBlock - [0..41)::41 + MarkupTagHelperElement - [0..41)::41 - div[SelfClosing] - divTagHelper + MarkupTagHelperStartTag - [0..41)::41 + MarkupTextLiteral - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + MarkupTagHelperAttribute - [4..26)::22 - style - DoubleQuotes - Unbound - [ style="@DateTime.Now"] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [12..25)::13 + MarkupDynamicAttributeValue - [12..25)::13 - [@DateTime.Now] + GenericBlock - [12..25)::13 + CSharpCodeBlock - [12..25)::13 + CSharpImplicitExpression - [12..25)::13 + CSharpTransition - [12..13)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [13..25)::12 + CSharpCodeBlock - [13..25)::12 + CSharpExpressionLiteral - [13..25)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [25..26)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [26..38)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [26..27)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [27..32)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [33..34)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [34..37)::3 + MarkupLiteralAttributeValue - [34..37)::3 - [btn] + MarkupTextLiteral - [34..37)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [37..38)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [38..41)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly21.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly21.stree.txt index 9b5a9b5c5..051cad010 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly21.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly21.stree.txt @@ -1,15 +1,46 @@ -Markup block - Gen - 48 - (0:0,0) - Tag block - Gen - 48 - (0:0,0) - div - divTagHelper - StartTagAndEndTag -
        ...
        - style - DoubleQuotes - Markup block - Gen - 0 - (0:0,0) - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.Text;[btn]; - SyntaxKind.HtmlTextLiteral - [words and spaces] - [26..42) - FullWidth: 16 - Slots: 1 - SyntaxKind.List - [words and spaces] - [26..42) - FullWidth: 16 - Slots: 5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; +RazorDocument - [0..48)::48 - [
        words and spaces
        ] + MarkupBlock - [0..48)::48 + MarkupTagHelperElement - [0..48)::48 - div[StartTagAndEndTag] - divTagHelper + MarkupTagHelperStartTag - [0..26)::26 + MarkupTextLiteral - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + MarkupTagHelperAttribute - [4..13)::9 - style - DoubleQuotes - Unbound - [ style=""] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [12..12)::0 + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [13..25)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [14..19)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [21..24)::3 + MarkupLiteralAttributeValue - [21..24)::3 - [btn] + MarkupTextLiteral - [21..24)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [24..25)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [25..26)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [26..42)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagHelperEndTag - [42..48)::6 + MarkupTextLiteral - [42..48)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly22.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly22.stree.txt index 242d9d6cd..7e0cf0854 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly22.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly22.stree.txt @@ -1,30 +1,67 @@ -Markup block - Gen - 71 - (0:0,0) - Tag block - Gen - 71 - (0:0,0) - div - divTagHelper - StartTagAndEndTag -
        ...
        - style - DoubleQuotes - Markup block - Gen - 13 - (12:0,12) - Markup block - Gen - 13 - (12:0,12) - Expression block - Gen - 13 - (12:0,12) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (13:0,13) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - class - DoubleQuotes - Markup block - Gen - 13 - (34:0,34) - Markup block - Gen - 13 - (34:0,34) - Expression block - Gen - 13 - (34:0,34) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (34:0,34) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (35:0,35) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.HtmlTextLiteral - [words and spaces] - [49..65) - FullWidth: 16 - Slots: 1 - SyntaxKind.List - [words and spaces] - [49..65) - FullWidth: 16 - Slots: 5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; +RazorDocument - [0..71)::71 - [
        words and spaces
        ] + MarkupBlock - [0..71)::71 + MarkupTagHelperElement - [0..71)::71 - div[StartTagAndEndTag] - divTagHelper + MarkupTagHelperStartTag - [0..49)::49 + MarkupTextLiteral - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + MarkupTagHelperAttribute - [4..26)::22 - style - DoubleQuotes - Unbound - [ style="@DateTime.Now"] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [12..25)::13 + MarkupDynamicAttributeValue - [12..25)::13 - [@DateTime.Now] + GenericBlock - [12..25)::13 + CSharpCodeBlock - [12..25)::13 + CSharpImplicitExpression - [12..25)::13 + CSharpTransition - [12..13)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [13..25)::12 + CSharpCodeBlock - [13..25)::12 + CSharpExpressionLiteral - [13..25)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [25..26)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [26..48)::22 - class - DoubleQuotes - Unbound - [ class="@DateTime.Now"] + MarkupTextLiteral - [26..27)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [27..32)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [33..34)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [34..47)::13 + MarkupDynamicAttributeValue - [34..47)::13 - [@DateTime.Now] + GenericBlock - [34..47)::13 + CSharpCodeBlock - [34..47)::13 + CSharpImplicitExpression - [34..47)::13 + CSharpTransition - [34..35)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [35..47)::12 + CSharpCodeBlock - [35..47)::12 + CSharpExpressionLiteral - [35..47)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [47..48)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [48..49)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [49..65)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagHelperEndTag - [65..71)::6 + MarkupTextLiteral - [65..71)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly23.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly23.stree.txt index ae9b6d88a..6c4d979d1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly23.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly23.stree.txt @@ -1,25 +1,57 @@ -Markup block - Gen - 63 - (0:0,0) - Tag block - Gen - 63 - (0:0,0) - div - divTagHelper - StartTagAndEndTag -
        ...
        - style - DoubleQuotes - Markup block - Gen - 0 - (0:0,0) - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.Text;[btn]; - SyntaxKind.HtmlTextLiteral - [words] - [26..31) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[words]; - Tag block - Gen - 8 - (31:0,31) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [and] - [39..42) - FullWidth: 3 - Slots: 1 - SyntaxKind.Text;[and]; - Tag block - Gen - 9 - (42:0,42) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (42:0,42) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [spaces] - [51..57) - FullWidth: 6 - Slots: 1 - SyntaxKind.Text;[spaces]; +RazorDocument - [0..63)::63 - [
        wordsandspaces
        ] + MarkupBlock - [0..63)::63 + MarkupTagHelperElement - [0..63)::63 - div[StartTagAndEndTag] - divTagHelper + MarkupTagHelperStartTag - [0..26)::26 + MarkupTextLiteral - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + MarkupTagHelperAttribute - [4..13)::9 - style - DoubleQuotes - Unbound - [ style=""] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [12..12)::0 + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [13..25)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [14..19)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [21..24)::3 + MarkupLiteralAttributeValue - [21..24)::3 - [btn] + MarkupTextLiteral - [21..24)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [24..25)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [25..26)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [26..31)::5 - [words] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + MarkupTagBlock - [31..39)::8 - [] + MarkupTextLiteral - [31..39)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [39..42)::3 - [and] - Gen - SpanEditHandler;Accepts:Any + Text;[and]; + MarkupTagBlock - [42..51)::9 - [] + MarkupTextLiteral - [42..51)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [51..57)::6 - [spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[spaces]; + MarkupTagHelperEndTag - [57..63)::6 + MarkupTextLiteral - [57..63)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly24.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly24.stree.txt index 190c850ed..0e31631ea 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly24.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly24.stree.txt @@ -1,9 +1,39 @@ -Markup block - Gen - 31 - (0:0,0) - Tag block - Gen - 31 - (0:0,0) - p - pTagHelper - catchAllTagHelper - SelfClosing -

        - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; - catchAll - DoubleQuotes - Markup span - Gen - [hi] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:1 - SyntaxKind.Text;[hi]; +RazorDocument - [0..31)::31 - [

        ] + MarkupBlock - [0..31)::31 + MarkupTagHelperElement - [0..31)::31 - p[SelfClosing] - pTagHelper - catchAllTagHelper + MarkupTagHelperStartTag - [0..31)::31 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [14..28)::14 - catchAll - DoubleQuotes - Unbound - [ catchAll="hi"] + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [15..23)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [24..25)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [25..27)::2 + MarkupLiteralAttributeValue - [25..27)::2 - [hi] + MarkupTextLiteral - [25..27)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [27..28)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [28..31)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly25.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly25.stree.txt index 1cda25bc2..fb72d5009 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly25.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly25.stree.txt @@ -1,16 +1,49 @@ -Markup block - Gen - 49 - (0:0,0) - Tag block - Gen - 49 - (0:0,0) - p - pTagHelper - catchAllTagHelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; - catchAll - DoubleQuotes - Markup span - Gen - [hi] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:1 - SyntaxKind.Text;[hi]; - SyntaxKind.HtmlTextLiteral - [words and spaces] - [29..45) - FullWidth: 16 - Slots: 1 - SyntaxKind.List - [words and spaces] - [29..45) - FullWidth: 16 - Slots: 5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; +RazorDocument - [0..49)::49 - [

        words and spaces

        ] + MarkupBlock - [0..49)::49 + MarkupTagHelperElement - [0..49)::49 - p[StartTagAndEndTag] - pTagHelper - catchAllTagHelper + MarkupTagHelperStartTag - [0..29)::29 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [14..28)::14 - catchAll - DoubleQuotes - Unbound - [ catchAll="hi"] + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [15..23)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [24..25)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [25..27)::2 + MarkupLiteralAttributeValue - [25..27)::2 - [hi] + MarkupTextLiteral - [25..27)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [27..28)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [28..29)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [29..45)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagHelperEndTag - [45..49)::4 + MarkupTextLiteral - [45..49)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly26.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly26.stree.txt index c8516a833..dbece6c5d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly26.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly26.stree.txt @@ -1,11 +1,50 @@ -Markup block - Gen - 42 - (0:0,0) - Tag block - Gen - 42 - (0:0,0) - div - divTagHelper - catchAllTagHelper - SelfClosing -
        - style - DoubleQuotes - Markup block - Gen - 0 - (0:0,0) - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.Text;[btn]; - catchAll - DoubleQuotes - Markup span - Gen - [hi] - SpanEditHandler;Accepts:Any - (36:0,36) - Tokens:1 - SyntaxKind.Text;[hi]; +RazorDocument - [0..42)::42 - [
        ] + MarkupBlock - [0..42)::42 + MarkupTagHelperElement - [0..42)::42 - div[SelfClosing] - divTagHelper - catchAllTagHelper + MarkupTagHelperStartTag - [0..42)::42 + MarkupTextLiteral - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + MarkupTagHelperAttribute - [4..13)::9 - style - DoubleQuotes - Unbound - [ style=""] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [12..12)::0 + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [13..25)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [14..19)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [21..24)::3 + MarkupLiteralAttributeValue - [21..24)::3 - [btn] + MarkupTextLiteral - [21..24)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [24..25)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [25..39)::14 - catchAll - DoubleQuotes - Unbound - [ catchAll="hi"] + MarkupTextLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [26..34)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [35..36)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [36..38)::2 + MarkupLiteralAttributeValue - [36..38)::2 - [hi] + MarkupTextLiteral - [36..38)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [38..39)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [39..42)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly27.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly27.stree.txt index e31ee9f40..7fb594397 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly27.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly27.stree.txt @@ -1,18 +1,61 @@ -Markup block - Gen - 63 - (0:0,0) - Tag block - Gen - 63 - (0:0,0) - div - divTagHelper - catchAllTagHelper - StartTagAndEndTag -
        ...
        - style - DoubleQuotes - Markup block - Gen - 0 - (0:0,0) - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.Text;[btn]; - catchAll - DoubleQuotes - Markup span - Gen - [hi] - SpanEditHandler;Accepts:Any - (36:0,36) - Tokens:1 - SyntaxKind.Text;[hi]; - SyntaxKind.HtmlTextLiteral - [words and spaces] - [41..57) - FullWidth: 16 - Slots: 1 - SyntaxKind.List - [words and spaces] - [41..57) - FullWidth: 16 - Slots: 5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; +RazorDocument - [0..63)::63 - [
        words and spaces
        ] + MarkupBlock - [0..63)::63 + MarkupTagHelperElement - [0..63)::63 - div[StartTagAndEndTag] - divTagHelper - catchAllTagHelper + MarkupTagHelperStartTag - [0..41)::41 + MarkupTextLiteral - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + MarkupTagHelperAttribute - [4..13)::9 - style - DoubleQuotes - Unbound - [ style=""] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [12..12)::0 + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [13..25)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [14..19)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [21..24)::3 + MarkupLiteralAttributeValue - [21..24)::3 - [btn] + MarkupTextLiteral - [21..24)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [24..25)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [25..39)::14 - catchAll - DoubleQuotes - Unbound - [ catchAll="hi"] + MarkupTextLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [26..34)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [35..36)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [36..38)::2 + MarkupLiteralAttributeValue - [36..38)::2 - [hi] + MarkupTextLiteral - [36..38)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [38..39)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [39..41)::2 - [ >] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTextLiteral - [41..57)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagHelperEndTag - [57..63)::6 + MarkupTextLiteral - [57..63)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly28.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly28.stree.txt index 4024d4f52..3551b3d4f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly28.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly28.stree.txt @@ -1,24 +1,66 @@ -Markup block - Gen - 65 - (0:0,0) - Tag block - Gen - 65 - (0:0,0) - div - divTagHelper - catchAllTagHelper - StartTagAndEndTag -
        ...
        - style - DoubleQuotes - Markup block - Gen - 0 - (0:0,0) - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.Text;[btn]; - catchAll - DoubleQuotes - Markup block - Gen - 4 - (36:0,36) - Markup block - Gen - 2 - (36:0,36) - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (36:0,36) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (37:0,37) - Tokens:1 - SyntaxKind.Transition;[@]; - Markup span - Gen - [hi] - SpanEditHandler;Accepts:Any - (38:0,38) - Tokens:1 - SyntaxKind.Text;[hi]; - SyntaxKind.HtmlTextLiteral - [words and spaces] - [43..59) - FullWidth: 16 - Slots: 1 - SyntaxKind.List - [words and spaces] - [43..59) - FullWidth: 16 - Slots: 5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; +RazorDocument - [0..65)::65 - [
        words and spaces
        ] + MarkupBlock - [0..65)::65 + MarkupTagHelperElement - [0..65)::65 - div[StartTagAndEndTag] - divTagHelper - catchAllTagHelper + MarkupTagHelperStartTag - [0..43)::43 + MarkupTextLiteral - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + MarkupTagHelperAttribute - [4..13)::9 - style - DoubleQuotes - Unbound - [ style=""] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [12..12)::0 + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [13..25)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [14..19)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [21..24)::3 + MarkupLiteralAttributeValue - [21..24)::3 - [btn] + MarkupTextLiteral - [21..24)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [24..25)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [25..41)::16 - catchAll - DoubleQuotes - Unbound - [ catchAll="@@hi"] + MarkupTextLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [26..34)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [35..36)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [36..40)::4 + MarkupBlock - [36..38)::2 + MarkupTextLiteral - [36..37)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupEphemeralTextLiteral - [37..38)::1 - [@] - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + MarkupLiteralAttributeValue - [38..40)::2 - [hi] + MarkupTextLiteral - [38..40)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [40..41)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [41..43)::2 - [ >] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTextLiteral - [43..59)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagHelperEndTag - [59..65)::6 + MarkupTextLiteral - [59..65)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly29.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly29.stree.txt index ec88fd192..3fc4b0d72 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly29.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly29.stree.txt @@ -1,40 +1,91 @@ -Markup block - Gen - 97 - (0:0,0) - Tag block - Gen - 97 - (0:0,0) - div - divTagHelper - catchAllTagHelper - StartTagAndEndTag -
        ...
        - style - DoubleQuotes - Markup block - Gen - 13 - (12:0,12) - Markup block - Gen - 13 - (12:0,12) - Expression block - Gen - 13 - (12:0,12) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (13:0,13) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - class - DoubleQuotes - Markup block - Gen - 13 - (34:0,34) - Markup block - Gen - 13 - (34:0,34) - Expression block - Gen - 13 - (34:0,34) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (34:0,34) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (35:0,35) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - catchAll - DoubleQuotes - Markup block - Gen - 13 - (59:0,59) - Markup block - Gen - 13 - (59:0,59) - Expression block - Gen - 13 - (59:0,59) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (59:0,59) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (60:0,60) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.HtmlTextLiteral - [words and spaces] - [75..91) - FullWidth: 16 - Slots: 1 - SyntaxKind.List - [words and spaces] - [75..91) - FullWidth: 16 - Slots: 5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; +RazorDocument - [0..97)::97 - [
        words and spaces
        ] + MarkupBlock - [0..97)::97 + MarkupTagHelperElement - [0..97)::97 - div[StartTagAndEndTag] - divTagHelper - catchAllTagHelper + MarkupTagHelperStartTag - [0..75)::75 + MarkupTextLiteral - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + MarkupTagHelperAttribute - [4..26)::22 - style - DoubleQuotes - Unbound - [ style="@DateTime.Now"] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [12..25)::13 + MarkupDynamicAttributeValue - [12..25)::13 - [@DateTime.Now] + GenericBlock - [12..25)::13 + CSharpCodeBlock - [12..25)::13 + CSharpImplicitExpression - [12..25)::13 + CSharpTransition - [12..13)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [13..25)::12 + CSharpCodeBlock - [13..25)::12 + CSharpExpressionLiteral - [13..25)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [25..26)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [26..48)::22 - class - DoubleQuotes - Unbound - [ class="@DateTime.Now"] + MarkupTextLiteral - [26..27)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [27..32)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [33..34)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [34..47)::13 + MarkupDynamicAttributeValue - [34..47)::13 - [@DateTime.Now] + GenericBlock - [34..47)::13 + CSharpCodeBlock - [34..47)::13 + CSharpImplicitExpression - [34..47)::13 + CSharpTransition - [34..35)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [35..47)::12 + CSharpCodeBlock - [35..47)::12 + CSharpExpressionLiteral - [35..47)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [47..48)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [48..73)::25 - catchAll - DoubleQuotes - Unbound - [ catchAll="@DateTime.Now"] + MarkupTextLiteral - [48..49)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [49..57)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [58..59)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [59..72)::13 + MarkupDynamicAttributeValue - [59..72)::13 - [@DateTime.Now] + GenericBlock - [59..72)::13 + CSharpCodeBlock - [59..72)::13 + CSharpImplicitExpression - [59..72)::13 + CSharpTransition - [59..60)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [60..72)::12 + CSharpCodeBlock - [60..72)::12 + CSharpExpressionLiteral - [60..72)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [72..73)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [73..75)::2 - [ >] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTextLiteral - [75..91)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagHelperEndTag - [91..97)::6 + MarkupTextLiteral - [91..97)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly3.stree.txt index 332bec95c..5e2f2113a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly3.stree.txt @@ -1,8 +1,9 @@ -Markup block - Gen - 7 - (0:0,0) - Tag block - Gen - 7 - (0:0,0) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:5 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..7)::7 - [
        ] + MarkupBlock - [0..7)::7 + MarkupTagBlock - [0..7)::7 - [
        ] + MarkupTextLiteral - [0..7)::7 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly30.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly30.stree.txt index 6f9d64f7e..d0d9876a3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly30.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly30.stree.txt @@ -1,28 +1,72 @@ -Markup block - Gen - 78 - (0:0,0) - Tag block - Gen - 78 - (0:0,0) - div - divTagHelper - catchAllTagHelper - StartTagAndEndTag -
        ...
        - style - DoubleQuotes - Markup block - Gen - 0 - (0:0,0) - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.Text;[btn]; - catchAll - DoubleQuotes - Markup span - Gen - [hi] - SpanEditHandler;Accepts:Any - (36:0,36) - Tokens:1 - SyntaxKind.Text;[hi]; - SyntaxKind.HtmlTextLiteral - [words] - [41..46) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[words]; - Tag block - Gen - 8 - (46:0,46) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (46:0,46) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [and] - [54..57) - FullWidth: 3 - Slots: 1 - SyntaxKind.Text;[and]; - Tag block - Gen - 9 - (57:0,57) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (57:0,57) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [spaces] - [66..72) - FullWidth: 6 - Slots: 1 - SyntaxKind.Text;[spaces]; +RazorDocument - [0..78)::78 - [
        wordsandspaces
        ] + MarkupBlock - [0..78)::78 + MarkupTagHelperElement - [0..78)::78 - div[StartTagAndEndTag] - divTagHelper - catchAllTagHelper + MarkupTagHelperStartTag - [0..41)::41 + MarkupTextLiteral - [0..4)::4 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + MarkupTagHelperAttribute - [4..13)::9 - style - DoubleQuotes - Unbound - [ style=""] + MarkupTextLiteral - [4..5)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [5..10)::5 - [style] - Gen - SpanEditHandler;Accepts:Any + Text;[style]; + Equals;[=]; + MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [12..12)::0 + MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [13..25)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [14..19)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [21..24)::3 + MarkupLiteralAttributeValue - [21..24)::3 - [btn] + MarkupTextLiteral - [21..24)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [24..25)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttribute - [25..39)::14 - catchAll - DoubleQuotes - Unbound - [ catchAll="hi"] + MarkupTextLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [26..34)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any + Text;[catchAll]; + Equals;[=]; + MarkupTextLiteral - [35..36)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [36..38)::2 + MarkupLiteralAttributeValue - [36..38)::2 - [hi] + MarkupTextLiteral - [36..38)::2 - [hi] - Gen - SpanEditHandler;Accepts:Any + Text;[hi]; + MarkupTextLiteral - [38..39)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [39..41)::2 - [ >] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTextLiteral - [41..46)::5 - [words] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + MarkupTagBlock - [46..54)::8 - [] + MarkupTextLiteral - [46..54)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [54..57)::3 - [and] - Gen - SpanEditHandler;Accepts:Any + Text;[and]; + MarkupTagBlock - [57..66)::9 - [] + MarkupTextLiteral - [57..66)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [66..72)::6 - [spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[spaces]; + MarkupTagHelperEndTag - [72..78)::6 + MarkupTextLiteral - [72..78)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly4.stree.txt index d462f4ec3..ba660e300 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly4.stree.txt @@ -1,12 +1,13 @@ -Markup block - Gen - 11 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (5:0,5) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..11)::11 - [
        ] + MarkupBlock - [0..11)::11 + MarkupTagBlock - [0..5)::5 - [
        ] + MarkupTextLiteral - [0..5)::5 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTagBlock - [5..11)::6 - [
        ] + MarkupTextLiteral - [5..11)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly5.stree.txt index bb270e35d..a30484ca5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly5.stree.txt @@ -1,6 +1,25 @@ -Markup block - Gen - 17 - (0:0,0) - Tag block - Gen - 17 - (0:0,0) - p - pTagHelper - SelfClosing -

        - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; +RazorDocument - [0..17)::17 - [

        ] + MarkupBlock - [0..17)::17 + MarkupTagHelperElement - [0..17)::17 - p[SelfClosing] - pTagHelper + MarkupTagHelperStartTag - [0..17)::17 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [14..17)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly6.stree.txt index 8fc7518aa..1aed039c4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly6.stree.txt @@ -1,13 +1,34 @@ -Markup block - Gen - 27 - (0:0,0) - Tag block - Gen - 27 - (0:0,0) - p - pTagHelper - SelfClosing -

        - class - DoubleQuotes - Markup block - Gen - 13 - (10:0,10) - Markup block - Gen - 13 - (10:0,10) - Expression block - Gen - 13 - (10:0,10) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (11:0,11) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; +RazorDocument - [0..27)::27 - [

        ] + MarkupBlock - [0..27)::27 + MarkupTagHelperElement - [0..27)::27 - p[SelfClosing] - pTagHelper + MarkupTagHelperStartTag - [0..27)::27 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..24)::22 - class - DoubleQuotes - Unbound - [ class="@DateTime.Now"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..23)::13 + MarkupDynamicAttributeValue - [10..23)::13 - [@DateTime.Now] + GenericBlock - [10..23)::13 + CSharpCodeBlock - [10..23)::13 + CSharpImplicitExpression - [10..23)::13 + CSharpTransition - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [11..23)::12 + CSharpCodeBlock - [11..23)::12 + CSharpExpressionLiteral - [11..23)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [23..24)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [24..27)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly7.stree.txt index cc6c26331..ca02246ab 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly7.stree.txt @@ -1,13 +1,35 @@ -Markup block - Gen - 35 - (0:0,0) - Tag block - Gen - 35 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; - SyntaxKind.HtmlTextLiteral - [words and spaces] - [15..31) - FullWidth: 16 - Slots: 1 - SyntaxKind.List - [words and spaces] - [15..31) - FullWidth: 16 - Slots: 5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; +RazorDocument - [0..35)::35 - [

        words and spaces

        ] + MarkupBlock - [0..35)::35 + MarkupTagHelperElement - [0..35)::35 - p[StartTagAndEndTag] - pTagHelper + MarkupTagHelperStartTag - [0..15)::15 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [14..15)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [15..31)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagHelperEndTag - [31..35)::4 + MarkupTextLiteral - [31..35)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly8.stree.txt index 74a1a3c71..9f13f60e7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly8.stree.txt @@ -1,20 +1,44 @@ -Markup block - Gen - 45 - (0:0,0) - Tag block - Gen - 45 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup block - Gen - 13 - (10:0,10) - Markup block - Gen - 13 - (10:0,10) - Expression block - Gen - 13 - (10:0,10) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (10:0,10) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (11:0,11) - Tokens:3 - SyntaxKind.Identifier;[DateTime]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Now]; - SyntaxKind.HtmlTextLiteral - [words and spaces] - [25..41) - FullWidth: 16 - Slots: 1 - SyntaxKind.List - [words and spaces] - [25..41) - FullWidth: 16 - Slots: 5 - SyntaxKind.Text;[words]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[and]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[spaces]; +RazorDocument - [0..45)::45 - [

        words and spaces

        ] + MarkupBlock - [0..45)::45 + MarkupTagHelperElement - [0..45)::45 - p[StartTagAndEndTag] - pTagHelper + MarkupTagHelperStartTag - [0..25)::25 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..24)::22 - class - DoubleQuotes - Unbound - [ class="@DateTime.Now"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..23)::13 + MarkupDynamicAttributeValue - [10..23)::13 - [@DateTime.Now] + GenericBlock - [10..23)::13 + CSharpCodeBlock - [10..23)::13 + CSharpImplicitExpression - [10..23)::13 + CSharpTransition - [10..11)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [11..23)::12 + CSharpCodeBlock - [11..23)::12 + CSharpExpressionLiteral - [11..23)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + MarkupTextLiteral - [23..24)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [24..25)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [25..41)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + Whitespace;[ ]; + Text;[and]; + Whitespace;[ ]; + Text;[spaces]; + MarkupTagHelperEndTag - [41..45)::4 + MarkupTextLiteral - [41..45)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly9.stree.txt index e6e684963..18da3d211 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly9.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly9.stree.txt @@ -1,23 +1,46 @@ -Markup block - Gen - 50 - (0:0,0) - Tag block - Gen - 50 - (0:0,0) - p - pTagHelper - StartTagAndEndTag -

        ...

        - class - DoubleQuotes - Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Text;[btn]; - SyntaxKind.HtmlTextLiteral - [words] - [15..20) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[words]; - Tag block - Gen - 8 - (20:0,20) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [and] - [28..31) - FullWidth: 3 - Slots: 1 - SyntaxKind.Text;[and]; - Tag block - Gen - 9 - (31:0,31) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [spaces] - [40..46) - FullWidth: 6 - Slots: 1 - SyntaxKind.Text;[spaces]; +RazorDocument - [0..50)::50 - [

        wordsandspaces

        ] + MarkupBlock - [0..50)::50 + MarkupTagHelperElement - [0..50)::50 - p[StartTagAndEndTag] - pTagHelper + MarkupTagHelperStartTag - [0..15)::15 + MarkupTextLiteral - [0..2)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupTagHelperAttribute - [2..14)::12 - class - DoubleQuotes - Unbound - [ class="btn"] + MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + Equals;[=]; + MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTagHelperAttributeValue - [10..13)::3 + MarkupLiteralAttributeValue - [10..13)::3 - [btn] + MarkupTextLiteral - [10..13)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any + Text;[btn]; + MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [14..15)::1 - [>] - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [15..20)::5 - [words] - Gen - SpanEditHandler;Accepts:Any + Text;[words]; + MarkupTagBlock - [20..28)::8 - [] + MarkupTextLiteral - [20..28)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [28..31)::3 - [and] - Gen - SpanEditHandler;Accepts:Any + Text;[and]; + MarkupTagBlock - [31..40)::9 - [] + MarkupTextLiteral - [31..40)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [40..46)::6 - [spaces] - Gen - SpanEditHandler;Accepts:Any + Text;[spaces]; + MarkupTagHelperEndTag - [46..50)::4 + MarkupTextLiteral - [46..50)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RewritesNestedTagHelperTagBlocks1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RewritesNestedTagHelperTagBlocks1.stree.txt index 7eba221fe..c636cb3ea 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RewritesNestedTagHelperTagBlocks1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RewritesNestedTagHelperTagBlocks1.stree.txt @@ -1,5 +1,26 @@ -Markup block - Gen - 18 - (0:0,0) - Tag block - Gen - 18 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 11 - (3:0,3) - div - divtaghelper - StartTagAndEndTag -
        ...
        +RazorDocument - [0..18)::18 - [

        ] + MarkupBlock - [0..18)::18 + MarkupTagHelperElement - [0..18)::18 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..14)::11 - div[StartTagAndEndTag] - divtaghelper + MarkupTagHelperStartTag - [3..8)::5 + MarkupTextLiteral - [3..8)::5 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [8..14)::6 + MarkupTextLiteral - [8..14)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [14..18)::4 + MarkupTextLiteral - [14..18)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RewritesNestedTagHelperTagBlocks2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RewritesNestedTagHelperTagBlocks2.stree.txt index c8f3670c6..ec545b9d1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RewritesNestedTagHelperTagBlocks2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RewritesNestedTagHelperTagBlocks2.stree.txt @@ -1,11 +1,31 @@ -Markup block - Gen - 30 - (0:0,0) - Tag block - Gen - 30 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [Hello World ] - [3..15) - FullWidth: 12 - Slots: 1 - SyntaxKind.List - [Hello World ] - [3..15) - FullWidth: 12 - Slots: 4 - SyntaxKind.Text;[Hello]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[World]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 11 - (15:0,15) - div - divtaghelper - StartTagAndEndTag -
        ...
        +RazorDocument - [0..30)::30 - [

        Hello World

        ] + MarkupBlock - [0..30)::30 + MarkupTagHelperElement - [0..30)::30 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..15)::12 - [Hello World ] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + Whitespace;[ ]; + Text;[World]; + Whitespace;[ ]; + MarkupTagHelperElement - [15..26)::11 - div[StartTagAndEndTag] - divtaghelper + MarkupTagHelperStartTag - [15..20)::5 + MarkupTextLiteral - [15..20)::5 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [20..26)::6 + MarkupTextLiteral - [20..26)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [26..30)::4 + MarkupTextLiteral - [26..30)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RewritesNestedTagHelperTagBlocks3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RewritesNestedTagHelperTagBlocks3.stree.txt index 5fa917d8d..d07da514b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RewritesNestedTagHelperTagBlocks3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RewritesNestedTagHelperTagBlocks3.stree.txt @@ -1,17 +1,58 @@ -Markup block - Gen - 43 - (0:0,0) - Tag block - Gen - 19 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [Hel] - [3..6) - FullWidth: 3 - Slots: 1 - SyntaxKind.Text;[Hel]; - Tag block - Gen - 9 - (6:0,6) - p - ptaghelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [lo] - [9..11) - FullWidth: 2 - Slots: 1 - SyntaxKind.Text;[lo]; - SyntaxKind.HtmlTextLiteral - [ ] - [19..20) - FullWidth: 1 - Slots: 1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 23 - (20:0,20) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 16 - (23:0,23) - div - divtaghelper - StartTagAndEndTag -
        ...
        - SyntaxKind.HtmlTextLiteral - [World] - [28..33) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[World]; +RazorDocument - [0..43)::43 - [

        Hel

        lo

        World

        ] + MarkupBlock - [0..43)::43 + MarkupTagHelperElement - [0..19)::19 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..6)::3 - [Hel] - Gen - SpanEditHandler;Accepts:Any + Text;[Hel]; + MarkupTagHelperElement - [6..15)::9 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [6..9)::3 + MarkupTextLiteral - [6..9)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [9..11)::2 - [lo] - Gen - SpanEditHandler;Accepts:Any + Text;[lo]; + MarkupTagHelperEndTag - [11..15)::4 + MarkupTextLiteral - [11..15)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [15..19)::4 + MarkupTextLiteral - [15..19)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [19..20)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [20..43)::23 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [20..23)::3 + MarkupTextLiteral - [20..23)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [23..39)::16 - div[StartTagAndEndTag] - divtaghelper + MarkupTagHelperStartTag - [23..28)::5 + MarkupTextLiteral - [23..28)::5 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [28..33)::5 - [World] - Gen - SpanEditHandler;Accepts:Any + Text;[World]; + MarkupTagHelperEndTag - [33..39)::6 + MarkupTextLiteral - [33..39)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [39..43)::4 + MarkupTextLiteral - [39..43)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RewritesNestedTagHelperTagBlocks4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RewritesNestedTagHelperTagBlocks4.stree.txt index c938c8673..4a0b88b6b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RewritesNestedTagHelperTagBlocks4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RewritesNestedTagHelperTagBlocks4.stree.txt @@ -1,35 +1,56 @@ -Markup block - Gen - 55 - (0:0,0) - Tag block - Gen - 29 - (0:0,0) - p - ptaghelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [Hel] - [3..6) - FullWidth: 3 - Slots: 1 - SyntaxKind.Text;[Hel]; - Tag block - Gen - 8 - (6:0,6) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [lo] - [14..16) - FullWidth: 2 - Slots: 1 - SyntaxKind.Text;[lo]; - Tag block - Gen - 9 - (16:0,16) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ ] - [29..30) - FullWidth: 1 - Slots: 1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 25 - (30:0,30) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 6 - (33:0,33) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[span]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [World] - [39..44) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[World]; - Tag block - Gen - 7 - (44:0,44) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (44:0,44) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[span]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..55)::55 - [

        Hello

        World

        ] + MarkupBlock - [0..55)::55 + MarkupTagHelperElement - [0..29)::29 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..6)::3 - [Hel] - Gen - SpanEditHandler;Accepts:Any + Text;[Hel]; + MarkupTagBlock - [6..14)::8 - [] + MarkupTextLiteral - [6..14)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [14..16)::2 - [lo] - Gen - SpanEditHandler;Accepts:Any + Text;[lo]; + MarkupTagBlock - [16..25)::9 - [] + MarkupTextLiteral - [16..25)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [25..29)::4 + MarkupTextLiteral - [25..29)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [29..30)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [30..55)::25 - p[StartTagAndEndTag] - ptaghelper + MarkupTagHelperStartTag - [30..33)::3 + MarkupTextLiteral - [30..33)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [33..39)::6 - [] + MarkupTextLiteral - [33..39)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[span]; + CloseAngle;[>]; + MarkupTextLiteral - [39..44)::5 - [World] - Gen - SpanEditHandler;Accepts:Any + Text;[World]; + MarkupTagBlock - [44..51)::7 - [] + MarkupTextLiteral - [44..51)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[span]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [51..55)::4 + MarkupTextLiteral - [51..55)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren1.stree.txt index e29f5606f..8bb901409 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren1.stree.txt @@ -1,5 +1,22 @@ -Markup block - Gen - 13 - (0:0,0) - Tag block - Gen - 13 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 6 - (3:0,3) - br - BRTagHelper - SelfClosing -
        +RazorDocument - [0..13)::13 - [


        ] + MarkupBlock - [0..13)::13 + MarkupTagHelperElement - [0..13)::13 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..9)::6 - br[SelfClosing] - BRTagHelper + MarkupTagHelperStartTag - [3..9)::6 + MarkupTextLiteral - [3..9)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [9..13)::4 + MarkupTextLiteral - [9..13)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren10.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren10.stree.txt index 8df037993..84b878746 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren10.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren10.stree.txt @@ -1,31 +1,61 @@ -Markup block - Gen - 69 - (0:0,0) - Tag block - Gen - 69 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 47 - (3:0,3) - strong - StrongTagHelper - StartTagAndEndTag - ... - SyntaxKind.HtmlTextLiteral - [Title:] - [11..17) - FullWidth: 6 - Slots: 1 - SyntaxKind.Text;[Title:]; - Tag block - Gen - 4 - (17:0,17) - br - BRTagHelper - StartTagOnly -
        - Tag block - Gen - 4 - (21:0,21) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[em]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [A Very Cool] - [25..36) - FullWidth: 11 - Slots: 1 - SyntaxKind.List - [A Very Cool] - [25..36) - FullWidth: 11 - Slots: 5 - SyntaxKind.Text;[A]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Very]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Cool]; - Tag block - Gen - 5 - (36:0,36) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (36:0,36) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[em]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (50:0,50) - br - BRTagHelper - SelfClosing -
        - SyntaxKind.HtmlTextLiteral - [Something] - [56..65) - FullWidth: 9 - Slots: 1 - SyntaxKind.Text;[Something]; +RazorDocument - [0..69)::69 - [

        Title:
        A Very Cool

        Something

        ] + MarkupBlock - [0..69)::69 + MarkupTagHelperElement - [0..69)::69 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..50)::47 - strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [3..11)::8 + MarkupTextLiteral - [3..11)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [11..17)::6 - [Title:] - Gen - SpanEditHandler;Accepts:Any + Text;[Title:]; + MarkupTagHelperElement - [17..21)::4 - br[StartTagOnly] - BRTagHelper + MarkupTagHelperStartTag - [17..21)::4 + MarkupTextLiteral - [17..21)::4 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + CloseAngle;[>]; + MarkupTagBlock - [21..25)::4 - [] + MarkupTextLiteral - [21..25)::4 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[em]; + CloseAngle;[>]; + MarkupTextLiteral - [25..36)::11 - [A Very Cool] - Gen - SpanEditHandler;Accepts:Any + Text;[A]; + Whitespace;[ ]; + Text;[Very]; + Whitespace;[ ]; + Text;[Cool]; + MarkupTagBlock - [36..41)::5 - [] + MarkupTextLiteral - [36..41)::5 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[em]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [41..50)::9 + MarkupTextLiteral - [41..50)::9 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperElement - [50..56)::6 - br[SelfClosing] - BRTagHelper + MarkupTagHelperStartTag - [50..56)::6 + MarkupTextLiteral - [50..56)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTextLiteral - [56..65)::9 - [Something] - Gen - SpanEditHandler;Accepts:Any + Text;[Something]; + MarkupTagHelperEndTag - [65..69)::4 + MarkupTextLiteral - [65..69)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren11.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren11.stree.txt index e4506e296..68b47c8c9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren11.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren11.stree.txt @@ -1,40 +1,60 @@ -Markup block - Gen - 69 - (0:0,0) - Tag block - Gen - 69 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 8 - (3:0,3) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[custom]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [Title:] - [11..17) - FullWidth: 6 - Slots: 1 - SyntaxKind.Text;[Title:]; - Tag block - Gen - 4 - (17:0,17) - br - BRTagHelper - StartTagOnly -
        - Tag block - Gen - 4 - (21:0,21) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[em]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [A Very Cool] - [25..36) - FullWidth: 11 - Slots: 1 - SyntaxKind.List - [A Very Cool] - [25..36) - FullWidth: 11 - Slots: 5 - SyntaxKind.Text;[A]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Very]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Cool]; - Tag block - Gen - 5 - (36:0,36) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (36:0,36) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[em]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (41:0,41) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (41:0,41) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[custom]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 6 - (50:0,50) - br - BRTagHelper - SelfClosing -
        - SyntaxKind.HtmlTextLiteral - [Something] - [56..65) - FullWidth: 9 - Slots: 1 - SyntaxKind.Text;[Something]; +RazorDocument - [0..69)::69 - [

        Title:
        A Very Cool

        Something

        ] + MarkupBlock - [0..69)::69 + MarkupTagHelperElement - [0..69)::69 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..11)::8 - [] + MarkupTextLiteral - [3..11)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[custom]; + CloseAngle;[>]; + MarkupTextLiteral - [11..17)::6 - [Title:] - Gen - SpanEditHandler;Accepts:Any + Text;[Title:]; + MarkupTagHelperElement - [17..21)::4 - br[StartTagOnly] - BRTagHelper + MarkupTagHelperStartTag - [17..21)::4 + MarkupTextLiteral - [17..21)::4 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + CloseAngle;[>]; + MarkupTagBlock - [21..25)::4 - [] + MarkupTextLiteral - [21..25)::4 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[em]; + CloseAngle;[>]; + MarkupTextLiteral - [25..36)::11 - [A Very Cool] - Gen - SpanEditHandler;Accepts:Any + Text;[A]; + Whitespace;[ ]; + Text;[Very]; + Whitespace;[ ]; + Text;[Cool]; + MarkupTagBlock - [36..41)::5 - [] + MarkupTextLiteral - [36..41)::5 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[em]; + CloseAngle;[>]; + MarkupTagBlock - [41..50)::9 - [
        ] + MarkupTextLiteral - [41..50)::9 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[custom]; + CloseAngle;[>]; + MarkupTagHelperElement - [50..56)::6 - br[SelfClosing] - BRTagHelper + MarkupTagHelperStartTag - [50..56)::6 + MarkupTextLiteral - [50..56)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTextLiteral - [56..65)::9 - [Something] - Gen - SpanEditHandler;Accepts:Any + Text;[Something]; + MarkupTagHelperEndTag - [65..69)::4 + MarkupTextLiteral - [65..69)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren12.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren12.stree.txt index 297c4e8e7..8305e3b01 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren12.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren12.stree.txt @@ -1,7 +1,18 @@ -Markup block - Gen - 9 - (0:0,0) - Tag block - Gen - 9 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 2 - (3:0,3) - Markup span - Gen - [] + MarkupBlock - [0..9)::9 + MarkupTagHelperElement - [0..9)::9 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..5)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + MarkupTagHelperEndTag - [5..9)::4 + MarkupTextLiteral - [5..9)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren13.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren13.stree.txt index f742691a6..693ab1c70 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren13.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren13.stree.txt @@ -1,6 +1,17 @@ -Markup block - Gen - 8 - (0:0,0) - Tag block - Gen - 8 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 1 - (3:0,3) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:1 - SyntaxKind.OpenAngle;[<]; +RazorDocument - [0..8)::8 - [

        <

        ] + MarkupBlock - [0..8)::8 + MarkupTagHelperElement - [0..8)::8 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..4)::1 - [<] + MarkupTextLiteral - [3..4)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagHelperEndTag - [4..8)::4 + MarkupTextLiteral - [4..8)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren14.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren14.stree.txt index 422ea4afd..4f584753c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren14.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren14.stree.txt @@ -1,31 +1,66 @@ -Markup block - Gen - 76 - (0:0,0) - Tag block - Gen - 76 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 8 - (3:0,3) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[custom]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 4 - (11:0,11) - br - BRTagHelper - StartTagOnly -
        - SyntaxKind.HtmlTextLiteral - [:] - [15..16) - FullWidth: 1 - Slots: 1 - SyntaxKind.Text;[:]; - Tag block - Gen - 39 - (16:0,16) - strong - StrongTagHelper - StartTagAndEndTag - ... - Tag block - Gen - 22 - (24:0,24) - strong - StrongTagHelper - StartTagAndEndTag - ... - SyntaxKind.HtmlTextLiteral - [Hello] - [32..37) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[Hello]; - SyntaxKind.HtmlTextLiteral - [:] - [55..56) - FullWidth: 1 - Slots: 1 - SyntaxKind.Text;[:]; - Tag block - Gen - 7 - (56:0,56) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (56:0,56) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[input]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (63:0,63) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (63:0,63) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[custom]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..76)::76 - [


        :Hello:

        ] + MarkupBlock - [0..76)::76 + MarkupTagHelperElement - [0..76)::76 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..11)::8 - [] + MarkupTextLiteral - [3..11)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[custom]; + CloseAngle;[>]; + MarkupTagHelperElement - [11..15)::4 - br[StartTagOnly] - BRTagHelper + MarkupTagHelperStartTag - [11..15)::4 + MarkupTextLiteral - [11..15)::4 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + CloseAngle;[>]; + MarkupTextLiteral - [15..16)::1 - [:] - Gen - SpanEditHandler;Accepts:Any + Text;[:]; + MarkupTagHelperElement - [16..55)::39 - strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [16..24)::8 + MarkupTextLiteral - [16..24)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperElement - [24..46)::22 - strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [24..32)::8 + MarkupTextLiteral - [24..32)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [32..37)::5 - [Hello] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + MarkupTagHelperEndTag - [37..46)::9 + MarkupTextLiteral - [37..46)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [46..55)::9 + MarkupTextLiteral - [46..55)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [55..56)::1 - [:] - Gen - SpanEditHandler;Accepts:Any + Text;[:]; + MarkupTagBlock - [56..63)::7 - [] + MarkupTextLiteral - [56..63)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; + MarkupTagBlock - [63..72)::9 - [
        ] + MarkupTextLiteral - [63..72)::9 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[custom]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [72..76)::4 + MarkupTextLiteral - [72..76)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren2.stree.txt index 4d6830116..400f13a49 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren2.stree.txt @@ -1,9 +1,26 @@ -Markup block - Gen - 17 - (0:0,0) - Tag block - Gen - 17 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [LF] - [3..5) - FullWidth: 2 - Slots: 1 - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 6 - (5:1,0) - br - BRTagHelper - SelfClosing -
        - SyntaxKind.HtmlTextLiteral - [LF] - [11..13) - FullWidth: 2 - Slots: 1 - SyntaxKind.NewLine;[LF]; +RazorDocument - [0..17)::17 - [

        LF
        LF

        ] + MarkupBlock - [0..17)::17 + MarkupTagHelperElement - [0..17)::17 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..5)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupTagHelperElement - [5..11)::6 - br[SelfClosing] - BRTagHelper + MarkupTagHelperStartTag - [5..11)::6 + MarkupTextLiteral - [5..11)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTextLiteral - [11..13)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupTagHelperEndTag - [13..17)::4 + MarkupTextLiteral - [13..17)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren3.stree.txt index 3f5750436..aefe57965 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren3.stree.txt @@ -1,5 +1,20 @@ -Markup block - Gen - 11 - (0:0,0) - Tag block - Gen - 11 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 4 - (3:0,3) - br - BRTagHelper - StartTagOnly -
        +RazorDocument - [0..11)::11 - [


        ] + MarkupBlock - [0..11)::11 + MarkupTagHelperElement - [0..11)::11 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..7)::4 - br[StartTagOnly] - BRTagHelper + MarkupTagHelperStartTag - [3..7)::4 + MarkupTextLiteral - [3..7)::4 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [7..11)::4 + MarkupTextLiteral - [7..11)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren4.stree.txt index d22c234e5..e8acd8e66 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren4.stree.txt @@ -1,5 +1,16 @@ -Markup block - Gen - 12 - (0:0,0) - Tag block - Gen - 12 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [Hello] - [3..8) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[Hello]; +RazorDocument - [0..12)::12 - [

        Hello

        ] + MarkupBlock - [0..12)::12 + MarkupTagHelperElement - [0..12)::12 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..8)::5 - [Hello] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + MarkupTagHelperEndTag - [8..12)::4 + MarkupTextLiteral - [8..12)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren5.stree.txt index bc2c07615..b89b00553 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren5.stree.txt @@ -1,10 +1,21 @@ -Markup block - Gen - 13 - (0:0,0) - Tag block - Gen - 13 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 6 - (3:0,3) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:5 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[hr]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..13)::13 - [


        ] + MarkupBlock - [0..13)::13 + MarkupTagHelperElement - [0..13)::13 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..9)::6 - [


        ] + MarkupTextLiteral - [3..9)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[hr]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [9..13)::4 + MarkupTextLiteral - [9..13)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren6.stree.txt index 04b573dd1..55e5d05d5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren6.stree.txt @@ -1,7 +1,22 @@ -Markup block - Gen - 16 - (0:0,0) - Tag block - Gen - 16 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 4 - (3:0,3) - br - BRTagHelper - StartTagOnly -
        - SyntaxKind.HtmlTextLiteral - [Hello] - [7..12) - FullWidth: 5 - Slots: 1 - SyntaxKind.Text;[Hello]; +RazorDocument - [0..16)::16 - [


        Hello

        ] + MarkupBlock - [0..16)::16 + MarkupTagHelperElement - [0..16)::16 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..7)::4 - br[StartTagOnly] - BRTagHelper + MarkupTagHelperStartTag - [3..7)::4 + MarkupTextLiteral - [3..7)::4 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + CloseAngle;[>]; + MarkupTextLiteral - [7..12)::5 - [Hello] - Gen - SpanEditHandler;Accepts:Any + Text;[Hello]; + MarkupTagHelperEndTag - [12..16)::4 + MarkupTextLiteral - [12..16)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren7.stree.txt index 7d7350959..449ecd9ff 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren7.stree.txt @@ -1,11 +1,38 @@ -Markup block - Gen - 45 - (0:0,0) - Tag block - Gen - 45 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 23 - (3:0,3) - strong - StrongTagHelper - StartTagAndEndTag - ... - SyntaxKind.HtmlTextLiteral - [Title:] - [11..17) - FullWidth: 6 - Slots: 1 - SyntaxKind.Text;[Title:]; - Tag block - Gen - 6 - (26:0,26) - br - BRTagHelper - SelfClosing -
        - SyntaxKind.HtmlTextLiteral - [Something] - [32..41) - FullWidth: 9 - Slots: 1 - SyntaxKind.Text;[Something]; +RazorDocument - [0..45)::45 - [

        Title:
        Something

        ] + MarkupBlock - [0..45)::45 + MarkupTagHelperElement - [0..45)::45 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..26)::23 - strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [3..11)::8 + MarkupTextLiteral - [3..11)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [11..17)::6 - [Title:] - Gen - SpanEditHandler;Accepts:Any + Text;[Title:]; + MarkupTagHelperEndTag - [17..26)::9 + MarkupTextLiteral - [17..26)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperElement - [26..32)::6 - br[SelfClosing] - BRTagHelper + MarkupTagHelperStartTag - [26..32)::6 + MarkupTextLiteral - [26..32)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTextLiteral - [32..41)::9 - [Something] - Gen - SpanEditHandler;Accepts:Any + Text;[Something]; + MarkupTagHelperEndTag - [41..45)::4 + MarkupTextLiteral - [41..45)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren8.stree.txt index 7d7350959..449ecd9ff 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren8.stree.txt @@ -1,11 +1,38 @@ -Markup block - Gen - 45 - (0:0,0) - Tag block - Gen - 45 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 23 - (3:0,3) - strong - StrongTagHelper - StartTagAndEndTag - ... - SyntaxKind.HtmlTextLiteral - [Title:] - [11..17) - FullWidth: 6 - Slots: 1 - SyntaxKind.Text;[Title:]; - Tag block - Gen - 6 - (26:0,26) - br - BRTagHelper - SelfClosing -
        - SyntaxKind.HtmlTextLiteral - [Something] - [32..41) - FullWidth: 9 - Slots: 1 - SyntaxKind.Text;[Something]; +RazorDocument - [0..45)::45 - [

        Title:
        Something

        ] + MarkupBlock - [0..45)::45 + MarkupTagHelperElement - [0..45)::45 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..26)::23 - strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [3..11)::8 + MarkupTextLiteral - [3..11)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [11..17)::6 - [Title:] - Gen - SpanEditHandler;Accepts:Any + Text;[Title:]; + MarkupTagHelperEndTag - [17..26)::9 + MarkupTextLiteral - [17..26)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperElement - [26..32)::6 - br[SelfClosing] - BRTagHelper + MarkupTagHelperStartTag - [26..32)::6 + MarkupTextLiteral - [26..32)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTextLiteral - [32..41)::9 - [Something] - Gen - SpanEditHandler;Accepts:Any + Text;[Something]; + MarkupTagHelperEndTag - [41..45)::4 + MarkupTextLiteral - [41..45)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren9.stree.txt index 82426967a..d41c4ed62 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren9.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsAllowedChildren9.stree.txt @@ -1,17 +1,43 @@ -Markup block - Gen - 51 - (0:0,0) - Tag block - Gen - 51 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - SyntaxKind.HtmlTextLiteral - [ ] - [3..5) - FullWidth: 2 - Slots: 1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 23 - (5:0,5) - strong - StrongTagHelper - StartTagAndEndTag - ... - SyntaxKind.HtmlTextLiteral - [Title:] - [13..19) - FullWidth: 6 - Slots: 1 - SyntaxKind.Text;[Title:]; - SyntaxKind.HtmlTextLiteral - [ ] - [28..30) - FullWidth: 2 - Slots: 1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 6 - (30:0,30) - br - BRTagHelper - SelfClosing -
        - SyntaxKind.HtmlTextLiteral - [ Something] - [36..47) - FullWidth: 11 - Slots: 1 - SyntaxKind.List - [ Something] - [36..47) - FullWidth: 11 - Slots: 2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Something]; +RazorDocument - [0..51)::51 - [

        Title:
        Something

        ] + MarkupBlock - [0..51)::51 + MarkupTagHelperElement - [0..51)::51 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [3..5)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [5..28)::23 - strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [5..13)::8 + MarkupTextLiteral - [5..13)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [13..19)::6 - [Title:] - Gen - SpanEditHandler;Accepts:Any + Text;[Title:]; + MarkupTagHelperEndTag - [19..28)::9 + MarkupTextLiteral - [19..28)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTextLiteral - [28..30)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagHelperElement - [30..36)::6 - br[SelfClosing] - BRTagHelper + MarkupTagHelperStartTag - [30..36)::6 + MarkupTextLiteral - [30..36)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTextLiteral - [36..47)::11 - [ Something] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[Something]; + MarkupTagHelperEndTag - [47..51)::4 + MarkupTextLiteral - [47..51)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent1.stree.txt index 9fd8ce0f9..482ce72d7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent1.stree.txt @@ -1,12 +1,13 @@ -Markup block - Gen - 17 - (0:0,0) - Tag block - Gen - 8 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (8:0,8) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..17)::17 - [] + MarkupBlock - [0..17)::17 + MarkupTagBlock - [0..8)::8 - [] + MarkupTextLiteral - [0..8)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [8..17)::9 - [] + MarkupTextLiteral - [8..17)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent2.stree.txt index 83c4bcba8..08b6e0744 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent2.stree.txt @@ -1,5 +1,26 @@ -Markup block - Gen - 24 - (0:0,0) - Tag block - Gen - 24 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 17 - (3:0,3) - strong - StrongTagHelper - StartTagAndEndTag - ... +RazorDocument - [0..24)::24 - [

        ] + MarkupBlock - [0..24)::24 + MarkupTagHelperElement - [0..24)::24 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..20)::17 - strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [3..11)::8 + MarkupTextLiteral - [3..11)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [11..20)::9 + MarkupTextLiteral - [11..20)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [20..24)::4 + MarkupTextLiteral - [20..24)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent3.stree.txt index b1b5ce01f..0d08c5169 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent3.stree.txt @@ -1,14 +1,25 @@ -Markup block - Gen - 28 - (0:0,0) - Tag block - Gen - 5 - (0:0,0) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 17 - (5:0,5) - strong - StrongTagHelper - StartTagAndEndTag - ... - Tag block - Gen - 6 - (22:0,22) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..28)::28 - [
        ] + MarkupBlock - [0..28)::28 + MarkupTagBlock - [0..5)::5 - [
        ] + MarkupTextLiteral - [0..5)::5 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTagHelperElement - [5..22)::17 - strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [5..13)::8 + MarkupTextLiteral - [5..13)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [13..22)::9 + MarkupTextLiteral - [13..22)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [22..28)::6 - [
        ] + MarkupTextLiteral - [22..28)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent4.stree.txt index 4c965f4a5..7107cc6aa 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent4.stree.txt @@ -1,23 +1,24 @@ -Markup block - Gen - 34 - (0:0,0) - Tag block - Gen - 8 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 8 - (8:0,8) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (16:0,16) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (25:0,25) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..34)::34 - [] + MarkupBlock - [0..34)::34 + MarkupTagBlock - [0..8)::8 - [] + MarkupTextLiteral - [0..8)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [8..16)::8 - [] + MarkupTextLiteral - [8..16)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [16..25)::9 - [] + MarkupTextLiteral - [16..25)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [25..34)::9 - [] + MarkupTextLiteral - [25..34)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent5.stree.txt index ef9490785..bc8a5c19c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedRequiredParent5.stree.txt @@ -1,16 +1,37 @@ -Markup block - Gen - 41 - (0:0,0) - Tag block - Gen - 41 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 34 - (3:0,3) - strong - StrongTagHelper - StartTagAndEndTag - ... - Tag block - Gen - 8 - (11:0,11) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (11:0,11) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (19:0,19) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..41)::41 - [

        ] + MarkupBlock - [0..41)::41 + MarkupTagHelperElement - [0..41)::41 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..37)::34 - strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [3..11)::8 + MarkupTextLiteral - [3..11)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [11..19)::8 - [] + MarkupTextLiteral - [11..19)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [19..28)::9 - [] + MarkupTextLiteral - [19..28)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [28..37)::9 + MarkupTextLiteral - [28..37)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [37..41)::4 + MarkupTextLiteral - [37..41)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent1.stree.txt index 1ab6c121d..1adcc775e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent1.stree.txt @@ -1,14 +1,19 @@ -Markup block - Gen - 24 - (0:0,0) - Tag block - Gen - 7 - (0:0,0) - input - InputTagHelper - StartTagOnly - - Tag block - Gen - 8 - (7:0,7) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (7:0,7) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (15:0,15) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..24)::24 - [] + MarkupBlock - [0..24)::24 + MarkupTagHelperElement - [0..7)::7 - input[StartTagOnly] - InputTagHelper + MarkupTagHelperStartTag - [0..7)::7 + MarkupTextLiteral - [0..7)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; + MarkupTagBlock - [7..15)::8 - [] + MarkupTextLiteral - [7..15)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [15..24)::9 - [] + MarkupTextLiteral - [15..24)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent2.stree.txt index 280c9a6d7..481e713ac 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent2.stree.txt @@ -1,7 +1,32 @@ -Markup block - Gen - 31 - (0:0,0) - Tag block - Gen - 31 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 7 - (3:0,3) - input - InputTagHelper - StartTagOnly - - Tag block - Gen - 17 - (10:0,10) - strong - StrongTagHelper - StartTagAndEndTag - ... +RazorDocument - [0..31)::31 - [

        ] + MarkupBlock - [0..31)::31 + MarkupTagHelperElement - [0..31)::31 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..10)::7 - input[StartTagOnly] - InputTagHelper + MarkupTagHelperStartTag - [3..10)::7 + MarkupTextLiteral - [3..10)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; + MarkupTagHelperElement - [10..27)::17 - strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [10..18)::8 + MarkupTextLiteral - [10..18)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [18..27)::9 + MarkupTextLiteral - [18..27)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [27..31)::4 + MarkupTextLiteral - [27..31)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent3.stree.txt index 7243ec7a3..04a257b7b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent3.stree.txt @@ -1,10 +1,31 @@ -Markup block - Gen - 28 - (0:0,0) - Tag block - Gen - 28 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 4 - (3:0,3) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[br]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 17 - (7:0,7) - strong - StrongTagHelper - StartTagAndEndTag - ... +RazorDocument - [0..28)::28 - [


        ] + MarkupBlock - [0..28)::28 + MarkupTagHelperElement - [0..28)::28 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..7)::4 - [
        ] + MarkupTextLiteral - [3..7)::4 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + CloseAngle;[>]; + MarkupTagHelperElement - [7..24)::17 - strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [7..15)::8 + MarkupTextLiteral - [7..15)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [15..24)::9 + MarkupTextLiteral - [15..24)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [24..28)::4 + MarkupTextLiteral - [24..28)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent4.stree.txt index b27259b12..823a54af0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent4.stree.txt @@ -1,12 +1,43 @@ -Markup block - Gen - 35 - (0:0,0) - Tag block - Gen - 35 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 11 - (3:0,3) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 4 - (6:0,6) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[br]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 17 - (14:0,14) - strong - StrongTagHelper - StartTagAndEndTag - ... +RazorDocument - [0..35)::35 - [


        ] + MarkupBlock - [0..35)::35 + MarkupTagHelperElement - [0..35)::35 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..14)::11 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [3..6)::3 + MarkupTextLiteral - [3..6)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [6..10)::4 - [
        ] + MarkupTextLiteral - [6..10)::4 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [10..14)::4 + MarkupTextLiteral - [10..14)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [14..31)::17 - strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [14..22)::8 + MarkupTextLiteral - [14..22)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [22..31)::9 + MarkupTextLiteral - [22..31)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [31..35)::4 + MarkupTextLiteral - [31..35)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent5.stree.txt index 1ab6c121d..1adcc775e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent5.stree.txt @@ -1,14 +1,19 @@ -Markup block - Gen - 24 - (0:0,0) - Tag block - Gen - 7 - (0:0,0) - input - InputTagHelper - StartTagOnly - - Tag block - Gen - 8 - (7:0,7) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (7:0,7) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (15:0,15) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..24)::24 - [] + MarkupBlock - [0..24)::24 + MarkupTagHelperElement - [0..7)::7 - input[StartTagOnly] - InputTagHelper + MarkupTagHelperStartTag - [0..7)::7 + MarkupTextLiteral - [0..7)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; + MarkupTagBlock - [7..15)::8 - [] + MarkupTextLiteral - [7..15)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [15..24)::9 - [] + MarkupTextLiteral - [15..24)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent6.stree.txt index 377fb3c34..286f87c90 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent6.stree.txt @@ -1,7 +1,30 @@ -Markup block - Gen - 26 - (0:0,0) - Tag block - Gen - 26 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 9 - (3:0,3) - input - InputTagHelper - SelfClosing - - Tag block - Gen - 10 - (12:0,12) - strong - StrongTagHelper - SelfClosing - +RazorDocument - [0..26)::26 - [

        ] + MarkupBlock - [0..26)::26 + MarkupTagHelperElement - [0..26)::26 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..12)::9 - input[SelfClosing] - InputTagHelper + MarkupTagHelperStartTag - [3..12)::9 + MarkupTextLiteral - [3..12)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[input]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTagHelperElement - [12..22)::10 - strong[SelfClosing] - StrongTagHelper + MarkupTagHelperStartTag - [12..22)::10 + MarkupTextLiteral - [12..22)::10 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [22..26)::4 + MarkupTextLiteral - [22..26)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent7.stree.txt index 2ad65df3f..272441bde 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent7.stree.txt @@ -1,12 +1,29 @@ -Markup block - Gen - 23 - (0:0,0) - Tag block - Gen - 23 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 6 - (3:0,3) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:5 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[br]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 10 - (9:0,9) - strong - StrongTagHelper - SelfClosing - +RazorDocument - [0..23)::23 - [


        ] + MarkupBlock - [0..23)::23 + MarkupTagHelperElement - [0..23)::23 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..9)::6 - [
        ] + MarkupTextLiteral - [3..9)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTagHelperElement - [9..19)::10 - strong[SelfClosing] - StrongTagHelper + MarkupTagHelperStartTag - [9..19)::10 + MarkupTextLiteral - [9..19)::10 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [19..23)::4 + MarkupTextLiteral - [19..23)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent8.stree.txt index 8f5688bdd..71a820bd4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNestedVoidSelfClosingRequiredParent8.stree.txt @@ -1,14 +1,41 @@ -Markup block - Gen - 30 - (0:0,0) - Tag block - Gen - 30 - (0:0,0) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 13 - (3:0,3) - p - PTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 6 - (6:0,6) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:5 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[br]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 10 - (16:0,16) - strong - StrongTagHelper - SelfClosing - +RazorDocument - [0..30)::30 - [


        ] + MarkupBlock - [0..30)::30 + MarkupTagHelperElement - [0..30)::30 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..16)::13 - p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [3..6)::3 + MarkupTextLiteral - [3..6)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [6..12)::6 - [
        ] + MarkupTextLiteral - [6..12)::6 - [
        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[br]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [12..16)::4 + MarkupTextLiteral - [12..16)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [16..26)::10 - strong[SelfClosing] - StrongTagHelper + MarkupTagHelperStartTag - [16..26)::10 + MarkupTextLiteral - [16..26)::10 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + Whitespace;[ ]; + ForwardSlash;[/]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [26..30)::4 + MarkupTextLiteral - [26..30)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNullTagNameWithAllowedChildrenForCatchAll.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNullTagNameWithAllowedChildrenForCatchAll.stree.txt index 087bf2552..4c501a225 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNullTagNameWithAllowedChildrenForCatchAll.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNullTagNameWithAllowedChildrenForCatchAll.stree.txt @@ -1,7 +1,18 @@ -Markup block - Gen - 9 - (0:0,0) - Tag block - Gen - 9 - (0:0,0) - p - PTagHelper - CatchAllTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 2 - (3:0,3) - Markup span - Gen - [] + MarkupBlock - [0..9)::9 + MarkupTagHelperElement - [0..9)::9 - p[StartTagAndEndTag] - PTagHelper - CatchAllTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [3..5)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + MarkupTagHelperEndTag - [5..9)::4 + MarkupTextLiteral - [5..9)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNullTagNameWithAllowedChildrenForCatchAllWithPrefix.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNullTagNameWithAllowedChildrenForCatchAllWithPrefix.stree.txt index eb1d86560..dc937c139 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNullTagNameWithAllowedChildrenForCatchAllWithPrefix.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsNullTagNameWithAllowedChildrenForCatchAllWithPrefix.stree.txt @@ -1,7 +1,18 @@ -Markup block - Gen - 15 - (0:0,0) - Tag block - Gen - 15 - (0:0,0) - th:p - PTagHelper - CatchAllTagHelper - StartTagAndEndTag - ... - Tag block - Gen - 2 - (6:0,6) - Markup span - Gen - [] + MarkupBlock - [0..15)::15 + MarkupTagHelperElement - [0..15)::15 - th:p[StartTagAndEndTag] - PTagHelper - CatchAllTagHelper + MarkupTagHelperStartTag - [0..6)::6 + MarkupTextLiteral - [0..6)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:p]; + CloseAngle;[>]; + MarkupTagBlock - [6..8)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + MarkupTagHelperEndTag - [8..15)::7 + MarkupTextLiteral - [8..15)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[th:p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags1.stree.txt index cb816d8ad..0d18d3c33 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags1.stree.txt @@ -1,5 +1,14 @@ -Markup block - Gen - 11 - (0:0,0) - Tag block - Gen - 11 - (0:0,0) - p - PTagHelper - CatchALlTagHelper - StartTagAndEndTag -

        - Tag block - Gen - 8 - (3:0,3) - strong - StrongTagHelper - CatchALlTagHelper - StartTagAndEndTag - +RazorDocument - [0..11)::11 - [

        ] + MarkupBlock - [0..11)::11 + MarkupTagHelperElement - [0..11)::11 - p[StartTagAndEndTag] - PTagHelper - CatchALlTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..11)::8 - strong[StartTagAndEndTag] - StrongTagHelper - CatchALlTagHelper + MarkupTagHelperStartTag - [3..11)::8 + MarkupTextLiteral - [3..11)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags2.stree.txt index c413ca371..d461b0621 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags2.stree.txt @@ -1,5 +1,20 @@ -Markup block - Gen - 20 - (0:0,0) - Tag block - Gen - 20 - (0:0,0) - p - PTagHelper - CatchALlTagHelper - StartTagAndEndTag -

        - Tag block - Gen - 17 - (3:0,3) - strong - StrongTagHelper - CatchALlTagHelper - StartTagAndEndTag - ... +RazorDocument - [0..20)::20 - [

        ] + MarkupBlock - [0..20)::20 + MarkupTagHelperElement - [0..20)::20 - p[StartTagAndEndTag] - PTagHelper - CatchALlTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..20)::17 - strong[StartTagAndEndTag] - StrongTagHelper - CatchALlTagHelper + MarkupTagHelperStartTag - [3..11)::8 + MarkupTextLiteral - [3..11)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [11..20)::9 + MarkupTextLiteral - [11..20)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags3.stree.txt index 2d2b30212..c052a7666 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags3.stree.txt @@ -1,7 +1,26 @@ -Markup block - Gen - 23 - (0:0,0) - Tag block - Gen - 15 - (0:0,0) - p - PTagHelper - CatchALlTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 8 - (3:0,3) - strong - StrongTagHelper - CatchALlTagHelper - StartTagAndEndTag - - Tag block - Gen - 8 - (15:0,15) - strong - StrongTagHelper - CatchALlTagHelper - StartTagAndEndTag - +RazorDocument - [0..23)::23 - [

        ] + MarkupBlock - [0..23)::23 + MarkupTagHelperElement - [0..15)::15 - p[StartTagAndEndTag] - PTagHelper - CatchALlTagHelper + MarkupTagHelperStartTag - [0..3)::3 + MarkupTextLiteral - [0..3)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [3..11)::8 - strong[StartTagAndEndTag] - StrongTagHelper - CatchALlTagHelper + MarkupTagHelperStartTag - [3..11)::8 + MarkupTextLiteral - [3..11)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [11..15)::4 + MarkupTextLiteral - [11..15)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagHelperElement - [15..23)::8 - strong[StartTagAndEndTag] - StrongTagHelper - CatchALlTagHelper + MarkupTagHelperStartTag - [15..23)::8 + MarkupTextLiteral - [15..23)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags4.stree.txt index 446e5d6f5..4d3b6a252 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags4.stree.txt @@ -1,21 +1,41 @@ -Markup block - Gen - 36 - (0:0,0) - Tag block - Gen - 1 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 35 - (1:0,1) - p - PTagHelper - CatchALlTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 1 - (4:0,4) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 18 - (5:0,5) - strong - StrongTagHelper - CatchALlTagHelper - StartTagAndEndTag - ... - 2 - (13:0,13) - Markup span - Gen - [ - 9 - (23:0,23) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..36)::36 - [<

        <

        ] + MarkupBlock - [0..36)::36 + MarkupTagBlock - [0..1)::1 - [<] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagHelperElement - [1..36)::35 - p[StartTagAndEndTag] - PTagHelper - CatchALlTagHelper + MarkupTagHelperStartTag - [1..4)::3 + MarkupTextLiteral - [1..4)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [4..5)::1 - [<] + MarkupTextLiteral - [4..5)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagHelperElement - [5..23)::18 - strong[StartTagAndEndTag] - StrongTagHelper - CatchALlTagHelper + MarkupTagHelperStartTag - [5..13)::8 + MarkupTextLiteral - [5..13)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [13..15)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + MarkupTagHelperEndTag - [15..23)::8 + MarkupTextLiteral - [15..23)::8 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + MarkupTagBlock - [23..32)::9 - [] + MarkupTextLiteral - [23..32)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [32..36)::4 + MarkupTextLiteral - [32..36)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags5.stree.txt index e97170dc3..9aac8c374 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags5.stree.txt @@ -1,21 +1,42 @@ -Markup block - Gen - 37 - (0:0,0) - Tag block - Gen - 1 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 36 - (1:0,1) - p - PTagHelper - CatchALlTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 1 - (4:0,4) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 19 - (5:0,5) - strong - StrongTagHelper - CatchALlTagHelper - StartTagAndEndTag - ... - Tag block - Gen - 2 - (13:0,13) - Markup span - Gen - [ - 9 - (24:0,24) - Markup span - Gen - [
        ] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[strong]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..37)::37 - [<

        <

        ] + MarkupBlock - [0..37)::37 + MarkupTagBlock - [0..1)::1 - [<] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagHelperElement - [1..37)::36 - p[StartTagAndEndTag] - PTagHelper - CatchALlTagHelper + MarkupTagHelperStartTag - [1..4)::3 + MarkupTextLiteral - [1..4)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [4..5)::1 - [<] + MarkupTextLiteral - [4..5)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagHelperElement - [5..24)::19 - strong[StartTagAndEndTag] - StrongTagHelper - CatchALlTagHelper + MarkupTagHelperStartTag - [5..13)::8 + MarkupTextLiteral - [5..13)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [13..15)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + MarkupTagHelperEndTag - [15..24)::9 + MarkupTextLiteral - [15..24)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagBlock - [24..33)::9 - [] + MarkupTextLiteral - [24..33)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [33..37)::4 + MarkupTextLiteral - [33..37)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags6.stree.txt index 0dcb4d95d..c51a71148 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsPartialRequiredParentTags6.stree.txt @@ -1,24 +1,45 @@ -Markup block - Gen - 38 - (0:0,0) - Tag block - Gen - 1 - (0:0,0) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 37 - (1:0,1) - p - PTagHelper - CatchALlTagHelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 1 - (4:0,4) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 20 - (5:0,5) - custom - CatchALlTagHelper - StartTagAndEndTag - ... - Tag block - Gen - 2 - (13:0,13) - Markup span - Gen - [ - 1 - (15:0,15) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.OpenAngle;[<]; - Tag block - Gen - 9 - (25:0,25) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[custom]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..38)::38 - [<

        <

        ] + MarkupBlock - [0..38)::38 + MarkupTagBlock - [0..1)::1 - [<] + MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagHelperElement - [1..38)::37 - p[StartTagAndEndTag] - PTagHelper - CatchALlTagHelper + MarkupTagHelperStartTag - [1..4)::3 + MarkupTextLiteral - [1..4)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [4..5)::1 - [<] + MarkupTextLiteral - [4..5)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagHelperElement - [5..25)::20 - custom[StartTagAndEndTag] - CatchALlTagHelper + MarkupTagHelperStartTag - [5..13)::8 + MarkupTextLiteral - [5..13)::8 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[custom]; + CloseAngle;[>]; + MarkupTagBlock - [13..15)::2 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + MarkupTagBlock - [15..16)::1 - [<] + MarkupTextLiteral - [15..16)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + MarkupTagHelperEndTag - [16..25)::9 + MarkupTextLiteral - [16..25)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[custom]; + CloseAngle;[>]; + MarkupTagBlock - [25..34)::9 - [] + MarkupTextLiteral - [25..34)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[custom]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [34..38)::4 + MarkupTextLiteral - [34..38)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelperPrefixAndAllowedChildren.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelperPrefixAndAllowedChildren.stree.txt index 921662bbf..72123df7a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelperPrefixAndAllowedChildren.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelperPrefixAndAllowedChildren.stree.txt @@ -1,5 +1,26 @@ -Markup block - Gen - 36 - (0:0,0) - Tag block - Gen - 36 - (0:0,0) - th:p - PTagHelper - StartTagAndEndTag - ... - Tag block - Gen - 23 - (6:0,6) - th:strong - StrongTagHelper - StartTagAndEndTag - ... +RazorDocument - [0..36)::36 - [] + MarkupBlock - [0..36)::36 + MarkupTagHelperElement - [0..36)::36 - th:p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..6)::6 + MarkupTextLiteral - [0..6)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:p]; + CloseAngle;[>]; + MarkupTagHelperElement - [6..29)::23 - th:strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [6..17)::11 + MarkupTextLiteral - [6..17)::11 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [17..29)::12 + MarkupTextLiteral - [17..29)::12 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[th:strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [29..36)::7 + MarkupTextLiteral - [29..36)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[th:p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelperPrefixAndAllowedChildrenAndRequireParent.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelperPrefixAndAllowedChildrenAndRequireParent.stree.txt index 921662bbf..72123df7a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelperPrefixAndAllowedChildrenAndRequireParent.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelperPrefixAndAllowedChildrenAndRequireParent.stree.txt @@ -1,5 +1,26 @@ -Markup block - Gen - 36 - (0:0,0) - Tag block - Gen - 36 - (0:0,0) - th:p - PTagHelper - StartTagAndEndTag - ... - Tag block - Gen - 23 - (6:0,6) - th:strong - StrongTagHelper - StartTagAndEndTag - ... +RazorDocument - [0..36)::36 - [] + MarkupBlock - [0..36)::36 + MarkupTagHelperElement - [0..36)::36 - th:p[StartTagAndEndTag] - PTagHelper + MarkupTagHelperStartTag - [0..6)::6 + MarkupTextLiteral - [0..6)::6 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:p]; + CloseAngle;[>]; + MarkupTagHelperElement - [6..29)::23 - th:strong[StartTagAndEndTag] - StrongTagHelper + MarkupTagHelperStartTag - [6..17)::11 + MarkupTextLiteral - [6..17)::11 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[th:strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [17..29)::12 + MarkupTextLiteral - [17..29)::12 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[th:strong]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [29..36)::7 + MarkupTextLiteral - [29..36)::7 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[th:p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelpersInHtmlTypedScriptTags1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelpersInHtmlTypedScriptTags1.stree.txt index c1b2328c0..dbabd3d1c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelpersInHtmlTypedScriptTags1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelpersInHtmlTypedScriptTags1.stree.txt @@ -1,27 +1,38 @@ -Markup block - Gen - 43 - (0:0,0) - Tag block - Gen - 25 - (0:0,0) - Markup span - Gen - [ - 17 - (7:0,7) - Markup span - Gen - [ type='] - SpanEditHandler;Accepts:Any - (7:0,7) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[type]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [text/html] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:3 - SyntaxKind.Text;[text]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[html]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (25:0,25) - input - inputtaghelper - SelfClosing - - Tag block - Gen - 9 - (34:0,34) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..43)::43 - [] + MarkupBlock - [0..43)::43 + MarkupTagBlock - [0..25)::25 - [] + MarkupTextLiteral - [34..43)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelpersInHtmlTypedScriptTags2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelpersInHtmlTypedScriptTags2.stree.txt index 9b1e8963b..f244fd4d6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelpersInHtmlTypedScriptTags2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelpersInHtmlTypedScriptTags2.stree.txt @@ -1,47 +1,66 @@ -Markup block - Gen - 76 - (0:0,0) - Tag block - Gen - 58 - (0:0,0) - Markup span - Gen - [ - 15 - (7:0,7) - Markup span - Gen - [ id='] - SpanEditHandler;Accepts:Any - (7:0,7) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[id]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [scriptTag] - SpanEditHandler;Accepts:Any - (12:0,12) - Tokens:1 - SyntaxKind.Text;[scriptTag]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 17 - (22:0,22) - Markup span - Gen - [ type='] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[type]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [text/html] - SpanEditHandler;Accepts:Any - (29:0,29) - Tokens:3 - SyntaxKind.Text;[text]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[html]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (38:0,38) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup block - Gen - 18 - (39:0,39) - Markup span - Gen - [ class='] - SpanEditHandler;Accepts:Any - (39:0,39) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [something] - SpanEditHandler;Accepts:Any - (47:0,47) - Tokens:1 - SyntaxKind.Text;[something]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (56:0,56) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (57:0,57) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (58:0,58) - input - inputtaghelper - SelfClosing - - Tag block - Gen - 9 - (67:0,67) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (67:0,67) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..76)::76 - [] + MarkupBlock - [0..76)::76 + MarkupTagBlock - [0..58)::58 - [] + MarkupTextLiteral - [67..76)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelpersInHtmlTypedScriptTags3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelpersInHtmlTypedScriptTags3.stree.txt index 324cd5701..d10c1b64d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelpersInHtmlTypedScriptTags3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelpersInHtmlTypedScriptTags3.stree.txt @@ -1,53 +1,78 @@ -Markup block - Gen - 84 - (0:0,0) - Tag block - Gen - 25 - (0:0,0) - Markup span - Gen - [ - 17 - (7:0,7) - Markup span - Gen - [ type='] - SpanEditHandler;Accepts:Any - (7:0,7) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[type]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [text/html] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:3 - SyntaxKind.Text;[text]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[html]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 50 - (25:0,25) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 25 - (28:0,28) - Markup span - Gen - [ - 17 - (35:0,35) - Markup span - Gen - [ type='] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[type]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [text/html] - SpanEditHandler;Accepts:Any - (42:0,42) - Tokens:3 - SyntaxKind.Text;[text]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[html]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (51:0,51) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (52:0,52) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (53:0,53) - input - inputtaghelper - SelfClosing - - Tag block - Gen - 9 - (62:0,62) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (62:0,62) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (75:0,75) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (75:0,75) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..84)::84 - [

        ] + MarkupBlock - [0..84)::84 + MarkupTagBlock - [0..25)::25 - [] + MarkupTextLiteral - [62..71)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [71..75)::4 + MarkupTextLiteral - [71..75)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [75..84)::9 - [] + MarkupTextLiteral - [75..84)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelpersInHtmlTypedScriptTags4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelpersInHtmlTypedScriptTags4.stree.txt index 701a3080a..42c1b2fe1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelpersInHtmlTypedScriptTags4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/UnderstandsTagHelpersInHtmlTypedScriptTags4.stree.txt @@ -1,59 +1,80 @@ -Markup block - Gen - 85 - (0:0,0) - Tag block - Gen - 25 - (0:0,0) - Markup span - Gen - [ - 17 - (7:0,7) - Markup span - Gen - [ type='] - SpanEditHandler;Accepts:Any - (7:0,7) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[type]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [text/html] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:3 - SyntaxKind.Text;[text]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[html]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 51 - (25:0,25) - p - ptaghelper - StartTagAndEndTag -

        ...

        - Tag block - Gen - 26 - (28:0,28) - Markup span - Gen - [ - 18 - (35:0,35) - Markup span - Gen - [ type='] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:4 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[type]; - SyntaxKind.Equals;[=]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [text/] - SpanEditHandler;Accepts:Any - (42:0,42) - Tokens:2 - SyntaxKind.Text;[text]; - SyntaxKind.ForwardSlash;[/]; - Markup span - Gen - [ html] - SpanEditHandler;Accepts:Any - (47:0,47) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[html]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (52:0,52) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (53:0,53) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (54:0,54) - Tokens:5 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[input]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (63:0,63) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (63:0,63) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 9 - (76:0,76) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (76:0,76) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[script]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..85)::85 - [

        ] + MarkupBlock - [0..85)::85 + MarkupTagBlock - [0..25)::25 - [] + MarkupTextLiteral - [63..72)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; + MarkupTagHelperEndTag - [72..76)::4 + MarkupTextLiteral - [72..76)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [76..85)::9 - [] + MarkupTextLiteral - [76..85)::9 - [] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[script]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/BlockFactory.cs b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/BlockFactory.cs index 0b924e87f..83c8fac5a 100644 --- a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/BlockFactory.cs +++ b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/BlockFactory.cs @@ -85,7 +85,7 @@ public Block TagHelperBlock( var builder = new TagHelperBlockBuilder( tagName, tagMode, - attributes: new List(), + attributes: new List(), children: children) { Start = start, diff --git a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/BlockTypes.cs b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/BlockTypes.cs index 56deb6b46..364e03742 100644 --- a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/BlockTypes.cs +++ b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/BlockTypes.cs @@ -108,18 +108,18 @@ public MarkupBlock(params SyntaxTreeNode[] children) internal class MarkupTagHelperBlock : TagHelperBlock { public MarkupTagHelperBlock(string tagName) - : this(tagName, tagMode: TagMode.StartTagAndEndTag, attributes: new List()) + : this(tagName, tagMode: TagMode.StartTagAndEndTag, attributes: new List()) { } public MarkupTagHelperBlock(string tagName, TagMode tagMode) - : this(tagName, tagMode, new List()) + : this(tagName, tagMode, new List()) { } public MarkupTagHelperBlock( string tagName, - IList attributes) + IList attributes) : this(tagName, TagMode.StartTagAndEndTag, attributes, children: new SyntaxTreeNode[0]) { } @@ -127,7 +127,7 @@ public MarkupTagHelperBlock( public MarkupTagHelperBlock( string tagName, TagMode tagMode, - IList attributes) + IList attributes) : this(tagName, tagMode, attributes, new SyntaxTreeNode[0]) { } @@ -136,19 +136,19 @@ public MarkupTagHelperBlock(string tagName, params SyntaxTreeNode[] children) : this( tagName, TagMode.StartTagAndEndTag, - attributes: new List(), + attributes: new List(), children: children) { } public MarkupTagHelperBlock(string tagName, TagMode tagMode, params SyntaxTreeNode[] children) - : this(tagName, tagMode, new List(), children) + : this(tagName, tagMode, new List(), children) { } public MarkupTagHelperBlock( string tagName, - IList attributes, + IList attributes, params SyntaxTreeNode[] children) : base(new TagHelperBlockBuilder( tagName, @@ -161,7 +161,7 @@ public MarkupTagHelperBlock( public MarkupTagHelperBlock( string tagName, TagMode tagMode, - IList attributes, + IList attributes, params SyntaxTreeNode[] children) : base(new TagHelperBlockBuilder(tagName, tagMode, attributes, children)) { diff --git a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/ParserTestBase.cs b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/ParserTestBase.cs index 8fc515d78..0d4019a30 100644 --- a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/ParserTestBase.cs +++ b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/ParserTestBase.cs @@ -246,28 +246,28 @@ internal RazorSyntaxTree ParseBlock(string document, IEnumerable directives, bool designTime); - internal RazorSyntaxTree ParseDocument(string document, bool designTime = false) + internal RazorSyntaxTree ParseDocument(string document, bool designTime = false, RazorParserFeatureFlags featureFlags = null) { - return ParseDocument(RazorLanguageVersion.Latest, document, designTime); + return ParseDocument(RazorLanguageVersion.Latest, document, designTime, featureFlags); } - internal RazorSyntaxTree ParseDocument(RazorLanguageVersion version, string document, bool designTime = false) + internal RazorSyntaxTree ParseDocument(RazorLanguageVersion version, string document, bool designTime = false, RazorParserFeatureFlags featureFlags = null) { - return ParseDocument(version, document, null, designTime); + return ParseDocument(version, document, null, designTime, featureFlags); } - internal RazorSyntaxTree ParseDocument(string document, IEnumerable directives, bool designTime = false) + internal RazorSyntaxTree ParseDocument(string document, IEnumerable directives, bool designTime = false, RazorParserFeatureFlags featureFlags = null) { - return ParseDocument(RazorLanguageVersion.Latest, document, directives, designTime); + return ParseDocument(RazorLanguageVersion.Latest, document, directives, designTime, featureFlags); } - internal virtual RazorSyntaxTree ParseDocument(RazorLanguageVersion version, string document, IEnumerable directives, bool designTime = false) + internal virtual RazorSyntaxTree ParseDocument(RazorLanguageVersion version, string document, IEnumerable directives, bool designTime = false, RazorParserFeatureFlags featureFlags = null) { directives = directives ?? Array.Empty(); var source = TestRazorSourceDocument.Create(document, filePath: null, relativePath: null, normalizeNewLines: true); - var options = CreateParserOptions(version, directives, designTime); + var options = CreateParserOptions(version, directives, designTime, featureFlags); var context = new ParserContext(source, options); var codeParser = new CSharpCodeParser(directives, context); @@ -675,8 +675,8 @@ private static void EvaluateTagHelperBlock(ErrorCollector collector, TagHelperBl private static void EvaluateTagHelperAttribute( ErrorCollector collector, - TagHelperAttributeNode actual, - TagHelperAttributeNode expected) + LegacyTagHelperAttributeNode actual, + LegacyTagHelperAttributeNode expected) { if (actual.Name != expected.Name) { @@ -762,16 +762,45 @@ private static void WriteTraceLine(string format, params object[] args) Trace.WriteLine(string.Format(format, args)); } - protected static RazorParserOptions CreateParserOptions( + internal static RazorParserOptions CreateParserOptions( RazorLanguageVersion version, IEnumerable directives, - bool designTime) + bool designTime, + RazorParserFeatureFlags featureFlags = null) { - return new DefaultRazorParserOptions( + return new TestRazorParserOptions( directives.ToArray(), designTime, parseLeadingDirectives: false, - version: version); + version: version, + featureFlags: featureFlags); + } + + private class TestRazorParserOptions : RazorParserOptions + { + public TestRazorParserOptions(DirectiveDescriptor[] directives, bool designTime, bool parseLeadingDirectives, RazorLanguageVersion version, RazorParserFeatureFlags featureFlags = null) + { + if (directives == null) + { + throw new ArgumentNullException(nameof(directives)); + } + + Directives = directives; + DesignTime = designTime; + ParseLeadingDirectives = parseLeadingDirectives; + Version = version; + FeatureFlags = featureFlags ?? RazorParserFeatureFlags.Create(Version); + } + + public override bool DesignTime { get; } + + public override IReadOnlyCollection Directives { get; } + + public override bool ParseLeadingDirectives { get; } + + public override RazorLanguageVersion Version { get; } + + internal override RazorParserFeatureFlags FeatureFlags { get; } } } } \ No newline at end of file diff --git a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeParserTestBase.cs b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeParserTestBase.cs index 2aaf664b2..3cc5b7d95 100644 --- a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeParserTestBase.cs +++ b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeParserTestBase.cs @@ -15,7 +15,7 @@ public abstract class SyntaxNodeParserTestBase : ParserTestBase { protected bool UseNewSyntaxTree { get; set; } - internal override RazorSyntaxTree ParseDocument(RazorLanguageVersion version, string document, IEnumerable directives, bool designTime = false) + internal override RazorSyntaxTree ParseDocument(RazorLanguageVersion version, string document, IEnumerable directives, bool designTime = false, RazorParserFeatureFlags featureFlags = null) { if (!UseNewSyntaxTree) { @@ -26,7 +26,7 @@ internal override RazorSyntaxTree ParseDocument(RazorLanguageVersion version, st var source = TestRazorSourceDocument.Create(document, filePath: null, relativePath: null, normalizeNewLines: true); - var options = CreateParserOptions(version, directives, designTime); + var options = CreateParserOptions(version, directives, designTime, featureFlags); var context = new ParserContext(source, options); var codeParser = new CSharpCodeParser(directives, context); @@ -213,9 +213,7 @@ internal override void AssertSyntaxTreeNodeMatchesBaseline(RazorSyntaxTree synta if (tagHelperSpanFile.Exists()) { tagHelperSpanBaseline = tagHelperSpanFile.ReadAllText().Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); - - // Temporary - throw new NotImplementedException("Tag helpers don't use the new syntax tree yet."); + TagHelperSpanVerifier.Verify(syntaxTree, tagHelperSpanBaseline); } } } diff --git a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeWriter.cs b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeWriter.cs index b9f804512..68119f151 100644 --- a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeWriter.cs +++ b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/SyntaxNodeWriter.cs @@ -50,6 +50,19 @@ private void WriteNode(SyntaxNode node) WriteSeparator(); Write($"[{node.Position}..{node.EndPosition})::{node.FullWidth}"); + if (node is MarkupTagHelperElementSyntax tagHelperElement) + { + WriteTagHelperElement(tagHelperElement); + } + else if (node is MarkupTagHelperAttributeSyntax tagHelperAttribute) + { + WriteTagHelperAttributeInfo(tagHelperAttribute.TagHelperAttributeInfo); + } + else if (node is MarkupMinimizedTagHelperAttributeSyntax minimizedTagHelperAttribute) + { + WriteTagHelperAttributeInfo(minimizedTagHelperAttribute.TagHelperAttributeInfo); + } + if (ShouldDisplayNodeContent(node)) { WriteSeparator(); @@ -70,6 +83,34 @@ private void WriteNode(SyntaxNode node) } } + private void WriteTagHelperElement(MarkupTagHelperElementSyntax node) + { + // Write tag name + WriteSeparator(); + Write($"{node.TagHelperInfo.TagName}[{node.TagHelperInfo.TagMode}]"); + + // Write descriptors + foreach (var descriptor in node.TagHelperInfo.BindingResult.Descriptors) + { + WriteSeparator(); + + // Get the type name without the namespace. + var typeName = descriptor.Name.Substring(descriptor.Name.LastIndexOf('.') + 1); + Write(typeName); + } + } + + private void WriteTagHelperAttributeInfo(TagHelperAttributeInfo info) + { + // Write attributes + WriteSeparator(); + Write(info.Name); + WriteSeparator(); + Write(info.AttributeStructure); + WriteSeparator(); + Write(info.Bound ? "Bound" : "Unbound"); + } + private void WriteToken(SyntaxToken token) { WriteIndent(); @@ -132,6 +173,8 @@ private static bool ShouldDisplayNodeContent(SyntaxNode node) node.Kind == SyntaxKind.MarkupTagBlock || node.Kind == SyntaxKind.MarkupAttributeBlock || node.Kind == SyntaxKind.MarkupMinimizedAttributeBlock || + node.Kind == SyntaxKind.MarkupTagHelperAttribute || + node.Kind == SyntaxKind.MarkupMinimizedTagHelperAttribute || node.Kind == SyntaxKind.MarkupLiteralAttributeValue || node.Kind == SyntaxKind.MarkupDynamicAttributeValue || node.Kind == SyntaxKind.CSharpStatementLiteral || diff --git a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/TagHelperSpan/TagHelperSpanSerializer.cs b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/TagHelperSpan/TagHelperSpanSerializer.cs index a778d054b..c7065daea 100644 --- a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/TagHelperSpan/TagHelperSpanSerializer.cs +++ b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/TagHelperSpan/TagHelperSpanSerializer.cs @@ -1,6 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.IO; namespace Microsoft.AspNetCore.Razor.Language.Legacy @@ -9,10 +10,16 @@ internal class TagHelperSpanSerializer { internal static string Serialize(SyntaxTreeNode node, string filePath = null) { + if (!(node is Block block)) + { + return string.Empty; + } + using (var writer = new StringWriter()) { - var visitor = new TagHelperSpanWriter(writer, filePath); - visitor.Visit(node); + var syntaxTree = GetSyntaxTree(block, filePath); + var visitor = new TagHelperSpanWriter(writer, syntaxTree); + visitor.Visit(); return writer.ToString(); } @@ -20,7 +27,22 @@ internal static string Serialize(SyntaxTreeNode node, string filePath = null) internal static string Serialize(RazorSyntaxTree syntaxTree) { - return string.Empty; + using (var writer = new StringWriter()) + { + var visitor = new TagHelperSpanWriter(writer, syntaxTree); + visitor.Visit(); + + return writer.ToString(); + } + } + + private static RazorSyntaxTree GetSyntaxTree(Block root, string filePath) + { + return RazorSyntaxTree.Create( + root, + TestRazorSourceDocument.Create(filePath: filePath), + Array.Empty(), + RazorParserOptions.CreateDefault()); } } } diff --git a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/TagHelperSpan/TagHelperSpanVerifier.cs b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/TagHelperSpan/TagHelperSpanVerifier.cs index 7fd7d9f07..4406bbd59 100644 --- a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/TagHelperSpan/TagHelperSpanVerifier.cs +++ b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/TagHelperSpan/TagHelperSpanVerifier.cs @@ -1,6 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.IO; using System.Text; using Xunit; @@ -12,14 +13,39 @@ internal class TagHelperSpanVerifier { internal static void Verify(SyntaxTreeNode node, string filePath, string[] baseline) { + if (!(node is Block block)) + { + return; + } + using (var writer = new StringWriter()) { - var walker = new Walker(writer, filePath, baseline); - walker.Visit(node); + var syntaxTree = GetSyntaxTree(block, filePath); + var walker = new Walker(writer, syntaxTree, baseline); + walker.Visit(); walker.AssertReachedEndOfBaseline(); } } + internal static void Verify(RazorSyntaxTree syntaxTree, string[] baseline) + { + using (var writer = new StringWriter()) + { + var walker = new Walker(writer, syntaxTree, baseline); + walker.Visit(); + walker.AssertReachedEndOfBaseline(); + } + } + + private static RazorSyntaxTree GetSyntaxTree(Block root, string filePath) + { + return RazorSyntaxTree.Create( + root, + TestRazorSourceDocument.Create(filePath: filePath), + Array.Empty(), + RazorParserOptions.CreateDefault()); + } + private class Walker : TagHelperSpanWriter { private readonly string[] _baseline; @@ -27,7 +53,7 @@ private class Walker : TagHelperSpanWriter private int _index; - public Walker(StringWriter writer, string filePath, string[] baseline) : base(writer, filePath) + public Walker(StringWriter writer, RazorSyntaxTree syntaxTree, string[] baseline) : base(writer, syntaxTree) { _writer = writer; _baseline = baseline; diff --git a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/TagHelperSpan/TagHelperSpanWriter.cs b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/TagHelperSpan/TagHelperSpanWriter.cs index 1552bdb71..3a814aa06 100644 --- a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/TagHelperSpan/TagHelperSpanWriter.cs +++ b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/TagHelperSpan/TagHelperSpanWriter.cs @@ -1,31 +1,24 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -using System; -using System.Collections.Generic; using System.IO; namespace Microsoft.AspNetCore.Razor.Language.Legacy { internal class TagHelperSpanWriter { - private readonly string _filePath; + private readonly RazorSyntaxTree _syntaxTree; private readonly TextWriter _writer; - public TagHelperSpanWriter(TextWriter writer, string filePath) + public TagHelperSpanWriter(TextWriter writer, RazorSyntaxTree syntaxTree) { _writer = writer; - _filePath = filePath; + _syntaxTree = syntaxTree; } - public virtual void Visit(SyntaxTreeNode node) + public virtual void Visit() { - if (!(node is Block block)) - { - return; - } - - var tagHelperSpans = GetTagHelperSpans(block, _filePath); + var tagHelperSpans = _syntaxTree.GetTagHelperSpans(); foreach (var span in tagHelperSpans) { VisitTagHelperSpan(span); @@ -65,17 +58,5 @@ protected void Write(object value) { _writer.Write(value); } - - internal static IReadOnlyList GetTagHelperSpans(Block root, string filePath) - { - // We don't care about the options and diagnostic here. - var syntaxTree = RazorSyntaxTree.Create( - root, - TestRazorSourceDocument.Create(filePath: filePath), - Array.Empty(), - RazorParserOptions.CreateDefault()); - - return syntaxTree.GetTagHelperSpans(); - } } } From 9a862c6bdd372f8343e266759dec7924f8b8783f Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Thu, 18 Oct 2018 18:03:25 -0700 Subject: [PATCH 19/23] Rewrite intermediate phase --- .../ClassifiedSpanVisitor.cs | 38 +- ...faultRazorIntermediateNodeLoweringPhase.cs | 896 ++++++++++++------ .../DefaultRazorParsingPhase.cs | 4 +- .../DefaultRazorTagHelperBinderPhase.cs | 90 +- .../Legacy/CSharpParser.cs | 46 +- .../Legacy/RazorParser.cs | 15 +- .../Legacy/TagHelperBlockRewriter.cs | 189 ++-- .../Legacy/TokenizerBackedParser.cs | 10 +- .../Legacy/WhiteSpaceRewriter.cs | 5 + ...egacyRazorIntermediateNodeLoweringPhase.cs | 839 ++++++++++++++++ .../RazorEngine.cs | 1 + .../RazorProjectEngine.cs | 1 + .../RazorSyntaxTree.cs | 8 +- .../Syntax/GreenNodeExtensions.cs | 13 + .../InternalSyntax/RazorDirectiveSyntax.cs | 33 + .../Syntax/RazorDirectiveSyntax.cs | 33 + .../Syntax/SyntaxFactory.cs | 5 + .../Syntax/SyntaxNode.cs | 10 +- .../Syntax/SyntaxNodeExtensions.cs | 32 +- .../Syntax/SyntaxRewriter.cs | 2 +- .../breakingchanges.netcore.json | 10 + .../breakingchanges.netframework.json | 10 + .../BasicTest.codegen.cs | 2 +- .../BasicTest.ir.txt | 2 +- .../DesignTimeNodeWriterTest.cs | 3 +- .../CodeGeneration/RuntimeNodeWriterTest.cs | 3 +- ...elperHtmlAttributeRuntimeNodeWriterTest.cs | 3 +- ...mediateNodeLoweringPhaseIntegrationTest.cs | 3 +- ...tRazorIntermediateNodeLoweringPhaseTest.cs | 32 +- .../DefaultRazorTagHelperBinderPhaseTest.cs | 94 +- .../HtmlNodeOptimizationPassTest.cs | 32 +- .../TagHelpersIntegrationTest.cs | 2 + .../Legacy/CSharpCodeParserTest.cs | 6 +- .../Legacy/HtmlAttributeTest.cs | 84 -- .../Legacy/RazorParserTest.cs | 57 +- .../RazorEngineTest.cs | 2 + .../RazorProjectEngineTest.cs | 1 + .../RazorSyntaxTreeTest.cs | 34 +- .../ComplexTagHelpers_DesignTime.ir.txt | 2 +- .../ComplexTagHelpers_Runtime.codegen.cs | 2 +- .../ComplexTagHelpers_Runtime.ir.txt | 2 +- ...ctorTagHelperAttributes_Runtime.codegen.cs | 2 +- ...SelectorTagHelperAttributes_Runtime.ir.txt | 2 +- ...icateAttributeTagHelpers_DesignTime.ir.txt | 4 +- ...cateAttributeTagHelpers_Runtime.codegen.cs | 15 +- ...uplicateAttributeTagHelpers_Runtime.ir.txt | 15 +- .../FunctionsBlockMinimal_Runtime.ir.txt | 4 +- .../NestedTagHelpers_DesignTime.ir.txt | 2 +- .../NestedTagHelpers_Runtime.codegen.cs | 2 +- .../NestedTagHelpers_Runtime.ir.txt | 2 +- ...hWeirdlySpacedAttributes_DesignTime.ir.txt | 6 +- ...WeirdlySpacedAttributes_Runtime.codegen.cs | 4 +- ...WithWeirdlySpacedAttributes_Runtime.ir.txt | 4 +- .../NestedTagHelpers.ir.txt | 2 +- .../CapturesNewlineAfterUsing.stree.txt | 2 +- ...oesntCaptureWhitespaceAfterUsing.stree.txt | 2 +- ...IfNamespaceAliasMissingSemicolon.stree.txt | 2 +- ...fNamespaceImportMissingSemicolon.stree.txt | 2 +- ...ForUsingKeywordIfIsInValidFormat.stree.txt | 2 +- ...ForUsingKeywordIfIsInValidFormat.stree.txt | 2 +- ...mentBetweenCatchAndFinallyClause.stree.txt | 4 +- ...orCommentBetweenDoAndWhileClause.stree.txt | 4 +- ...ommentBetweenElseIfAndElseClause.stree.txt | 4 +- ...zorCommentBetweenIfAndElseClause.stree.txt | 4 +- ...rCommentBetweenIfAndElseIfClause.stree.txt | 4 +- ...rCommentBetweenTryAndCatchClause.stree.txt | 4 +- ...ommentBetweenTryAndFinallyClause.stree.txt | 4 +- .../StaticUsing_Complete_Spaced.stree.txt | 2 +- .../StaticUsing_GlobalPrefix.stree.txt | 2 +- .../StaticUsing_MultipleIdentifiers.stree.txt | 2 +- .../StaticUsing_NoUsing.stree.txt | 2 +- .../StaticUsing_SingleIdentifier.stree.txt | 2 +- .../UsingNamespaceImport.stree.txt | 2 +- .../UsingTypeAlias.stree.txt | 2 +- .../CanHandleSymbolBoundAttributes5.stree.txt | 5 +- .../CanHandleSymbolBoundAttributes7.stree.txt | 5 +- ...rEmptyTagHelperBoundAttributes1.cspans.txt | 1 + ...orEmptyTagHelperBoundAttributes1.stree.txt | 1 + ...EmptyTagHelperBoundAttributes10.cspans.txt | 1 + ...rEmptyTagHelperBoundAttributes10.stree.txt | 1 + ...EmptyTagHelperBoundAttributes11.cspans.txt | 2 + ...rEmptyTagHelperBoundAttributes11.stree.txt | 2 + ...rEmptyTagHelperBoundAttributes12.stree.txt | 5 +- ...rEmptyTagHelperBoundAttributes13.stree.txt | 23 +- ...rEmptyTagHelperBoundAttributes14.stree.txt | 31 +- ...rEmptyTagHelperBoundAttributes4.cspans.txt | 2 + ...orEmptyTagHelperBoundAttributes4.stree.txt | 2 + ...rEmptyTagHelperBoundAttributes7.cspans.txt | 1 + ...orEmptyTagHelperBoundAttributes7.stree.txt | 1 + ...orEmptyTagHelperBoundAttributes8.stree.txt | 5 +- ...orEmptyTagHelperBoundAttributes9.stree.txt | 5 +- ...orNonStringTagHelperAttributes10.stree.txt | 5 +- ...orNonStringTagHelperAttributes11.stree.txt | 67 +- ...ForNonStringTagHelperAttributes3.stree.txt | 27 +- ...ForNonStringTagHelperAttributes4.stree.txt | 31 +- ...ForNonStringTagHelperAttributes5.stree.txt | 5 +- ...ForNonStringTagHelperAttributes6.stree.txt | 28 +- ...ForNonStringTagHelperAttributes7.stree.txt | 79 +- ...ForNonStringTagHelperAttributes8.stree.txt | 28 +- ...ForNonStringTagHelperAttributes9.stree.txt | 28 +- ...standsEmptyAttributeTagHelpers1.cspans.txt | 1 + ...rstandsEmptyAttributeTagHelpers1.stree.txt | 1 + ...standsEmptyAttributeTagHelpers2.cspans.txt | 1 + ...rstandsEmptyAttributeTagHelpers2.stree.txt | 1 + ...standsEmptyAttributeTagHelpers4.cspans.txt | 2 + ...rstandsEmptyAttributeTagHelpers4.stree.txt | 2 + ...standsEmptyAttributeTagHelpers5.cspans.txt | 2 + ...rstandsEmptyAttributeTagHelpers5.stree.txt | 2 + ...andsMinimizedAttributes_Block12.cspans.txt | 1 + ...tandsMinimizedAttributes_Block12.stree.txt | 1 + ...andsMinimizedAttributes_Block13.cspans.txt | 1 + ...tandsMinimizedAttributes_Block13.stree.txt | 1 + ...tandsMinimizedAttributes_Block15.stree.txt | 13 +- ...sMinimizedAttributes_Document12.cspans.txt | 1 + ...dsMinimizedAttributes_Document12.stree.txt | 1 + ...sMinimizedAttributes_Document13.cspans.txt | 1 + ...dsMinimizedAttributes_Document13.stree.txt | 1 + ...dsMinimizedAttributes_Document15.stree.txt | 13 +- .../AllowsPrefixedTagHelpers11.stree.txt | 23 +- .../AllowsRazorCommentsAsChildren.stree.txt | 2 +- ...reateTagHelperBlocksCorrectly19.cspans.txt | 1 + ...CreateTagHelperBlocksCorrectly19.stree.txt | 1 + ...reateTagHelperBlocksCorrectly21.cspans.txt | 1 + ...CreateTagHelperBlocksCorrectly21.stree.txt | 1 + ...reateTagHelperBlocksCorrectly23.cspans.txt | 1 + ...CreateTagHelperBlocksCorrectly23.stree.txt | 1 + ...reateTagHelperBlocksCorrectly26.cspans.txt | 1 + ...CreateTagHelperBlocksCorrectly26.stree.txt | 1 + ...reateTagHelperBlocksCorrectly27.cspans.txt | 1 + ...CreateTagHelperBlocksCorrectly27.stree.txt | 1 + ...reateTagHelperBlocksCorrectly28.cspans.txt | 1 + ...CreateTagHelperBlocksCorrectly28.stree.txt | 1 + ...reateTagHelperBlocksCorrectly30.cspans.txt | 1 + ...CreateTagHelperBlocksCorrectly30.stree.txt | 1 + .../IntegrationTests/IntegrationTestBase.cs | 45 +- ...rosoft.AspNetCore.Razor.Test.Common.csproj | 2 +- 136 files changed, 2299 insertions(+), 998 deletions(-) create mode 100644 src/Microsoft.AspNetCore.Razor.Language/LegacyRazorIntermediateNodeLoweringPhase.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Syntax/InternalSyntax/RazorDirectiveSyntax.cs create mode 100644 src/Microsoft.AspNetCore.Razor.Language/Syntax/RazorDirectiveSyntax.cs diff --git a/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs b/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs index 40f70c74e..86229709a 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs @@ -99,8 +99,8 @@ public override SyntaxNode VisitMarkupBlock(MarkupBlockSyntax node) public override SyntaxNode VisitGenericBlock(GenericBlockSyntax node) { - if (!(node.Parent is MarkupDynamicAttributeValueSyntax) && - node.FirstAncestorOrSelf(n => n is MarkupDynamicAttributeValueSyntax) != null) + if (!(node.Parent is MarkupTagHelperAttributeValueSyntax) && + node.FirstAncestorOrSelf(n => n is MarkupTagHelperAttributeValueSyntax) != null) { return WriteBlock(node, BlockKindInternal.Expression, base.VisitGenericBlock); } @@ -284,8 +284,8 @@ private void WriteSpan(SyntaxNode node, SpanKindInternal kind, AcceptedCharacter return; } - var spanSource = GetSourceSpanForNode(node); - var blockSource = GetSourceSpanForNode(_currentBlock); + var spanSource = node.GetSourceSpan(_source); + var blockSource = _currentBlock.GetSourceSpan(_source); if (!acceptedCharacters.HasValue) { acceptedCharacters = AcceptedCharactersInternal.Any; @@ -337,35 +337,5 @@ private MarkupTextLiteralSyntax MergeTextLiteralSpans(params MarkupTextLiteralSy return (MarkupTextLiteralSyntax)mergedLiteralSyntax.CreateRed(parent, position); } - - private SourceSpan GetSourceSpanForNode(SyntaxNode node) - { - try - { - if (_source.Length == 0) - { - // Just a marker symbol - return new SourceSpan(_source.FilePath, 0, 0, 0, node.FullWidth); - } - if (node.Position >= _source.Length) - { - // E.g. Marker symbol at the end of the document - var lastLocation = _source.Lines.GetLocation(_source.Length - 1); - return new SourceSpan( - lastLocation.FilePath, - lastLocation.AbsoluteIndex + 1, - lastLocation.LineIndex, - lastLocation.CharacterIndex + 1, - node.FullWidth); - } - - return node.GetSourceSpan(_source); - } - catch (IndexOutOfRangeException) - { - Debug.Assert(false, "Node position should stay within document length."); - return new SourceSpan(_source.FilePath, node.Position, 0, 0, node.FullWidth); - } - } } } diff --git a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorIntermediateNodeLoweringPhase.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorIntermediateNodeLoweringPhase.cs index 66507df91..136bc6959 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorIntermediateNodeLoweringPhase.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorIntermediateNodeLoweringPhase.cs @@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Razor.Language.Extensions; using Microsoft.AspNetCore.Razor.Language.Intermediate; using Microsoft.AspNetCore.Razor.Language.Legacy; +using Microsoft.AspNetCore.Razor.Language.Syntax; namespace Microsoft.AspNetCore.Razor.Language { @@ -26,6 +27,12 @@ protected override void ExecuteCore(RazorCodeDocument codeDocument) var syntaxTree = codeDocument.GetSyntaxTree(); ThrowForMissingDocumentDependency(syntaxTree); + if (syntaxTree is LegacyRazorSyntaxTree) + { + // Can't handle legacy tree. + return; + } + // This might not have been set if there are no tag helpers. var tagHelperContext = codeDocument.GetTagHelperContext(); @@ -46,8 +53,8 @@ protected override void ExecuteCore(RazorCodeDocument codeDocument) { var import = imports[j]; - importsVisitor.FilePath = import.Source.FilePath; - importsVisitor.VisitBlock(import.LegacyRoot); + importsVisitor.SourceDocument = import.Source; + importsVisitor.Visit(import.Root); } importedUsings = importsVisitor.Usings; @@ -56,10 +63,10 @@ protected override void ExecuteCore(RazorCodeDocument codeDocument) var tagHelperPrefix = tagHelperContext?.Prefix; var visitor = new MainSourceVisitor(document, builder, tagHelperPrefix, syntaxTree.Options.FeatureFlags) { - FilePath = syntaxTree.Source.FilePath, + SourceDocument = syntaxTree.Source, }; - visitor.VisitBlock(syntaxTree.LegacyRoot); + visitor.Visit(syntaxTree.Root); // 1. Prioritize non-imported usings over imported ones. // 2. Don't import usings that already exist in primary document. @@ -189,7 +196,7 @@ public bool Equals(UsingReference other) public override int GetHashCode() => Namespace.GetHashCode(); } - private class LoweringVisitor : ParserVisitor + private class LoweringVisitor : SyntaxRewriter { protected readonly IntermediateNodeBuilder _builder; protected readonly DocumentIntermediateNode _document; @@ -206,195 +213,220 @@ public LoweringVisitor(DocumentIntermediateNode document, IntermediateNodeBuilde public IReadOnlyList Usings => _usings; - public string FilePath { get; set; } + public RazorSourceDocument SourceDocument { get; set; } - public override void VisitDirectiveToken(DirectiveTokenChunkGenerator chunkGenerator, Span span) - { - _builder.Add(new DirectiveTokenIntermediateNode() - { - Content = span.Content, - DirectiveToken = chunkGenerator.Descriptor, - Source = BuildSourceSpanFromNode(span), - }); - } - - public override void VisitDirectiveBlock(DirectiveChunkGenerator chunkGenerator, Block block) + public override SyntaxNode VisitRazorDirective(RazorDirectiveSyntax node) { IntermediateNode directiveNode; - if (IsMalformed(chunkGenerator.Diagnostics)) + var diagnostics = node.GetDiagnostics(); + var descriptor = node.DirectiveDescriptor; + + if (descriptor != null) { - directiveNode = new MalformedDirectiveIntermediateNode() + // This is an extensible directive. + if (IsMalformed(diagnostics)) { - DirectiveName = chunkGenerator.Descriptor.Directive, - Directive = chunkGenerator.Descriptor, - Source = BuildSourceSpanFromNode(block), - }; - } - else - { - directiveNode = new DirectiveIntermediateNode() + directiveNode = new MalformedDirectiveIntermediateNode() + { + DirectiveName = descriptor.Directive, + Directive = descriptor, + Source = BuildSourceSpanFromNode(node), + }; + } + else { - DirectiveName = chunkGenerator.Descriptor.Directive, - Directive = chunkGenerator.Descriptor, - Source = BuildSourceSpanFromNode(block), - }; - } + directiveNode = new DirectiveIntermediateNode() + { + DirectiveName = descriptor.Directive, + Directive = descriptor, + Source = BuildSourceSpanFromNode(node), + }; + } - for (var i = 0; i < chunkGenerator.Diagnostics.Count; i++) - { - directiveNode.Diagnostics.Add(chunkGenerator.Diagnostics[i]); - } + for (var i = 0; i < diagnostics.Length; i++) + { + directiveNode.Diagnostics.Add(diagnostics[i]); + } - _builder.Push(directiveNode); + _builder.Push(directiveNode); + } - VisitDefault(block); + Visit(node.Body); - _builder.Pop(); - } + if (descriptor != null) + { + _builder.Pop(); + } - public override void VisitImportSpan(AddImportChunkGenerator chunkGenerator, Span span) - { - var namespaceImport = chunkGenerator.Namespace.Trim(); - var namespaceSpan = BuildSourceSpanFromNode(span); - _usings.Add(new UsingReference(namespaceImport, namespaceSpan)); + return node; } - public override void VisitAddTagHelperSpan(AddTagHelperChunkGenerator chunkGenerator, Span span) + public override SyntaxNode VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) { - IntermediateNode directiveNode; - if (IsMalformed(chunkGenerator.Diagnostics)) + var context = node.GetSpanContext(); + if (context == null) { - directiveNode = new MalformedDirectiveIntermediateNode() - { - DirectiveName = CSharpCodeParser.AddTagHelperDirectiveDescriptor.Directive, - Directive = CSharpCodeParser.AddTagHelperDirectiveDescriptor, - Source = BuildSourceSpanFromNode(span), - }; + return base.VisitCSharpStatementLiteral(node); } - else + else if (context.ChunkGenerator is DirectiveTokenChunkGenerator tokenChunkGenerator) { - directiveNode = new DirectiveIntermediateNode() + _builder.Add(new DirectiveTokenIntermediateNode() { - DirectiveName = CSharpCodeParser.AddTagHelperDirectiveDescriptor.Directive, - Directive = CSharpCodeParser.AddTagHelperDirectiveDescriptor, - Source = BuildSourceSpanFromNode(span), - }; + Content = node.GetContent(), + DirectiveToken = tokenChunkGenerator.Descriptor, + Source = BuildSourceSpanFromNode(node), + }); } - - for (var i = 0; i < chunkGenerator.Diagnostics.Count; i++) + else if (context.ChunkGenerator is AddImportChunkGenerator importChunkGenerator) { - directiveNode.Diagnostics.Add(chunkGenerator.Diagnostics[i]); + var namespaceImport = importChunkGenerator.Namespace.Trim(); + var namespaceSpan = BuildSourceSpanFromNode(node); + _usings.Add(new UsingReference(namespaceImport, namespaceSpan)); } - - _builder.Push(directiveNode); - - _builder.Add(new DirectiveTokenIntermediateNode() + else if (context.ChunkGenerator is AddTagHelperChunkGenerator addTagHelperChunkGenerator) { - Content = chunkGenerator.LookupText, - DirectiveToken = CSharpCodeParser.AddTagHelperDirectiveDescriptor.Tokens.First(), - Source = BuildSourceSpanFromNode(span), - }); + IntermediateNode directiveNode; + if (IsMalformed(addTagHelperChunkGenerator.Diagnostics)) + { + directiveNode = new MalformedDirectiveIntermediateNode() + { + DirectiveName = CSharpCodeParser.AddTagHelperDirectiveDescriptor.Directive, + Directive = CSharpCodeParser.AddTagHelperDirectiveDescriptor, + Source = BuildSourceSpanFromNode(node), + }; + } + else + { + directiveNode = new DirectiveIntermediateNode() + { + DirectiveName = CSharpCodeParser.AddTagHelperDirectiveDescriptor.Directive, + Directive = CSharpCodeParser.AddTagHelperDirectiveDescriptor, + Source = BuildSourceSpanFromNode(node), + }; + } - _builder.Pop(); - } + for (var i = 0; i < addTagHelperChunkGenerator.Diagnostics.Count; i++) + { + directiveNode.Diagnostics.Add(addTagHelperChunkGenerator.Diagnostics[i]); + } - public override void VisitRemoveTagHelperSpan(RemoveTagHelperChunkGenerator chunkGenerator, Span span) - { - IntermediateNode directiveNode; - if (IsMalformed(chunkGenerator.Diagnostics)) - { - directiveNode = new MalformedDirectiveIntermediateNode() + _builder.Push(directiveNode); + + _builder.Add(new DirectiveTokenIntermediateNode() { - DirectiveName = CSharpCodeParser.RemoveTagHelperDirectiveDescriptor.Directive, - Directive = CSharpCodeParser.RemoveTagHelperDirectiveDescriptor, - Source = BuildSourceSpanFromNode(span), - }; + Content = addTagHelperChunkGenerator.LookupText, + DirectiveToken = CSharpCodeParser.AddTagHelperDirectiveDescriptor.Tokens.First(), + Source = BuildSourceSpanFromNode(node), + }); + + _builder.Pop(); } - else + else if (context.ChunkGenerator is RemoveTagHelperChunkGenerator removeTagHelperChunkGenerator) { - directiveNode = new DirectiveIntermediateNode() + IntermediateNode directiveNode; + if (IsMalformed(removeTagHelperChunkGenerator.Diagnostics)) { - DirectiveName = CSharpCodeParser.RemoveTagHelperDirectiveDescriptor.Directive, - Directive = CSharpCodeParser.RemoveTagHelperDirectiveDescriptor, - Source = BuildSourceSpanFromNode(span), - }; - } - - for (var i = 0; i < chunkGenerator.Diagnostics.Count; i++) - { - directiveNode.Diagnostics.Add(chunkGenerator.Diagnostics[i]); - } - - _builder.Push(directiveNode); + directiveNode = new MalformedDirectiveIntermediateNode() + { + DirectiveName = CSharpCodeParser.RemoveTagHelperDirectiveDescriptor.Directive, + Directive = CSharpCodeParser.RemoveTagHelperDirectiveDescriptor, + Source = BuildSourceSpanFromNode(node), + }; + } + else + { + directiveNode = new DirectiveIntermediateNode() + { + DirectiveName = CSharpCodeParser.RemoveTagHelperDirectiveDescriptor.Directive, + Directive = CSharpCodeParser.RemoveTagHelperDirectiveDescriptor, + Source = BuildSourceSpanFromNode(node), + }; + } - _builder.Add(new DirectiveTokenIntermediateNode() - { - Content = chunkGenerator.LookupText, - DirectiveToken = CSharpCodeParser.RemoveTagHelperDirectiveDescriptor.Tokens.First(), - Source = BuildSourceSpanFromNode(span), - }); + for (var i = 0; i < removeTagHelperChunkGenerator.Diagnostics.Count; i++) + { + directiveNode.Diagnostics.Add(removeTagHelperChunkGenerator.Diagnostics[i]); + } - _builder.Pop(); - } + _builder.Push(directiveNode); - public override void VisitTagHelperPrefixDirectiveSpan(TagHelperPrefixDirectiveChunkGenerator chunkGenerator, Span span) - { - IntermediateNode directiveNode; - if (IsMalformed(chunkGenerator.Diagnostics)) - { - directiveNode = new MalformedDirectiveIntermediateNode() + _builder.Add(new DirectiveTokenIntermediateNode() { - DirectiveName = CSharpCodeParser.TagHelperPrefixDirectiveDescriptor.Directive, - Directive = CSharpCodeParser.TagHelperPrefixDirectiveDescriptor, - Source = BuildSourceSpanFromNode(span), - }; + Content = removeTagHelperChunkGenerator.LookupText, + DirectiveToken = CSharpCodeParser.RemoveTagHelperDirectiveDescriptor.Tokens.First(), + Source = BuildSourceSpanFromNode(node), + }); + + _builder.Pop(); } - else + else if (context.ChunkGenerator is TagHelperPrefixDirectiveChunkGenerator tagHelperPrefixChunkGenerator) { - directiveNode = new DirectiveIntermediateNode() + IntermediateNode directiveNode; + if (IsMalformed(tagHelperPrefixChunkGenerator.Diagnostics)) { - DirectiveName = CSharpCodeParser.TagHelperPrefixDirectiveDescriptor.Directive, - Directive = CSharpCodeParser.TagHelperPrefixDirectiveDescriptor, - Source = BuildSourceSpanFromNode(span), - }; - } + directiveNode = new MalformedDirectiveIntermediateNode() + { + DirectiveName = CSharpCodeParser.TagHelperPrefixDirectiveDescriptor.Directive, + Directive = CSharpCodeParser.TagHelperPrefixDirectiveDescriptor, + Source = BuildSourceSpanFromNode(node), + }; + } + else + { + directiveNode = new DirectiveIntermediateNode() + { + DirectiveName = CSharpCodeParser.TagHelperPrefixDirectiveDescriptor.Directive, + Directive = CSharpCodeParser.TagHelperPrefixDirectiveDescriptor, + Source = BuildSourceSpanFromNode(node), + }; + } - for (var i = 0; i < chunkGenerator.Diagnostics.Count; i++) - { - directiveNode.Diagnostics.Add(chunkGenerator.Diagnostics[i]); - } + for (var i = 0; i < tagHelperPrefixChunkGenerator.Diagnostics.Count; i++) + { + directiveNode.Diagnostics.Add(tagHelperPrefixChunkGenerator.Diagnostics[i]); + } - _builder.Push(directiveNode); + _builder.Push(directiveNode); - _builder.Add(new DirectiveTokenIntermediateNode() - { - Content = chunkGenerator.Prefix, - DirectiveToken = CSharpCodeParser.TagHelperPrefixDirectiveDescriptor.Tokens.First(), - Source = BuildSourceSpanFromNode(span), - }); + _builder.Add(new DirectiveTokenIntermediateNode() + { + Content = tagHelperPrefixChunkGenerator.Prefix, + DirectiveToken = CSharpCodeParser.TagHelperPrefixDirectiveDescriptor.Tokens.First(), + Source = BuildSourceSpanFromNode(node), + }); - _builder.Pop(); + _builder.Pop(); + } + + return base.VisitCSharpStatementLiteral(node); } - protected SourceSpan? BuildSourceSpanFromNode(SyntaxTreeNode node) + protected SourceSpan? BuildSourceSpanFromNode(SyntaxNode node) { - if (node == null || node.Start == SourceLocation.Undefined) + if (node == null) { return null; } - var span = new SourceSpan( - node.Start.FilePath ?? FilePath, - node.Start.AbsoluteIndex, - node.Start.LineIndex, - node.Start.CharacterIndex, - node.Length); - return span; + if (node.Position == SourceDocument.Length) + { + // This can happen when we have a marker symbol at the end of the syntax tree. + var location = SourceDocument.Lines.GetLocation(node.Position - 1); + return new SourceSpan( + SourceDocument.FilePath, + location.AbsoluteIndex + 1, + location.LineIndex, + location.CharacterIndex + 1, + length: 0); + } + + return node.GetSourceSpan(SourceDocument); } } private class MainSourceVisitor : LoweringVisitor { + private readonly HashSet _renderedBoundAttributeNames = new HashSet(StringComparer.OrdinalIgnoreCase); private readonly string _tagHelperPrefix; public MainSourceVisitor(DocumentIntermediateNode document, IntermediateNodeBuilder builder, string tagHelperPrefix, RazorParserFeatureFlags featureFlags) @@ -408,86 +440,149 @@ public MainSourceVisitor(DocumentIntermediateNode document, IntermediateNodeBuil // Name=checked // Prefix= checked=" // Suffix=" - public override void VisitAttributeBlock(AttributeBlockChunkGenerator chunkGenerator, Block block) + public override SyntaxNode VisitMarkupAttributeBlock(MarkupAttributeBlockSyntax node) { - _builder.Push(new HtmlAttributeIntermediateNode() + var prefixTokens = MergeLiterals( + node.NamePrefix?.LiteralTokens, + node.Name.LiteralTokens, + node.NameSuffix?.LiteralTokens, + node.EqualsToken == null ? new SyntaxList() : new SyntaxList(node.EqualsToken), + node.ValuePrefix?.LiteralTokens); + var prefix = (MarkupTextLiteralSyntax)SyntaxFactory.MarkupTextLiteral(prefixTokens).Green.CreateRed(node, node.NamePrefix?.Position ?? node.Name.Position); + + var name = node.Name.GetContent(); + if (name.StartsWith("data-", StringComparison.OrdinalIgnoreCase) && + !_featureFlags.EXPERIMENTAL_AllowConditionalDataDashAttributes) { - AttributeName = chunkGenerator.Name, - Prefix = chunkGenerator.Prefix, - Suffix = chunkGenerator.Suffix, - Source = BuildSourceSpanFromNode(block), - }); + Visit(prefix); + Visit(node.Value); + Visit(node.ValueSuffix); + } + else + { + if (node.Value != null && node.Value.ChildNodes().All(c => c is MarkupLiteralAttributeValueSyntax)) + { + // We need to do what ConditionalAttributeCollapser used to do. + var literalAttributeValueNodes = node.Value.ChildNodes().Cast().ToArray(); + var valueTokens = SyntaxListBuilder.Create(); + for (var i = 0; i < literalAttributeValueNodes.Length; i++) + { + var mergedValue = MergeAttributeValue(literalAttributeValueNodes[i]); + valueTokens.AddRange(mergedValue.LiteralTokens); + } + var rewritten = SyntaxFactory.MarkupTextLiteral(valueTokens.ToList()); + + var mergedLiterals = MergeLiterals(prefix?.LiteralTokens, rewritten.LiteralTokens, node.ValueSuffix?.LiteralTokens); + var mergedAttribute = SyntaxFactory.MarkupTextLiteral(mergedLiterals).Green.CreateRed(node.Parent, node.Position); + Visit(mergedAttribute); + } + else + { + _builder.Push(new HtmlAttributeIntermediateNode() + { + AttributeName = node.Name.GetContent(), + Prefix = prefix.GetContent(), + Suffix = node.ValueSuffix?.GetContent() ?? string.Empty, + Source = BuildSourceSpanFromNode(node), + }); - VisitDefault(block); + VisitAttributeValue(node.Value); - _builder.Pop(); + _builder.Pop(); + } + } + + return node; + } + + public override SyntaxNode VisitMarkupMinimizedAttributeBlock(MarkupMinimizedAttributeBlockSyntax node) + { + var name = node.Name.GetContent(); + if (name.StartsWith("data-", StringComparison.OrdinalIgnoreCase) && + !_featureFlags.EXPERIMENTAL_AllowConditionalDataDashAttributes) + { + return base.VisitMarkupMinimizedAttributeBlock(node); + } + + // Minimized attributes are just html content. + var literals = MergeLiterals( + node.NamePrefix?.LiteralTokens, + node.Name?.LiteralTokens); + var literal = SyntaxFactory.MarkupTextLiteral(literals).Green.CreateRed(node.Parent, node.Position); + + return Visit(literal); } // Example // // Prefix= (space) // Children will contain a token for @false. - public override void VisitDynamicAttributeBlock(DynamicAttributeBlockChunkGenerator chunkGenerator, Block block) + public override SyntaxNode VisitMarkupDynamicAttributeValue(MarkupDynamicAttributeValueSyntax node) { - var firstChild = block.Children.FirstOrDefault(c => c.IsBlock) as Block; - if (firstChild == null || firstChild.Type == BlockKindInternal.Expression) + var containsExpression = false; + var descendantNodes = node.DescendantNodes(n => + { + // Don't go into sub block. They may contain expressions but we only care about the top level. + return !(n.Parent is CSharpCodeBlockSyntax); + }); + foreach (var child in descendantNodes) + { + if (child is CSharpImplicitExpressionSyntax || child is CSharpExplicitExpressionSyntax) + { + containsExpression = true; + } + } + + if (containsExpression) { _builder.Push(new CSharpExpressionAttributeValueIntermediateNode() { - Prefix = chunkGenerator.Prefix, - Source = BuildSourceSpanFromNode(block), + Prefix = node.Prefix?.GetContent() ?? string.Empty, + Source = BuildSourceSpanFromNode(node), }); } else { _builder.Push(new CSharpCodeAttributeValueIntermediateNode() { - Prefix = chunkGenerator.Prefix, - Source = BuildSourceSpanFromNode(block), + Prefix = node.Prefix?.GetContent() ?? string.Empty, + Source = BuildSourceSpanFromNode(node), }); } - VisitDefault(block); + Visit(node.Value); _builder.Pop(); + + return node; } - public override void VisitLiteralAttributeSpan(LiteralAttributeChunkGenerator chunkGenerator, Span span) + public override SyntaxNode VisitMarkupLiteralAttributeValue(MarkupLiteralAttributeValueSyntax node) { _builder.Push(new HtmlAttributeValueIntermediateNode() { - Prefix = chunkGenerator.Prefix, - Source = BuildSourceSpanFromNode(span), + Prefix = node.Prefix?.GetContent() ?? string.Empty, + Source = BuildSourceSpanFromNode(node), }); - var location = chunkGenerator.Value.Location; - SourceSpan? valueSpan = null; - if (location != SourceLocation.Undefined) - { - valueSpan = new SourceSpan( - location.FilePath ?? FilePath, - location.AbsoluteIndex, - location.LineIndex, - location.CharacterIndex, - chunkGenerator.Value.Value.Length); - } - _builder.Add(new IntermediateToken() { - Content = chunkGenerator.Value, + Content = node.Value?.GetContent() ?? string.Empty, Kind = TokenKind.Html, - Source = valueSpan + Source = BuildSourceSpanFromNode(node.Value) }); _builder.Pop(); + + return node; } - public override void VisitTemplateBlock(TemplateBlockChunkGenerator chunkGenerator, Block block) + public override SyntaxNode VisitCSharpTemplateBlock(CSharpTemplateBlockSyntax node) { var templateNode = new TemplateIntermediateNode(); _builder.Push(templateNode); - VisitDefault(block); + var result = base.VisitCSharpTemplateBlock(node); _builder.Pop(); @@ -503,13 +598,15 @@ public override void VisitTemplateBlock(TemplateBlockChunkGenerator chunkGenerat var contentLength = templateNode.Children.Sum(child => child.Source?.Length ?? 0); templateNode.Source = new SourceSpan( - sourceRangeStart.Value.FilePath ?? FilePath, + sourceRangeStart.Value.FilePath ?? SourceDocument.FilePath, sourceRangeStart.Value.AbsoluteIndex, sourceRangeStart.Value.LineIndex, sourceRangeStart.Value.CharacterIndex, contentLength); } } + + return result; } // CSharp expressions are broken up into blocks and spans because Razor allows Razor comments @@ -518,19 +615,18 @@ public override void VisitTemplateBlock(TemplateBlockChunkGenerator chunkGenerat // @DateTime.@*This is a comment*@Now // // We need to capture this in the IR so that we can give each piece the correct source mappings - public override void VisitExpressionBlock(ExpressionChunkGenerator chunkGenerator, Block block) + public override SyntaxNode VisitCSharpExplicitExpression(CSharpExplicitExpressionSyntax node) { if (_builder.Current is CSharpExpressionAttributeValueIntermediateNode) { - VisitDefault(block); - return; + return base.VisitCSharpExplicitExpression(node); } var expressionNode = new CSharpExpressionIntermediateNode(); _builder.Push(expressionNode); - VisitDefault(block); + var result = base.VisitCSharpExplicitExpression(node); _builder.Pop(); @@ -546,66 +642,127 @@ public override void VisitExpressionBlock(ExpressionChunkGenerator chunkGenerato var contentLength = expressionNode.Children.Sum(child => child.Source?.Length ?? 0); expressionNode.Source = new SourceSpan( - sourceRangeStart.Value.FilePath ?? FilePath, + sourceRangeStart.Value.FilePath ?? SourceDocument.FilePath, sourceRangeStart.Value.AbsoluteIndex, sourceRangeStart.Value.LineIndex, sourceRangeStart.Value.CharacterIndex, contentLength); } } + + return result; } - public override void VisitExpressionSpan(ExpressionChunkGenerator chunkGenerator, Span span) + public override SyntaxNode VisitCSharpImplicitExpression(CSharpImplicitExpressionSyntax node) { - _builder.Add(new IntermediateToken() + if (_builder.Current is CSharpExpressionAttributeValueIntermediateNode) { - Content = span.Content, - Kind = TokenKind.CSharp, - Source = BuildSourceSpanFromNode(span), - }); - } + return base.VisitCSharpImplicitExpression(node); + } - public override void VisitStatementSpan(StatementChunkGenerator chunkGenerator, Span span) - { - var isAttributeValue = _builder.Current is CSharpCodeAttributeValueIntermediateNode; + var expressionNode = new CSharpExpressionIntermediateNode(); + + _builder.Push(expressionNode); - if (!isAttributeValue) + var result = base.VisitCSharpImplicitExpression(node); + + _builder.Pop(); + + if (expressionNode.Children.Count > 0) { - var statementNode = new CSharpCodeIntermediateNode() + var sourceRangeStart = expressionNode + .Children + .FirstOrDefault(child => child.Source != null) + ?.Source; + + if (sourceRangeStart != null) { - Source = BuildSourceSpanFromNode(span) - }; - _builder.Push(statementNode); + var contentLength = expressionNode.Children.Sum(child => child.Source?.Length ?? 0); + + expressionNode.Source = new SourceSpan( + sourceRangeStart.Value.FilePath ?? SourceDocument.FilePath, + sourceRangeStart.Value.AbsoluteIndex, + sourceRangeStart.Value.LineIndex, + sourceRangeStart.Value.CharacterIndex, + contentLength); + } + } + + return result; + } + + public override SyntaxNode VisitCSharpExpressionLiteral(CSharpExpressionLiteralSyntax node) + { + if (_builder.Current is TagHelperHtmlAttributeIntermediateNode) + { + // If we are top level in a tag helper HTML attribute, we want to be rendered as markup. + var markupLiteral = SyntaxFactory.MarkupTextLiteral(node.LiteralTokens).Green.CreateRed(node.Parent, node.Position); + return Visit(markupLiteral); } _builder.Add(new IntermediateToken() { - Content = span.Content, + Content = node.GetContent(), Kind = TokenKind.CSharp, - Source = BuildSourceSpanFromNode(span), + Source = BuildSourceSpanFromNode(node), }); - if (!isAttributeValue) + return base.VisitCSharpExpressionLiteral(node); + } + + public override SyntaxNode VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) + { + var context = node.GetSpanContext(); + if (context == null || context.ChunkGenerator is StatementChunkGenerator) { - _builder.Pop(); + var isAttributeValue = _builder.Current is CSharpCodeAttributeValueIntermediateNode; + + if (!isAttributeValue) + { + var statementNode = new CSharpCodeIntermediateNode() + { + Source = BuildSourceSpanFromNode(node) + }; + _builder.Push(statementNode); + } + + _builder.Add(new IntermediateToken() + { + Content = node.GetContent(), + Kind = TokenKind.CSharp, + Source = BuildSourceSpanFromNode(node), + }); + + if (!isAttributeValue) + { + _builder.Pop(); + } } + + return base.VisitCSharpStatementLiteral(node); } - public override void VisitMarkupSpan(MarkupChunkGenerator chunkGenerator, Span span) + public override SyntaxNode VisitMarkupTextLiteral(MarkupTextLiteralSyntax node) { - if (span.Tokens.Count == 1) + var context = node.GetSpanContext(); + if (context != null && context.ChunkGenerator == SpanChunkGenerator.Null) { - var token = span.Tokens[0]; + return base.VisitMarkupTextLiteral(node); + } + + if (node.LiteralTokens.Count == 1) + { + var token = node.LiteralTokens[0]; if (token != null && token.Kind == SyntaxKind.Marker && token.Content.Length == 0) { // We don't want to create IR nodes for marker tokens. - return; + return base.VisitMarkupTextLiteral(node); } } - var source = BuildSourceSpanFromNode(span); + var source = BuildSourceSpanFromNode(node); var currentChildren = _builder.Current.Children; if (currentChildren.Count > 0 && currentChildren[currentChildren.Count - 1] is HtmlContentIntermediateNode) { @@ -613,8 +770,8 @@ public override void VisitMarkupSpan(MarkupChunkGenerator chunkGenerator, Span s if (existingHtmlContent.Source == null && source == null) { - Combine(existingHtmlContent, span); - return; + Combine(existingHtmlContent, node); + return base.VisitMarkupTextLiteral(node); } if (source != null && @@ -622,8 +779,8 @@ public override void VisitMarkupSpan(MarkupChunkGenerator chunkGenerator, Span s existingHtmlContent.Source.Value.FilePath == source.Value.FilePath && existingHtmlContent.Source.Value.AbsoluteIndex + existingHtmlContent.Source.Value.Length == source.Value.AbsoluteIndex) { - Combine(existingHtmlContent, span); - return; + Combine(existingHtmlContent, node); + return base.VisitMarkupTextLiteral(node); } } @@ -635,23 +792,20 @@ public override void VisitMarkupSpan(MarkupChunkGenerator chunkGenerator, Span s _builder.Add(new IntermediateToken() { - Content = span.Content, + Content = node.GetContent(), Kind = TokenKind.Html, Source = source, }); _builder.Pop(); + + return base.VisitMarkupTextLiteral(node); } - public override void VisitTagHelperBlock(TagHelperChunkGenerator chunkGenerator, Block block) + public override SyntaxNode VisitMarkupTagHelperElement(MarkupTagHelperElementSyntax node) { - var tagHelperBlock = block as TagHelperBlock; - if (tagHelperBlock == null) - { - return; - } - - var tagName = tagHelperBlock.TagName; + var info = node.TagHelperInfo; + var tagName = info.TagName; if (_tagHelperPrefix != null) { tagName = tagName.Substring(_tagHelperPrefix.Length); @@ -660,11 +814,11 @@ public override void VisitTagHelperBlock(TagHelperChunkGenerator chunkGenerator, var tagHelperNode = new TagHelperIntermediateNode() { TagName = tagName, - TagMode = tagHelperBlock.TagMode, - Source = BuildSourceSpanFromNode(block) + TagMode = info.TagMode, + Source = BuildSourceSpanFromNode(node) }; - foreach (var tagHelper in tagHelperBlock.Binding.Descriptors) + foreach (var tagHelper in info.BindingResult.Descriptors) { tagHelperNode.TagHelpers.Add(tagHelper); } @@ -673,22 +827,229 @@ public override void VisitTagHelperBlock(TagHelperChunkGenerator chunkGenerator, _builder.Push(new TagHelperBodyIntermediateNode()); - VisitDefault(block); + VisitList(node.Body); _builder.Pop(); // Pop InitializeTagHelperStructureIntermediateNode - AddTagHelperAttributes(tagHelperBlock.Attributes, tagHelperBlock.Binding); + Visit(node.StartTag); _builder.Pop(); // Pop TagHelperIntermediateNode + + // No need to visit the end tag because we don't write any IR for it. + + // We don't want to track attributes from a previous tag helper element. + _renderedBoundAttributeNames.Clear(); + + return node; } - private void Combine(HtmlContentIntermediateNode node, Span span) + public override SyntaxNode VisitMarkupTagHelperStartTag(MarkupTagHelperStartTagSyntax node) + { + foreach (var child in node.Children) + { + if (child is MarkupTagHelperAttributeSyntax || child is MarkupMinimizedTagHelperAttributeSyntax) + { + Visit(child); + } + } + + return node; + } + + public override SyntaxNode VisitMarkupMinimizedTagHelperAttribute(MarkupMinimizedTagHelperAttributeSyntax node) + { + if (!_featureFlags.AllowMinimizedBooleanTagHelperAttributes) + { + // Minimized attributes are not valid for non-boolean bound attributes. TagHelperBlockRewriter + // has already logged an error if it was a non-boolean bound attribute; so we can skip. + return node; + } + + var element = node.FirstAncestorOrSelf(); + var descriptors = element.TagHelperInfo.BindingResult.Descriptors; + var attributeName = node.Name.GetContent(); + var associatedDescriptors = descriptors.Where(descriptor => + descriptor.BoundAttributes.Any(attributeDescriptor => TagHelperMatchingConventions.CanSatisfyBoundAttribute(attributeName, attributeDescriptor))); + + if (associatedDescriptors.Any() && _renderedBoundAttributeNames.Add(attributeName)) + { + foreach (var associatedDescriptor in associatedDescriptors) + { + var associatedAttributeDescriptor = associatedDescriptor.BoundAttributes.First(a => + { + return TagHelperMatchingConventions.CanSatisfyBoundAttribute(attributeName, a); + }); + + var expectsBooleanValue = associatedAttributeDescriptor.ExpectsBooleanValue(attributeName); + + if (!expectsBooleanValue) + { + // We do not allow minimized non-boolean bound attributes. + return node; + } + + var setTagHelperProperty = new TagHelperPropertyIntermediateNode() + { + AttributeName = attributeName, + BoundAttribute = associatedAttributeDescriptor, + TagHelper = associatedDescriptor, + AttributeStructure = node.TagHelperAttributeInfo.AttributeStructure, + Source = null, + IsIndexerNameMatch = TagHelperMatchingConventions.SatisfiesBoundAttributeIndexer(attributeName, associatedAttributeDescriptor), + }; + + _builder.Add(setTagHelperProperty); + } + } + else + { + var addHtmlAttribute = new TagHelperHtmlAttributeIntermediateNode() + { + AttributeName = attributeName, + AttributeStructure = node.TagHelperAttributeInfo.AttributeStructure + }; + + _builder.Add(addHtmlAttribute); + } + + return node; + } + + public override SyntaxNode VisitMarkupTagHelperAttribute(MarkupTagHelperAttributeSyntax node) + { + var element = node.FirstAncestorOrSelf(); + var descriptors = element.TagHelperInfo.BindingResult.Descriptors; + var attributeName = node.Name.GetContent(); + var attributeValueNode = node.Value; + var associatedDescriptors = descriptors.Where(descriptor => + descriptor.BoundAttributes.Any(attributeDescriptor => TagHelperMatchingConventions.CanSatisfyBoundAttribute(attributeName, attributeDescriptor))); + + if (associatedDescriptors.Any() && _renderedBoundAttributeNames.Add(attributeName)) + { + foreach (var associatedDescriptor in associatedDescriptors) + { + var associatedAttributeDescriptor = associatedDescriptor.BoundAttributes.First(a => + { + return TagHelperMatchingConventions.CanSatisfyBoundAttribute(attributeName, a); + }); + + var setTagHelperProperty = new TagHelperPropertyIntermediateNode() + { + AttributeName = attributeName, + BoundAttribute = associatedAttributeDescriptor, + TagHelper = associatedDescriptor, + AttributeStructure = node.TagHelperAttributeInfo.AttributeStructure, + Source = BuildSourceSpanFromNode(attributeValueNode), + IsIndexerNameMatch = TagHelperMatchingConventions.SatisfiesBoundAttributeIndexer(attributeName, associatedAttributeDescriptor), + }; + + _builder.Push(setTagHelperProperty); + VisitAttributeValue(attributeValueNode); + _builder.Pop(); + } + } + else + { + var addHtmlAttribute = new TagHelperHtmlAttributeIntermediateNode() + { + AttributeName = attributeName, + AttributeStructure = node.TagHelperAttributeInfo.AttributeStructure + }; + + _builder.Push(addHtmlAttribute); + VisitAttributeValue(attributeValueNode); + _builder.Pop(); + } + + return node; + } + + private void VisitAttributeValue(SyntaxNode node) + { + if (node == null) + { + return; + } + + + IReadOnlyList children = node.ChildNodes(); + var position = node.Position; + if (children.First() is MarkupBlockSyntax markupBlock && + markupBlock.Children.Count == 2 && + markupBlock.Children[0] is MarkupTextLiteralSyntax && + markupBlock.Children[1] is MarkupEphemeralTextLiteralSyntax) + { + // This is a special case when we have an attribute like attr="@@foo". + // In this case, we want the foo to be written out as HtmlContent and not HtmlAttributeValue. + Visit(markupBlock); + children = children.Skip(1).ToList(); + position = children.Count > 0 ? children[0].Position : position; + } + + if (children.All(c => c is MarkupLiteralAttributeValueSyntax)) + { + var literalAttributeValueNodes = children.Cast().ToArray(); + var valueTokens = SyntaxListBuilder.Create(); + for (var i = 0; i < literalAttributeValueNodes.Length; i++) + { + var mergedValue = MergeAttributeValue(literalAttributeValueNodes[i]); + valueTokens.AddRange(mergedValue.LiteralTokens); + } + var rewritten = SyntaxFactory.MarkupTextLiteral(valueTokens.ToList()).Green.CreateRed(node.Parent, position); + Visit(rewritten); + } + else if (children.All(c => c is MarkupTextLiteralSyntax)) + { + var builder = SyntaxListBuilder.Create(); + var markupLiteralArray = children.Cast(); + foreach (var literal in markupLiteralArray) + { + builder.AddRange(literal.LiteralTokens); + } + var rewritten = SyntaxFactory.MarkupTextLiteral(builder.ToList()).Green.CreateRed(node.Parent, position); + Visit(rewritten); + } + else if (children.All(c => c is CSharpExpressionLiteralSyntax)) + { + var builder = SyntaxListBuilder.Create(); + var expressionLiteralArray = children.Cast(); + SpanContext context = null; + foreach (var literal in expressionLiteralArray) + { + context = literal.GetSpanContext(); + builder.AddRange(literal.LiteralTokens); + } + var rewritten = SyntaxFactory.CSharpExpressionLiteral(builder.ToList()).Green.CreateRed(node.Parent, position); + rewritten = context != null ? rewritten.WithSpanContext(context) : rewritten; + Visit(rewritten); + } + else + { + Visit(node); + } + } + + private MarkupTextLiteralSyntax MergeAttributeValue(MarkupLiteralAttributeValueSyntax node) + { + var valueTokens = MergeLiterals(node.Prefix?.LiteralTokens, node.Value?.LiteralTokens); + var rewritten = node.Prefix?.Update(valueTokens) ?? node.Value?.Update(valueTokens); + rewritten = (MarkupTextLiteralSyntax)rewritten?.Green.CreateRed(node, node.Position); + var originalContext = rewritten.GetSpanContext(); + if (originalContext != null) + { + rewritten = rewritten.WithSpanContext(new SpanContext(new MarkupChunkGenerator(), originalContext.EditHandler)); + } + + return rewritten; + } + + private void Combine(HtmlContentIntermediateNode node, SyntaxNode item) { node.Children.Add(new IntermediateToken() { - Content = span.Content, + Content = item.GetContent(), Kind = TokenKind.Html, - Source = BuildSourceSpanFromNode(span), + Source = BuildSourceSpanFromNode(item), }); if (node.Source != null) @@ -700,76 +1061,25 @@ private void Combine(HtmlContentIntermediateNode node, Span span) node.Source.Value.AbsoluteIndex, node.Source.Value.LineIndex, node.Source.Value.CharacterIndex, - node.Source.Value.Length + span.Content.Length); + node.Source.Value.Length + item.FullWidth); } } - private void AddTagHelperAttributes(IList attributes, TagHelperBinding tagHelperBinding) + private SyntaxList MergeLiterals(params SyntaxList?[] literals) { - var descriptors = tagHelperBinding.Descriptors; - var renderedBoundAttributeNames = new HashSet(StringComparer.OrdinalIgnoreCase); - foreach (var attribute in attributes) + var builder = SyntaxListBuilder.Create(); + for (var i = 0; i < literals.Length; i++) { - var attributeValueNode = attribute.Value; - var associatedDescriptors = descriptors.Where(descriptor => - descriptor.BoundAttributes.Any(attributeDescriptor => TagHelperMatchingConventions.CanSatisfyBoundAttribute(attribute.Name, attributeDescriptor))); - - if (associatedDescriptors.Any() && renderedBoundAttributeNames.Add(attribute.Name)) + var literal = literals[i]; + if (!literal.HasValue) { - var isMinimizedAttribute = attributeValueNode == null; - if (isMinimizedAttribute && !_featureFlags.AllowMinimizedBooleanTagHelperAttributes) - { - // Minimized attributes are not valid for non-boolean bound attributes. TagHelperBlockRewriter - // has already logged an error if it was a non-boolean bound attribute; so we can skip. - continue; - } - - foreach (var associatedDescriptor in associatedDescriptors) - { - var associatedAttributeDescriptor = associatedDescriptor.BoundAttributes.First(a => - { - return TagHelperMatchingConventions.CanSatisfyBoundAttribute(attribute.Name, a); - }); - - var expectsBooleanValue = associatedAttributeDescriptor.ExpectsBooleanValue(attribute.Name); - - if (isMinimizedAttribute && !expectsBooleanValue) - { - // We do not allow minimized non-boolean bound attributes. - continue; - } - - var setTagHelperProperty = new TagHelperPropertyIntermediateNode() - { - AttributeName = attribute.Name, - BoundAttribute = associatedAttributeDescriptor, - TagHelper = associatedDescriptor, - AttributeStructure = attribute.AttributeStructure, - Source = BuildSourceSpanFromNode(attributeValueNode), - IsIndexerNameMatch = TagHelperMatchingConventions.SatisfiesBoundAttributeIndexer(attribute.Name, associatedAttributeDescriptor), - }; - - _builder.Push(setTagHelperProperty); - attributeValueNode?.Accept(this); - _builder.Pop(); - } + continue; } - else - { - var addHtmlAttribute = new TagHelperHtmlAttributeIntermediateNode() - { - AttributeName = attribute.Name, - AttributeStructure = attribute.AttributeStructure - }; - _builder.Push(addHtmlAttribute); - if (attributeValueNode != null) - { - attributeValueNode.Accept(this); - } - _builder.Pop(); - } + builder.AddRange(literal.Value); } + + return builder.ToList(); } } @@ -827,8 +1137,8 @@ public override void VisitDirective(DirectiveIntermediateNode node) } } - private static bool IsMalformed(List diagnostics) - => diagnostics.Count > 0 && diagnostics.Any(diagnostic => diagnostic.Severity == RazorDiagnosticSeverity.Error); + private static bool IsMalformed(IEnumerable diagnostics) + => diagnostics.Any(diagnostic => diagnostic.Severity == RazorDiagnosticSeverity.Error); } #pragma warning restore CS0618 // Type or member is obsolete } diff --git a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorParsingPhase.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorParsingPhase.cs index 826420127..cff35e508 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorParsingPhase.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorParsingPhase.cs @@ -16,13 +16,13 @@ protected override void OnIntialized() protected override void ExecuteCore(RazorCodeDocument codeDocument) { var options = codeDocument.GetParserOptions() ??_optionsFeature.GetOptions(); - var syntaxTree = RazorSyntaxTree.Parse(codeDocument.Source, options); + var syntaxTree = RazorSyntaxTree.Parse(codeDocument.Source, options, legacy: false); codeDocument.SetSyntaxTree(syntaxTree); var importSyntaxTrees = new RazorSyntaxTree[codeDocument.Imports.Count]; for (var i = 0; i < codeDocument.Imports.Count; i++) { - importSyntaxTrees[i] = RazorSyntaxTree.Parse(codeDocument.Imports[i], options); + importSyntaxTrees[i] = RazorSyntaxTree.Parse(codeDocument.Imports[i], options, legacy: false); } codeDocument.SetImportSyntaxTrees(importSyntaxTrees); } diff --git a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorTagHelperBinderPhase.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorTagHelperBinderPhase.cs index dd3677b56..74fd5b323 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorTagHelperBinderPhase.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorTagHelperBinderPhase.cs @@ -185,66 +185,80 @@ public DirectiveVisitor(IReadOnlyList tagHelpers) public HashSet Matches { get; } = new HashSet(); - public override SyntaxNode VisitRazorDirectiveBody(RazorDirectiveBodySyntax node) + public override SyntaxNode VisitRazorDirective(RazorDirectiveSyntax node) { - var context = node.GetSpanContext(); - if (context.ChunkGenerator is AddTagHelperChunkGenerator addTagHelper) + var descendantLiterals = node.DescendantNodes(); + foreach (var child in descendantLiterals) { - if (addTagHelper.AssemblyName == null) + if (!(child is CSharpStatementLiteralSyntax literal)) { - // Skip this one, it's an error - return base.VisitRazorDirectiveBody(node); + continue; } - if (!AssemblyContainsTagHelpers(addTagHelper.AssemblyName, _tagHelpers)) + var context = literal.GetSpanContext(); + if (context == null) { - // No tag helpers in the assembly. - return base.VisitRazorDirectiveBody(node); + // We can't find a chunk generator. + continue; } - - for (var i = 0; i < _tagHelpers.Count; i++) + else if (context.ChunkGenerator is AddTagHelperChunkGenerator addTagHelper) { - var tagHelper = _tagHelpers[i]; - if (MatchesDirective(tagHelper, addTagHelper.TypePattern, addTagHelper.AssemblyName)) + if (addTagHelper.AssemblyName == null) + { + // Skip this one, it's an error + continue; + } + + if (!AssemblyContainsTagHelpers(addTagHelper.AssemblyName, _tagHelpers)) { - Matches.Add(tagHelper); + // No tag helpers in the assembly. + continue; + } + + for (var i = 0; i < _tagHelpers.Count; i++) + { + var tagHelper = _tagHelpers[i]; + if (MatchesDirective(tagHelper, addTagHelper.TypePattern, addTagHelper.AssemblyName)) + { + Matches.Add(tagHelper); + } } } - } - else if (context.ChunkGenerator is RemoveTagHelperChunkGenerator removeTagHelper) - { - if (removeTagHelper.AssemblyName == null) + else if (context.ChunkGenerator is RemoveTagHelperChunkGenerator removeTagHelper) { - // Skip this one, it's an error - return base.VisitRazorDirectiveBody(node); - } + if (removeTagHelper.AssemblyName == null) + { + // Skip this one, it's an error + continue; + } - if (!AssemblyContainsTagHelpers(removeTagHelper.AssemblyName, _tagHelpers)) - { - // No tag helpers in the assembly. - return base.VisitRazorDirectiveBody(node); - } + if (!AssemblyContainsTagHelpers(removeTagHelper.AssemblyName, _tagHelpers)) + { + // No tag helpers in the assembly. + continue; + } - for (var i = 0; i < _tagHelpers.Count; i++) - { - var tagHelper = _tagHelpers[i]; - if (MatchesDirective(tagHelper, removeTagHelper.TypePattern, removeTagHelper.AssemblyName)) + for (var i = 0; i < _tagHelpers.Count; i++) { - Matches.Remove(tagHelper); + var tagHelper = _tagHelpers[i]; + if (MatchesDirective(tagHelper, removeTagHelper.TypePattern, removeTagHelper.AssemblyName)) + { + Matches.Remove(tagHelper); + } } } - } - else if (context.ChunkGenerator is TagHelperPrefixDirectiveChunkGenerator tagHelperPrefix) - { - if (!string.IsNullOrEmpty(tagHelperPrefix.DirectiveText)) + else if (context.ChunkGenerator is TagHelperPrefixDirectiveChunkGenerator tagHelperPrefix) { - // We only expect to see a single one of these per file, but that's enforced at another level. - TagHelperPrefix = tagHelperPrefix.DirectiveText; + if (!string.IsNullOrEmpty(tagHelperPrefix.DirectiveText)) + { + // We only expect to see a single one of these per file, but that's enforced at another level. + TagHelperPrefix = tagHelperPrefix.DirectiveText; + } } } - return base.VisitRazorDirectiveBody(node); + return base.VisitRazorDirective(node); } private bool AssemblyContainsTagHelpers(string assemblyName, IReadOnlyList tagHelpers) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs index f17283954..b3e249e38 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs @@ -685,7 +685,14 @@ private void ParseTemplate(in SyntaxListBuilder builder) RazorDiagnosticFactory.CreateParsing_InlineMarkupBlocksCannotBeNested( new SourceSpan(CurrentStart, contentLength: 1 /* @ */))); } - builder.Add(OutputTokensAsStatementLiteral()); + if (SpanContext.ChunkGenerator is ExpressionChunkGenerator) + { + builder.Add(OutputTokensAsExpressionLiteral()); + } + else + { + builder.Add(OutputTokensAsStatementLiteral()); + } using (var pooledResult = Pool.Allocate()) { @@ -777,14 +784,14 @@ private void ParseTagHelperPrefixDirective(SyntaxListBuilder bu var directiveBody = ParseTagHelperDirective( SyntaxConstants.CSharp.TagHelperPrefixKeyword, - (prefix, errors) => + (prefix, errors, startLocation) => { if (duplicateDiagnostic != null) { errors.Add(duplicateDiagnostic); } - var parsedDirective = ParseDirective(prefix, CurrentStart, TagHelperDirectiveType.TagHelperPrefix, errors); + var parsedDirective = ParseDirective(prefix, startLocation, TagHelperDirectiveType.TagHelperPrefix, errors); return new TagHelperPrefixDirectiveChunkGenerator( prefix, @@ -800,9 +807,9 @@ private void ParseAddTagHelperDirective(SyntaxListBuilder build { var directiveBody = ParseTagHelperDirective( SyntaxConstants.CSharp.AddTagHelperKeyword, - (lookupText, errors) => + (lookupText, errors, startLocation) => { - var parsedDirective = ParseDirective(lookupText, CurrentStart, TagHelperDirectiveType.AddTagHelper, errors); + var parsedDirective = ParseDirective(lookupText, startLocation, TagHelperDirectiveType.AddTagHelper, errors); return new AddTagHelperChunkGenerator( lookupText, @@ -820,9 +827,9 @@ private void ParseRemoveTagHelperDirective(SyntaxListBuilder bu { var directiveBody = ParseTagHelperDirective( SyntaxConstants.CSharp.RemoveTagHelperKeyword, - (lookupText, errors) => + (lookupText, errors, startLocation) => { - var parsedDirective = ParseDirective(lookupText, CurrentStart, TagHelperDirectiveType.RemoveTagHelper, errors); + var parsedDirective = ParseDirective(lookupText, startLocation, TagHelperDirectiveType.RemoveTagHelper, errors); return new RemoveTagHelperChunkGenerator( lookupText, @@ -838,7 +845,7 @@ private void ParseRemoveTagHelperDirective(SyntaxListBuilder bu private RazorDirectiveBodySyntax ParseTagHelperDirective( string keyword, - Func, ISpanChunkGenerator> chunkGeneratorFactory) + Func, SourceLocation, ISpanChunkGenerator> chunkGeneratorFactory) { AssertDirective(keyword); @@ -851,6 +858,7 @@ private RazorDirectiveBodySyntax ParseTagHelperDirective( Context.ErrorSink = directiveErrorSink; string directiveValue = null; + SourceLocation? valueStartLocation = null; try { EnsureDirectiveIsAtStartOfLine(); @@ -885,7 +893,7 @@ private RazorDirectiveBodySyntax ParseTagHelperDirective( else { // Need to grab the current location before we accept until the end of the line. - var startLocation = CurrentStart; + valueStartLocation = CurrentStart; // Parse to the end of the line. Essentially accepts anything until end of line, comments, invalid code // etc. @@ -900,7 +908,7 @@ private RazorDirectiveBodySyntax ParseTagHelperDirective( { Context.ErrorSink.OnError( RazorDiagnosticFactory.CreateParsing_IncompleteQuotesAroundDirective( - new SourceSpan(startLocation, rawValue.Length), keyword)); + new SourceSpan(valueStartLocation.Value, rawValue.Length), keyword)); } directiveValue = rawValue; @@ -908,7 +916,10 @@ private RazorDirectiveBodySyntax ParseTagHelperDirective( } finally { - SpanContext.ChunkGenerator = chunkGeneratorFactory(directiveValue, directiveErrorSink.Errors.ToList()); + SpanContext.ChunkGenerator = chunkGeneratorFactory( + directiveValue, + directiveErrorSink.Errors.ToList(), + valueStartLocation ?? CurrentStart); Context.ErrorSink = savedErrorSink; } @@ -1234,6 +1245,7 @@ RazorDirectiveSyntax BuildDirective() var directiveBody = SyntaxFactory.RazorDirectiveBody(keywordBlock, directiveCodeBlock); var directive = SyntaxFactory.RazorDirective(transition, directiveBody); directive = (RazorDirectiveSyntax)directive.SetDiagnostics(directiveErrorSink.Errors.ToArray()); + directive = directive.WithDirectiveDescriptor(descriptor); return directive; } } @@ -1846,7 +1858,7 @@ private void ParseUsingDeclaration(in SyntaxListBuilder builder SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.AnyExceptNewline; SpanContext.ChunkGenerator = new AddImportChunkGenerator(new LocationTagged( - string.Concat(TokenBuilder.ToList().Nodes.Select(s => s.Content)), + string.Concat(TokenBuilder.ToList().Nodes.Skip(1).Select(s => s.Content)), start)); // Optional ";" @@ -2058,7 +2070,15 @@ protected override void ParseEmbeddedTransition(in SyntaxListBuilder. + // It is usually represented as MarkupLiteralAttributeValue but it could also be + // MarkupTextLiteral in cases like data- attributes which are parsed differently. result.AttributeStructure = AttributeStructure.NoQuotes; } else @@ -257,11 +260,9 @@ private static TryParseResult TryParseAttribute( if (attributeValue == null) { var builder = SyntaxListBuilder.Create(); - if (attributeBlock.ValuePrefix == null || attributeBlock.ValueSuffix == null) - { - // Add a marker for attribute value when there are no quotes like,

        - builder.Add(SyntaxFactory.MarkupTextLiteral(new SyntaxList())); - } + + // Add a marker for attribute value when there are no quotes like,

        + builder.Add(SyntaxFactory.MarkupTextLiteral(new SyntaxList())); attributeValue = SyntaxFactory.GenericBlock(builder.ToList()); } @@ -288,7 +289,7 @@ private static MarkupTagHelperAttributeValueSyntax RewriteAttributeValue(TryPars { var rewriter = new AttributeValueRewriter(result); var rewrittenValue = attributeValue; - if (result.IsBoundNonStringAttribute) + if (result.IsBoundAttribute) { // If the attribute was requested by a tag helper but the corresponding property was not a // string, then treat its value as code. A non-string value can be any C# value so we need @@ -376,7 +377,7 @@ private static string GetAttributeValueContent(RazorSyntaxNode attributeBlock) private class AttributeValueRewriter : SyntaxRewriter { private readonly TryParseResult _tryParseResult; - private bool _visitedFirstSpan = false; + private bool _rewriteAsMarkup = false; public AttributeValueRewriter(TryParseResult result) { @@ -385,6 +386,11 @@ public AttributeValueRewriter(TryParseResult result) public override SyntaxNode VisitCSharpTransition(CSharpTransitionSyntax node) { + if (!_tryParseResult.IsBoundNonStringAttribute) + { + return base.VisitCSharpTransition(node); + } + // For bound non-string attributes, we'll only allow a transition span to appear at the very // beginning of the attribute expression. All later transitions would appear as code so that // they are part of the generated output. E.g. @@ -394,40 +400,44 @@ public override SyntaxNode VisitCSharpTransition(CSharpTransitionSyntax node) // key="@int + @case" -> MyTagHelper.key = int + @case // key="@(a + b) -> MyTagHelper.key = a + b // key="4 + @(a + b)" -> MyTagHelper.key = 4 + @(a + b) - if (_visitedFirstSpan) + if (_rewriteAsMarkup) { // Change to a MarkupChunkGenerator so that the '@' \ parenthesis is generated as part of the output. - var spanContext = node.GetSpanContext(); - var newSpanContext = new SpanContext(new MarkupChunkGenerator(), spanContext.EditHandler); + var context = node.GetSpanContext(); + var newContext = new SpanContext(new MarkupChunkGenerator(), context.EditHandler); - var expression = SyntaxFactory.CSharpExpressionLiteral(new SyntaxList(node.Transition)).WithSpanContext(newSpanContext); + var expression = SyntaxFactory.CSharpExpressionLiteral(new SyntaxList(node.Transition)).WithSpanContext(newContext); return base.VisitCSharpExpressionLiteral(expression); } - _visitedFirstSpan = true; + _rewriteAsMarkup = true; return base.VisitCSharpTransition(node); } public override SyntaxNode VisitCSharpImplicitExpression(CSharpImplicitExpressionSyntax node) { - if (_visitedFirstSpan) + if (_rewriteAsMarkup) { var builder = SyntaxListBuilder.Create(); - if (node.Transition != null) - { - // Change to a MarkupChunkGenerator so that the '@' \ parenthesis is generated as part of the output. - var spanContext = node.GetSpanContext(); - var newSpanContext = new SpanContext(new MarkupChunkGenerator(), spanContext?.EditHandler ?? SpanEditHandler.CreateDefault((content) => Enumerable.Empty())); - var expression = SyntaxFactory.CSharpExpressionLiteral(new SyntaxList(node.Transition.Transition)).WithSpanContext(newSpanContext); - expression = (CSharpExpressionLiteralSyntax)VisitCSharpExpressionLiteral(expression); - builder.Add(expression); - } + // Convert transition. + // Change to a MarkupChunkGenerator so that the '@' \ parenthesis is generated as part of the output. + var context = node.GetSpanContext(); + var newContext = new SpanContext(new MarkupChunkGenerator(), context?.EditHandler ?? SpanEditHandler.CreateDefault((content) => Enumerable.Empty())); + + var expression = SyntaxFactory.CSharpExpressionLiteral(new SyntaxList(node.Transition.Transition)).WithSpanContext(newContext); + expression = (CSharpExpressionLiteralSyntax)VisitCSharpExpressionLiteral(expression); + builder.Add(expression); + var rewrittenBody = (CSharpCodeBlockSyntax)VisitCSharpCodeBlock(((CSharpImplicitExpressionBodySyntax)node.Body).CSharpCode); builder.AddRange(rewrittenBody.Children); - return SyntaxFactory.GenericBlock(builder.ToList()); + // Since the original transition is part of the body, we need something to take it's place. + var transition = SyntaxFactory.CSharpTransition(SyntaxFactory.MissingToken(SyntaxKind.Transition)); + + var rewrittenCodeBlock = SyntaxFactory.CSharpCodeBlock(builder.ToList()); + return SyntaxFactory.CSharpImplicitExpression(transition, SyntaxFactory.CSharpImplicitExpressionBody(rewrittenCodeBlock)); } return base.VisitCSharpImplicitExpression(node); @@ -435,19 +445,22 @@ public override SyntaxNode VisitCSharpImplicitExpression(CSharpImplicitExpressio public override SyntaxNode VisitCSharpExplicitExpression(CSharpExplicitExpressionSyntax node) { - if (_visitedFirstSpan) + CSharpTransitionSyntax transition = null; + var builder = SyntaxListBuilder.Create(); + if (_rewriteAsMarkup) { - var builder = SyntaxListBuilder.Create(); - if (node.Transition != null) - { - // Change to a MarkupChunkGenerator so that the '@' \ parenthesis is generated as part of the output. - var spanContext = node.GetSpanContext(); - var newSpanContext = new SpanContext(new MarkupChunkGenerator(), spanContext?.EditHandler ?? SpanEditHandler.CreateDefault((content) => Enumerable.Empty())); + // Convert transition. + // Change to a MarkupChunkGenerator so that the '@' \ parenthesis is generated as part of the output. + var context = node.GetSpanContext(); + var newContext = new SpanContext(new MarkupChunkGenerator(), context?.EditHandler ?? SpanEditHandler.CreateDefault((content) => Enumerable.Empty())); + + var expression = SyntaxFactory.CSharpExpressionLiteral(new SyntaxList(node.Transition.Transition)).WithSpanContext(newContext); + expression = (CSharpExpressionLiteralSyntax)VisitCSharpExpressionLiteral(expression); + builder.Add(expression); + + // Since the original transition is part of the body, we need something to take it's place. + transition = SyntaxFactory.CSharpTransition(SyntaxFactory.MissingToken(SyntaxKind.Transition)); - var expression = SyntaxFactory.CSharpExpressionLiteral(new SyntaxList(node.Transition.Transition)).WithSpanContext(newSpanContext); - expression = (CSharpExpressionLiteralSyntax)VisitCSharpExpressionLiteral(expression); - builder.Add(expression); - } var body = (CSharpExplicitExpressionBodySyntax)node.Body; var rewrittenOpenParen = (RazorSyntaxNode)VisitRazorMetaCode(body.OpenParen); var rewrittenBody = (CSharpCodeBlockSyntax)VisitCSharpCodeBlock(body.CSharpCode); @@ -455,43 +468,63 @@ public override SyntaxNode VisitCSharpExplicitExpression(CSharpExplicitExpressio builder.Add(rewrittenOpenParen); builder.AddRange(rewrittenBody.Children); builder.Add(rewrittenCloseParen); - - return SyntaxFactory.GenericBlock(builder.ToList()); + } + else + { + // This is the first expression of a non-string attribute like attr=@(a + b) + // Below code converts this to an implicit expression to make the parens + // part of the expression so that it is rendered. + transition = (CSharpTransitionSyntax)Visit(node.Transition); + var body = (CSharpExplicitExpressionBodySyntax)node.Body; + var rewrittenOpenParen = (RazorSyntaxNode)VisitRazorMetaCode(body.OpenParen); + var rewrittenBody = (CSharpCodeBlockSyntax)VisitCSharpCodeBlock(body.CSharpCode); + var rewrittenCloseParen = (RazorSyntaxNode)VisitRazorMetaCode(body.CloseParen); + builder.Add(rewrittenOpenParen); + builder.AddRange(rewrittenBody.Children); + builder.Add(rewrittenCloseParen); } - return base.VisitCSharpExplicitExpression(node); + var rewrittenCodeBlock = SyntaxFactory.CSharpCodeBlock(builder.ToList()); + return SyntaxFactory.CSharpImplicitExpression(transition, SyntaxFactory.CSharpImplicitExpressionBody(rewrittenCodeBlock)); } public override SyntaxNode VisitRazorMetaCode(RazorMetaCodeSyntax node) { - if (_visitedFirstSpan) + if (!_tryParseResult.IsBoundNonStringAttribute) + { + return base.VisitRazorMetaCode(node); + } + + if (_rewriteAsMarkup) { // Change to a MarkupChunkGenerator so that the '@' \ parenthesis is generated as part of the output. - var spanContext = node.GetSpanContext(); - var newSpanContext = new SpanContext(new MarkupChunkGenerator(), spanContext.EditHandler); + var context = node.GetSpanContext(); + var newContext = new SpanContext(new MarkupChunkGenerator(), context.EditHandler); - var expression = SyntaxFactory.CSharpExpressionLiteral(new SyntaxList(node.MetaCode)).WithSpanContext(newSpanContext); + var expression = SyntaxFactory.CSharpExpressionLiteral(new SyntaxList(node.MetaCode)).WithSpanContext(newContext); return VisitCSharpExpressionLiteral(expression); } - _visitedFirstSpan = true; + _rewriteAsMarkup = true; return base.VisitRazorMetaCode(node); } public override SyntaxNode VisitCSharpExpressionLiteral(CSharpExpressionLiteralSyntax node) { + if (!_tryParseResult.IsBoundNonStringAttribute) + { + return base.VisitCSharpExpressionLiteral(node); + } + node = (CSharpExpressionLiteralSyntax)ConfigureNonStringAttribute(node); - _visitedFirstSpan = true; + _rewriteAsMarkup = true; return base.VisitCSharpExpressionLiteral(node); } public override SyntaxNode VisitMarkupLiteralAttributeValue(MarkupLiteralAttributeValueSyntax node) { - _visitedFirstSpan = true; - - // Since this is a bound non-string attribute, we want to convert LiteralAttributeValue to just be a CSharp Expression literal. var builder = SyntaxListBuilder.Create(); if (node.Prefix != null) { @@ -502,9 +535,21 @@ public override SyntaxNode VisitMarkupLiteralAttributeValue(MarkupLiteralAttribu builder.AddRange(node.Value.LiteralTokens); } - var expression = SyntaxFactory.CSharpExpressionLiteral(builder.ToList()); + if (_tryParseResult.IsBoundNonStringAttribute) + { + _rewriteAsMarkup = true; + // Since this is a bound non-string attribute, we want to convert LiteralAttributeValue to just be a CSharp Expression literal. + var expression = SyntaxFactory.CSharpExpressionLiteral(builder.ToList()); + return VisitCSharpExpressionLiteral(expression); + } + else + { + var literal = SyntaxFactory.MarkupTextLiteral(builder.ToList()); + var context = node.Value?.GetSpanContext(); + literal = context != null ? literal.WithSpanContext(context) : literal; - return VisitCSharpExpressionLiteral(expression); + return Visit(literal); + } } public override SyntaxNode VisitMarkupDynamicAttributeValue(MarkupDynamicAttributeValueSyntax node) @@ -519,40 +564,56 @@ public override SyntaxNode VisitMarkupDynamicAttributeValue(MarkupDynamicAttribu { builder.AddRange(node.Value.Children); } - var rewrittenValue = SyntaxFactory.GenericBlock(builder.ToList()); - var rewritten = SyntaxFactory.MarkupDynamicAttributeValue(prefix: null, value: rewrittenValue); + var rewrittenValue = SyntaxFactory.MarkupBlock(builder.ToList()); - return base.VisitMarkupDynamicAttributeValue(rewritten); + return base.VisitMarkupBlock(rewrittenValue); } public override SyntaxNode VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) { - _visitedFirstSpan = true; + if (!_tryParseResult.IsBoundNonStringAttribute) + { + return base.VisitCSharpStatementLiteral(node); + } + + _rewriteAsMarkup = true; return base.VisitCSharpStatementLiteral(node); } public override SyntaxNode VisitMarkupTextLiteral(MarkupTextLiteralSyntax node) { - _visitedFirstSpan = true; + if (!_tryParseResult.IsBoundNonStringAttribute) + { + return base.VisitMarkupTextLiteral(node); + } + + _rewriteAsMarkup = true; + node = (MarkupTextLiteralSyntax)ConfigureNonStringAttribute(node); var tokens = new SyntaxList(node.LiteralTokens); var value = SyntaxFactory.CSharpExpressionLiteral(tokens); - value = (CSharpExpressionLiteralSyntax)ConfigureNonStringAttribute(value); - return value; + return value.WithSpanContext(node.GetSpanContext()); } public override SyntaxNode VisitMarkupEphemeralTextLiteral(MarkupEphemeralTextLiteralSyntax node) { - _visitedFirstSpan = true; + if (!_tryParseResult.IsBoundNonStringAttribute) + { + return base.VisitMarkupEphemeralTextLiteral(node); + } + + // Since this is a non-string attribute we need to rewrite this as code. + // Rewriting it to CSharpEphemeralTextLiteral so that it is not rendered to output. + _rewriteAsMarkup = true; + node = (MarkupEphemeralTextLiteralSyntax)ConfigureNonStringAttribute(node); var tokens = new SyntaxList(node.LiteralTokens); - var value = SyntaxFactory.CSharpExpressionLiteral(tokens); - value = (CSharpExpressionLiteralSyntax)ConfigureNonStringAttribute(value); - return value; + var value = SyntaxFactory.CSharpEphemeralTextLiteral(tokens); + return value.WithSpanContext(node.GetSpanContext()); } private SyntaxNode ConfigureNonStringAttribute(SyntaxNode node) { - var spanContext = node.GetSpanContext(); - var builder = spanContext != null ? new SpanContextBuilder(spanContext) : new SpanContextBuilder(); + var context = node.GetSpanContext(); + var builder = context != null ? new SpanContextBuilder(context) : new SpanContextBuilder(); builder.EditHandler = new ImplicitExpressionEditHandler( builder.EditHandler.Tokenizer, CSharpCodeParser.DefaultKeywords, @@ -571,9 +632,9 @@ private SyntaxNode ConfigureNonStringAttribute(SyntaxNode node) builder.ChunkGenerator = new ExpressionChunkGenerator(); } - spanContext = builder.Build(); + context = builder.Build(); - return node.WithSpanContext(spanContext); + return node.WithSpanContext(context); } } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs index 912c8eb9c..295e26c57 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs @@ -706,6 +706,7 @@ protected RazorCommentBlockSyntax ParseRazorComment() throw new InvalidOperationException(Resources.Language_Does_Not_Support_RazorComment); } + RazorCommentBlockSyntax commentBlock; using (PushSpanContextConfig(CommentSpanContextConfig)) { EnsureCurrent(); @@ -736,8 +737,15 @@ protected RazorCommentBlockSyntax ParseRazorComment() endTransition = SyntaxFactory.MissingToken(SyntaxKind.RazorCommentTransition); } - return SyntaxFactory.RazorCommentBlock(startTransition, startStar, comment, endStar, endTransition); + commentBlock = SyntaxFactory.RazorCommentBlock(startTransition, startStar, comment, endStar, endTransition); + + // Make sure we generate a marker symbol after a comment if necessary. + Context.LastAcceptedCharacters = AcceptedCharactersInternal.None; } + + InitializeContext(SpanContext); + + return commentBlock; } private void CommentSpanContextConfig(SpanContextBuilder spanContext) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/WhiteSpaceRewriter.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/WhiteSpaceRewriter.cs index 9d3d4f343..778861743 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/WhiteSpaceRewriter.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/WhiteSpaceRewriter.cs @@ -10,6 +10,11 @@ internal class WhitespaceRewriter : SyntaxRewriter { public override SyntaxNode Visit(SyntaxNode node) { + if (node == null) + { + return base.Visit(node); + } + var children = node.ChildNodes(); for (var i = 0; i < children.Count; i++) { diff --git a/src/Microsoft.AspNetCore.Razor.Language/LegacyRazorIntermediateNodeLoweringPhase.cs b/src/Microsoft.AspNetCore.Razor.Language/LegacyRazorIntermediateNodeLoweringPhase.cs new file mode 100644 index 000000000..73f4acfa5 --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/LegacyRazorIntermediateNodeLoweringPhase.cs @@ -0,0 +1,839 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using Microsoft.AspNetCore.Razor.Language.Extensions; +using Microsoft.AspNetCore.Razor.Language.Intermediate; +using Microsoft.AspNetCore.Razor.Language.Legacy; + +namespace Microsoft.AspNetCore.Razor.Language +{ +#pragma warning disable CS0618 // Type or member is obsolete + internal class LegacyRazorIntermediateNodeLoweringPhase : RazorEnginePhaseBase, IRazorIntermediateNodeLoweringPhase + { + private IRazorCodeGenerationOptionsFeature _optionsFeature; + + protected override void OnIntialized() + { + _optionsFeature = GetRequiredFeature(); + } + + protected override void ExecuteCore(RazorCodeDocument codeDocument) + { + var syntaxTree = codeDocument.GetSyntaxTree(); + ThrowForMissingDocumentDependency(syntaxTree); + + if (!(syntaxTree is LegacyRazorSyntaxTree)) + { + return; + } + + // This might not have been set if there are no tag helpers. + var tagHelperContext = codeDocument.GetTagHelperContext(); + + var document = new DocumentIntermediateNode(); + var builder = IntermediateNodeBuilder.Create(document); + + document.Options = codeDocument.GetCodeGenerationOptions() ?? _optionsFeature.GetOptions(); + + IReadOnlyList importedUsings = Array.Empty(); + + // The import documents should be inserted logically before the main document. + var imports = codeDocument.GetImportSyntaxTrees(); + if (imports != null) + { + var importsVisitor = new ImportsVisitor(document, builder, syntaxTree.Options.FeatureFlags); + + for (var j = 0; j < imports.Count; j++) + { + var import = imports[j]; + + importsVisitor.FilePath = import.Source.FilePath; + importsVisitor.VisitBlock(import.LegacyRoot); + } + + importedUsings = importsVisitor.Usings; + } + + var tagHelperPrefix = tagHelperContext?.Prefix; + var visitor = new MainSourceVisitor(document, builder, tagHelperPrefix, syntaxTree.Options.FeatureFlags) + { + FilePath = syntaxTree.Source.FilePath, + }; + + visitor.VisitBlock(syntaxTree.LegacyRoot); + + // 1. Prioritize non-imported usings over imported ones. + // 2. Don't import usings that already exist in primary document. + // 3. Allow duplicate usings in primary document (C# warning). + var usingReferences = new List(visitor.Usings); + for (var j = importedUsings.Count - 1; j >= 0; j--) + { + if (!usingReferences.Contains(importedUsings[j])) + { + usingReferences.Insert(0, importedUsings[j]); + } + } + + // In each lowering piece above, namespaces were tracked. We render them here to ensure every + // lowering action has a chance to add a source location to a namespace. Ultimately, closest wins. + + var i = 0; + foreach (var reference in usingReferences) + { + var @using = new UsingDirectiveIntermediateNode() + { + Content = reference.Namespace, + Source = reference.Source, + }; + + builder.Insert(i++, @using); + } + + ImportDirectives(document); + + // The document should contain all errors that currently exist in the system. This involves + // adding the errors from the primary and imported syntax trees. + for (i = 0; i < syntaxTree.Diagnostics.Count; i++) + { + document.Diagnostics.Add(syntaxTree.Diagnostics[i]); + } + + if (imports != null) + { + for (i = 0; i < imports.Count; i++) + { + var import = imports[i]; + for (var j = 0; j < import.Diagnostics.Count; j++) + { + document.Diagnostics.Add(import.Diagnostics[j]); + } + } + } + + codeDocument.SetDocumentIntermediateNode(document); + } + + private void ImportDirectives(DocumentIntermediateNode document) + { + var visitor = new DirectiveVisitor(); + visitor.VisitDocument(document); + + var seenDirectives = new HashSet(); + for (var i = visitor.Directives.Count - 1; i >= 0; i--) + { + var reference = visitor.Directives[i]; + var directive = (DirectiveIntermediateNode)reference.Node; + var descriptor = directive.Directive; + var seenDirective = !seenDirectives.Add(descriptor); + + if (!directive.IsImported()) + { + continue; + } + + switch (descriptor.Kind) + { + case DirectiveKind.SingleLine: + if (seenDirective && descriptor.Usage == DirectiveUsage.FileScopedSinglyOccurring) + { + // This directive has been overridden, it should be removed from the document. + + break; + } + + continue; + case DirectiveKind.RazorBlock: + case DirectiveKind.CodeBlock: + if (descriptor.Usage == DirectiveUsage.FileScopedSinglyOccurring) + { + // A block directive cannot be imported. + + document.Diagnostics.Add( + RazorDiagnosticFactory.CreateDirective_BlockDirectiveCannotBeImported(descriptor.Directive)); + } + break; + default: + throw new InvalidOperationException(Resources.FormatUnexpectedDirectiveKind(typeof(DirectiveKind).FullName)); + } + + // Overridden and invalid imported directives make it to here. They should be removed from the document. + + reference.Remove(); + } + } + + private struct UsingReference : IEquatable + { + public UsingReference(string @namespace, SourceSpan? source) + { + Namespace = @namespace; + Source = source; + } + public string Namespace { get; } + + public SourceSpan? Source { get; } + + public override bool Equals(object other) + { + if (other is UsingReference reference) + { + return Equals(reference); + } + + return false; + } + public bool Equals(UsingReference other) + { + return string.Equals(Namespace, other.Namespace, StringComparison.Ordinal); + } + + public override int GetHashCode() => Namespace.GetHashCode(); + } + + private class LoweringVisitor : ParserVisitor + { + protected readonly IntermediateNodeBuilder _builder; + protected readonly DocumentIntermediateNode _document; + protected readonly List _usings; + protected readonly RazorParserFeatureFlags _featureFlags; + + public LoweringVisitor(DocumentIntermediateNode document, IntermediateNodeBuilder builder, RazorParserFeatureFlags featureFlags) + { + _document = document; + _builder = builder; + _usings = new List(); + _featureFlags = featureFlags; + } + + public IReadOnlyList Usings => _usings; + + public string FilePath { get; set; } + + public override void VisitDirectiveToken(DirectiveTokenChunkGenerator chunkGenerator, Span span) + { + _builder.Add(new DirectiveTokenIntermediateNode() + { + Content = span.Content, + DirectiveToken = chunkGenerator.Descriptor, + Source = BuildSourceSpanFromNode(span), + }); + } + + public override void VisitDirectiveBlock(DirectiveChunkGenerator chunkGenerator, Block block) + { + IntermediateNode directiveNode; + if (IsMalformed(chunkGenerator.Diagnostics)) + { + directiveNode = new MalformedDirectiveIntermediateNode() + { + DirectiveName = chunkGenerator.Descriptor.Directive, + Directive = chunkGenerator.Descriptor, + Source = BuildSourceSpanFromNode(block), + }; + } + else + { + directiveNode = new DirectiveIntermediateNode() + { + DirectiveName = chunkGenerator.Descriptor.Directive, + Directive = chunkGenerator.Descriptor, + Source = BuildSourceSpanFromNode(block), + }; + } + + for (var i = 0; i < chunkGenerator.Diagnostics.Count; i++) + { + directiveNode.Diagnostics.Add(chunkGenerator.Diagnostics[i]); + } + + _builder.Push(directiveNode); + + VisitDefault(block); + + _builder.Pop(); + } + + public override void VisitImportSpan(AddImportChunkGenerator chunkGenerator, Span span) + { + var namespaceImport = chunkGenerator.Namespace.Trim(); + var namespaceSpan = BuildSourceSpanFromNode(span); + _usings.Add(new UsingReference(namespaceImport, namespaceSpan)); + } + + public override void VisitAddTagHelperSpan(AddTagHelperChunkGenerator chunkGenerator, Span span) + { + IntermediateNode directiveNode; + if (IsMalformed(chunkGenerator.Diagnostics)) + { + directiveNode = new MalformedDirectiveIntermediateNode() + { + DirectiveName = CSharpCodeParser.AddTagHelperDirectiveDescriptor.Directive, + Directive = CSharpCodeParser.AddTagHelperDirectiveDescriptor, + Source = BuildSourceSpanFromNode(span), + }; + } + else + { + directiveNode = new DirectiveIntermediateNode() + { + DirectiveName = CSharpCodeParser.AddTagHelperDirectiveDescriptor.Directive, + Directive = CSharpCodeParser.AddTagHelperDirectiveDescriptor, + Source = BuildSourceSpanFromNode(span), + }; + } + + for (var i = 0; i < chunkGenerator.Diagnostics.Count; i++) + { + directiveNode.Diagnostics.Add(chunkGenerator.Diagnostics[i]); + } + + _builder.Push(directiveNode); + + _builder.Add(new DirectiveTokenIntermediateNode() + { + Content = chunkGenerator.LookupText, + DirectiveToken = CSharpCodeParser.AddTagHelperDirectiveDescriptor.Tokens.First(), + Source = BuildSourceSpanFromNode(span), + }); + + _builder.Pop(); + } + + public override void VisitRemoveTagHelperSpan(RemoveTagHelperChunkGenerator chunkGenerator, Span span) + { + IntermediateNode directiveNode; + if (IsMalformed(chunkGenerator.Diagnostics)) + { + directiveNode = new MalformedDirectiveIntermediateNode() + { + DirectiveName = CSharpCodeParser.RemoveTagHelperDirectiveDescriptor.Directive, + Directive = CSharpCodeParser.RemoveTagHelperDirectiveDescriptor, + Source = BuildSourceSpanFromNode(span), + }; + } + else + { + directiveNode = new DirectiveIntermediateNode() + { + DirectiveName = CSharpCodeParser.RemoveTagHelperDirectiveDescriptor.Directive, + Directive = CSharpCodeParser.RemoveTagHelperDirectiveDescriptor, + Source = BuildSourceSpanFromNode(span), + }; + } + + for (var i = 0; i < chunkGenerator.Diagnostics.Count; i++) + { + directiveNode.Diagnostics.Add(chunkGenerator.Diagnostics[i]); + } + + _builder.Push(directiveNode); + + _builder.Add(new DirectiveTokenIntermediateNode() + { + Content = chunkGenerator.LookupText, + DirectiveToken = CSharpCodeParser.RemoveTagHelperDirectiveDescriptor.Tokens.First(), + Source = BuildSourceSpanFromNode(span), + }); + + _builder.Pop(); + } + + public override void VisitTagHelperPrefixDirectiveSpan(TagHelperPrefixDirectiveChunkGenerator chunkGenerator, Span span) + { + IntermediateNode directiveNode; + if (IsMalformed(chunkGenerator.Diagnostics)) + { + directiveNode = new MalformedDirectiveIntermediateNode() + { + DirectiveName = CSharpCodeParser.TagHelperPrefixDirectiveDescriptor.Directive, + Directive = CSharpCodeParser.TagHelperPrefixDirectiveDescriptor, + Source = BuildSourceSpanFromNode(span), + }; + } + else + { + directiveNode = new DirectiveIntermediateNode() + { + DirectiveName = CSharpCodeParser.TagHelperPrefixDirectiveDescriptor.Directive, + Directive = CSharpCodeParser.TagHelperPrefixDirectiveDescriptor, + Source = BuildSourceSpanFromNode(span), + }; + } + + for (var i = 0; i < chunkGenerator.Diagnostics.Count; i++) + { + directiveNode.Diagnostics.Add(chunkGenerator.Diagnostics[i]); + } + + _builder.Push(directiveNode); + + _builder.Add(new DirectiveTokenIntermediateNode() + { + Content = chunkGenerator.Prefix, + DirectiveToken = CSharpCodeParser.TagHelperPrefixDirectiveDescriptor.Tokens.First(), + Source = BuildSourceSpanFromNode(span), + }); + + _builder.Pop(); + } + + protected SourceSpan? BuildSourceSpanFromNode(SyntaxTreeNode node) + { + if (node == null || node.Start == SourceLocation.Undefined) + { + return null; + } + + var span = new SourceSpan( + node.Start.FilePath ?? FilePath, + node.Start.AbsoluteIndex, + node.Start.LineIndex, + node.Start.CharacterIndex, + node.Length); + return span; + } + } + + private class MainSourceVisitor : LoweringVisitor + { + private readonly string _tagHelperPrefix; + + public MainSourceVisitor(DocumentIntermediateNode document, IntermediateNodeBuilder builder, string tagHelperPrefix, RazorParserFeatureFlags featureFlags) + : base(document, builder, featureFlags) + { + _tagHelperPrefix = tagHelperPrefix; + } + + // Example + // + // Name=checked + // Prefix= checked=" + // Suffix=" + public override void VisitAttributeBlock(AttributeBlockChunkGenerator chunkGenerator, Block block) + { + _builder.Push(new HtmlAttributeIntermediateNode() + { + AttributeName = chunkGenerator.Name, + Prefix = chunkGenerator.Prefix, + Suffix = chunkGenerator.Suffix, + Source = BuildSourceSpanFromNode(block), + }); + + VisitDefault(block); + + _builder.Pop(); + } + + // Example + // + // Prefix= (space) + // Children will contain a token for @false. + public override void VisitDynamicAttributeBlock(DynamicAttributeBlockChunkGenerator chunkGenerator, Block block) + { + var firstChild = block.Children.FirstOrDefault(c => c.IsBlock) as Block; + if (firstChild == null || firstChild.Type == BlockKindInternal.Expression) + { + _builder.Push(new CSharpExpressionAttributeValueIntermediateNode() + { + Prefix = chunkGenerator.Prefix, + Source = BuildSourceSpanFromNode(block), + }); + } + else + { + _builder.Push(new CSharpCodeAttributeValueIntermediateNode() + { + Prefix = chunkGenerator.Prefix, + Source = BuildSourceSpanFromNode(block), + }); + } + + VisitDefault(block); + + _builder.Pop(); + } + + public override void VisitLiteralAttributeSpan(LiteralAttributeChunkGenerator chunkGenerator, Span span) + { + _builder.Push(new HtmlAttributeValueIntermediateNode() + { + Prefix = chunkGenerator.Prefix, + Source = BuildSourceSpanFromNode(span), + }); + + var location = chunkGenerator.Value.Location; + SourceSpan? valueSpan = null; + if (location != SourceLocation.Undefined) + { + valueSpan = new SourceSpan( + location.FilePath ?? FilePath, + location.AbsoluteIndex, + location.LineIndex, + location.CharacterIndex, + chunkGenerator.Value.Value.Length); + } + + _builder.Add(new IntermediateToken() + { + Content = chunkGenerator.Value, + Kind = TokenKind.Html, + Source = valueSpan + }); + + _builder.Pop(); + } + + public override void VisitTemplateBlock(TemplateBlockChunkGenerator chunkGenerator, Block block) + { + var templateNode = new TemplateIntermediateNode(); + _builder.Push(templateNode); + + VisitDefault(block); + + _builder.Pop(); + + if (templateNode.Children.Count > 0) + { + var sourceRangeStart = templateNode + .Children + .FirstOrDefault(child => child.Source != null) + ?.Source; + + if (sourceRangeStart != null) + { + var contentLength = templateNode.Children.Sum(child => child.Source?.Length ?? 0); + + templateNode.Source = new SourceSpan( + sourceRangeStart.Value.FilePath ?? FilePath, + sourceRangeStart.Value.AbsoluteIndex, + sourceRangeStart.Value.LineIndex, + sourceRangeStart.Value.CharacterIndex, + contentLength); + } + } + } + + // CSharp expressions are broken up into blocks and spans because Razor allows Razor comments + // inside an expression. + // Ex: + // @DateTime.@*This is a comment*@Now + // + // We need to capture this in the IR so that we can give each piece the correct source mappings + public override void VisitExpressionBlock(ExpressionChunkGenerator chunkGenerator, Block block) + { + if (_builder.Current is CSharpExpressionAttributeValueIntermediateNode) + { + VisitDefault(block); + return; + } + + var expressionNode = new CSharpExpressionIntermediateNode(); + + _builder.Push(expressionNode); + + VisitDefault(block); + + _builder.Pop(); + + if (expressionNode.Children.Count > 0) + { + var sourceRangeStart = expressionNode + .Children + .FirstOrDefault(child => child.Source != null) + ?.Source; + + if (sourceRangeStart != null) + { + var contentLength = expressionNode.Children.Sum(child => child.Source?.Length ?? 0); + + expressionNode.Source = new SourceSpan( + sourceRangeStart.Value.FilePath ?? FilePath, + sourceRangeStart.Value.AbsoluteIndex, + sourceRangeStart.Value.LineIndex, + sourceRangeStart.Value.CharacterIndex, + contentLength); + } + } + } + + public override void VisitExpressionSpan(ExpressionChunkGenerator chunkGenerator, Span span) + { + _builder.Add(new IntermediateToken() + { + Content = span.Content, + Kind = TokenKind.CSharp, + Source = BuildSourceSpanFromNode(span), + }); + } + + public override void VisitStatementSpan(StatementChunkGenerator chunkGenerator, Span span) + { + var isAttributeValue = _builder.Current is CSharpCodeAttributeValueIntermediateNode; + + if (!isAttributeValue) + { + var statementNode = new CSharpCodeIntermediateNode() + { + Source = BuildSourceSpanFromNode(span) + }; + _builder.Push(statementNode); + } + + _builder.Add(new IntermediateToken() + { + Content = span.Content, + Kind = TokenKind.CSharp, + Source = BuildSourceSpanFromNode(span), + }); + + if (!isAttributeValue) + { + _builder.Pop(); + } + } + + public override void VisitMarkupSpan(MarkupChunkGenerator chunkGenerator, Span span) + { + if (span.Tokens.Count == 1) + { + var token = span.Tokens[0]; + if (token != null && + token.Kind == SyntaxKind.Marker && + token.Content.Length == 0) + { + // We don't want to create IR nodes for marker tokens. + return; + } + } + + var source = BuildSourceSpanFromNode(span); + var currentChildren = _builder.Current.Children; + if (currentChildren.Count > 0 && currentChildren[currentChildren.Count - 1] is HtmlContentIntermediateNode) + { + var existingHtmlContent = (HtmlContentIntermediateNode)currentChildren[currentChildren.Count - 1]; + + if (existingHtmlContent.Source == null && source == null) + { + Combine(existingHtmlContent, span); + return; + } + + if (source != null && + existingHtmlContent.Source != null && + existingHtmlContent.Source.Value.FilePath == source.Value.FilePath && + existingHtmlContent.Source.Value.AbsoluteIndex + existingHtmlContent.Source.Value.Length == source.Value.AbsoluteIndex) + { + Combine(existingHtmlContent, span); + return; + } + } + + var contentNode = new HtmlContentIntermediateNode() + { + Source = source + }; + _builder.Push(contentNode); + + _builder.Add(new IntermediateToken() + { + Content = span.Content, + Kind = TokenKind.Html, + Source = source, + }); + + _builder.Pop(); + } + + public override void VisitTagHelperBlock(TagHelperChunkGenerator chunkGenerator, Block block) + { + var tagHelperBlock = block as TagHelperBlock; + if (tagHelperBlock == null) + { + return; + } + + var tagName = tagHelperBlock.TagName; + if (_tagHelperPrefix != null) + { + tagName = tagName.Substring(_tagHelperPrefix.Length); + } + + var tagHelperNode = new TagHelperIntermediateNode() + { + TagName = tagName, + TagMode = tagHelperBlock.TagMode, + Source = BuildSourceSpanFromNode(block) + }; + + foreach (var tagHelper in tagHelperBlock.Binding.Descriptors) + { + tagHelperNode.TagHelpers.Add(tagHelper); + } + + _builder.Push(tagHelperNode); + + _builder.Push(new TagHelperBodyIntermediateNode()); + + VisitDefault(block); + + _builder.Pop(); // Pop InitializeTagHelperStructureIntermediateNode + + AddTagHelperAttributes(tagHelperBlock.Attributes, tagHelperBlock.Binding); + + _builder.Pop(); // Pop TagHelperIntermediateNode + } + + private void Combine(HtmlContentIntermediateNode node, Span span) + { + node.Children.Add(new IntermediateToken() + { + Content = span.Content, + Kind = TokenKind.Html, + Source = BuildSourceSpanFromNode(span), + }); + + if (node.Source != null) + { + Debug.Assert(node.Source.Value.FilePath != null); + + node.Source = new SourceSpan( + node.Source.Value.FilePath, + node.Source.Value.AbsoluteIndex, + node.Source.Value.LineIndex, + node.Source.Value.CharacterIndex, + node.Source.Value.Length + span.Content.Length); + } + } + + private void AddTagHelperAttributes(IList attributes, TagHelperBinding tagHelperBinding) + { + var descriptors = tagHelperBinding.Descriptors; + var renderedBoundAttributeNames = new HashSet(StringComparer.OrdinalIgnoreCase); + foreach (var attribute in attributes) + { + var attributeValueNode = attribute.Value; + var associatedDescriptors = descriptors.Where(descriptor => + descriptor.BoundAttributes.Any(attributeDescriptor => TagHelperMatchingConventions.CanSatisfyBoundAttribute(attribute.Name, attributeDescriptor))); + + if (associatedDescriptors.Any() && renderedBoundAttributeNames.Add(attribute.Name)) + { + var isMinimizedAttribute = attributeValueNode == null; + if (isMinimizedAttribute && !_featureFlags.AllowMinimizedBooleanTagHelperAttributes) + { + // Minimized attributes are not valid for non-boolean bound attributes. TagHelperBlockRewriter + // has already logged an error if it was a non-boolean bound attribute; so we can skip. + continue; + } + + foreach (var associatedDescriptor in associatedDescriptors) + { + var associatedAttributeDescriptor = associatedDescriptor.BoundAttributes.First(a => + { + return TagHelperMatchingConventions.CanSatisfyBoundAttribute(attribute.Name, a); + }); + + var expectsBooleanValue = associatedAttributeDescriptor.ExpectsBooleanValue(attribute.Name); + + if (isMinimizedAttribute && !expectsBooleanValue) + { + // We do not allow minimized non-boolean bound attributes. + continue; + } + + var setTagHelperProperty = new TagHelperPropertyIntermediateNode() + { + AttributeName = attribute.Name, + BoundAttribute = associatedAttributeDescriptor, + TagHelper = associatedDescriptor, + AttributeStructure = attribute.AttributeStructure, + Source = BuildSourceSpanFromNode(attributeValueNode), + IsIndexerNameMatch = TagHelperMatchingConventions.SatisfiesBoundAttributeIndexer(attribute.Name, associatedAttributeDescriptor), + }; + + _builder.Push(setTagHelperProperty); + attributeValueNode?.Accept(this); + _builder.Pop(); + } + } + else + { + var addHtmlAttribute = new TagHelperHtmlAttributeIntermediateNode() + { + AttributeName = attribute.Name, + AttributeStructure = attribute.AttributeStructure + }; + + _builder.Push(addHtmlAttribute); + if (attributeValueNode != null) + { + attributeValueNode.Accept(this); + } + _builder.Pop(); + } + } + } + } + + private class ImportsVisitor : LoweringVisitor + { + public ImportsVisitor(DocumentIntermediateNode document, IntermediateNodeBuilder builder, RazorParserFeatureFlags featureFlags) + : base(document, new ImportBuilder(builder), featureFlags) + { + } + + private class ImportBuilder : IntermediateNodeBuilder + { + private readonly IntermediateNodeBuilder _innerBuilder; + + public ImportBuilder(IntermediateNodeBuilder innerBuilder) + { + _innerBuilder = innerBuilder; + } + + public override IntermediateNode Current => _innerBuilder.Current; + + public override void Add(IntermediateNode node) + { + node.Annotations[CommonAnnotations.Imported] = CommonAnnotations.Imported; + _innerBuilder.Add(node); + } + + public override IntermediateNode Build() => _innerBuilder.Build(); + + public override void Insert(int index, IntermediateNode node) + { + node.Annotations[CommonAnnotations.Imported] = CommonAnnotations.Imported; + _innerBuilder.Insert(index, node); + } + + public override IntermediateNode Pop() => _innerBuilder.Pop(); + + public override void Push(IntermediateNode node) + { + node.Annotations[CommonAnnotations.Imported] = CommonAnnotations.Imported; + _innerBuilder.Push(node); + } + } + } + + private class DirectiveVisitor : IntermediateNodeWalker + { + public List Directives = new List(); + + public override void VisitDirective(DirectiveIntermediateNode node) + { + Directives.Add(new IntermediateNodeReference(Parent, node)); + + base.VisitDirective(node); + } + } + + private static bool IsMalformed(List diagnostics) + => diagnostics.Count > 0 && diagnostics.Any(diagnostic => diagnostic.Severity == RazorDiagnosticSeverity.Error); + } +#pragma warning restore CS0618 // Type or member is obsolete +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/RazorEngine.cs b/src/Microsoft.AspNetCore.Razor.Language/RazorEngine.cs index 4ed9ae75e..e9f430987 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/RazorEngine.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/RazorEngine.cs @@ -51,6 +51,7 @@ private static void AddDefaultPhases(IList phases) phases.Add(new DefaultRazorSyntaxTreePhase()); phases.Add(new DefaultRazorTagHelperBinderPhase()); phases.Add(new DefaultRazorIntermediateNodeLoweringPhase()); + phases.Add(new LegacyRazorIntermediateNodeLoweringPhase()); phases.Add(new DefaultRazorDocumentClassifierPhase()); phases.Add(new DefaultRazorDirectiveClassifierPhase()); phases.Add(new DefaultRazorOptimizationPhase()); diff --git a/src/Microsoft.AspNetCore.Razor.Language/RazorProjectEngine.cs b/src/Microsoft.AspNetCore.Razor.Language/RazorProjectEngine.cs index a36b80d4b..a23ee2263 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/RazorProjectEngine.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/RazorProjectEngine.cs @@ -141,6 +141,7 @@ private static void AddDefaultPhases(IList phases) phases.Add(new DefaultRazorSyntaxTreePhase()); phases.Add(new DefaultRazorTagHelperBinderPhase()); phases.Add(new DefaultRazorIntermediateNodeLoweringPhase()); + phases.Add(new LegacyRazorIntermediateNodeLoweringPhase()); phases.Add(new DefaultRazorDocumentClassifierPhase()); phases.Add(new DefaultRazorDirectiveClassifierPhase()); phases.Add(new DefaultRazorOptimizationPhase()); diff --git a/src/Microsoft.AspNetCore.Razor.Language/RazorSyntaxTree.cs b/src/Microsoft.AspNetCore.Razor.Language/RazorSyntaxTree.cs index 3968467ed..5747f293f 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/RazorSyntaxTree.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/RazorSyntaxTree.cs @@ -68,17 +68,17 @@ internal static RazorSyntaxTree Create( return new DefaultRazorSyntaxTree(root, source, new List(diagnostics), options); } - public static RazorSyntaxTree Parse(RazorSourceDocument source) + public static RazorSyntaxTree Parse(RazorSourceDocument source, bool legacy = false) { if (source == null) { throw new ArgumentNullException(nameof(source)); } - return Parse(source, options: null); + return Parse(source, options: null, legacy: legacy); } - public static RazorSyntaxTree Parse(RazorSourceDocument source, RazorParserOptions options) + public static RazorSyntaxTree Parse(RazorSourceDocument source, RazorParserOptions options, bool legacy = false) { if (source == null) { @@ -86,7 +86,7 @@ public static RazorSyntaxTree Parse(RazorSourceDocument source, RazorParserOptio } var parser = new RazorParser(options ?? RazorParserOptions.CreateDefault()); - return parser.Parse(source); + return parser.Parse(source, legacy); } public abstract IReadOnlyList Diagnostics { get; } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/GreenNodeExtensions.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/GreenNodeExtensions.cs index 20a971f7f..ffbcf5941 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/GreenNodeExtensions.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/GreenNodeExtensions.cs @@ -1,7 +1,9 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.Collections.Generic; +using System.Linq; namespace Microsoft.AspNetCore.Razor.Language.Syntax { @@ -19,6 +21,17 @@ internal static InternalSyntax.SyntaxList ToGreenList(this GreenNode node) return new InternalSyntax.SyntaxList(node); } + public static object GetAnnotationValue(this TNode node, string key) where TNode : GreenNode + { + if (node == null) + { + throw new ArgumentNullException(nameof(node)); + } + + var annotation = node.GetAnnotations().FirstOrDefault(n => n.Kind == key); + return annotation?.Data; + } + public static TNode WithAnnotationsGreen(this TNode node, params SyntaxAnnotation[] annotations) where TNode : GreenNode { var newAnnotations = new List(); diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/InternalSyntax/RazorDirectiveSyntax.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/InternalSyntax/RazorDirectiveSyntax.cs new file mode 100644 index 000000000..5875afcbd --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/InternalSyntax/RazorDirectiveSyntax.cs @@ -0,0 +1,33 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Collections.Generic; + +namespace Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax +{ + internal sealed partial class RazorDirectiveSyntax + { + private static readonly string DirectiveDescriptorKey = typeof(DirectiveDescriptor).Name; + + public DirectiveDescriptor DirectiveDescriptor + { + get + { + var descriptor = this.GetAnnotationValue(DirectiveDescriptorKey) as DirectiveDescriptor; + return descriptor; + } + } + + public RazorDirectiveSyntax WithDirectiveDescriptor(DirectiveDescriptor descriptor) + { + var annotations = new List(GetAnnotations()) + { + new SyntaxAnnotation(DirectiveDescriptorKey, descriptor) + }; + + var newGreen = this.WithAnnotationsGreen(annotations.ToArray()); + + return newGreen; + } + } +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/RazorDirectiveSyntax.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/RazorDirectiveSyntax.cs new file mode 100644 index 000000000..cd23fda50 --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/RazorDirectiveSyntax.cs @@ -0,0 +1,33 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Collections.Generic; + +namespace Microsoft.AspNetCore.Razor.Language.Syntax +{ + internal sealed partial class RazorDirectiveSyntax + { + private static readonly string DirectiveDescriptorKey = typeof(DirectiveDescriptor).Name; + + public DirectiveDescriptor DirectiveDescriptor + { + get + { + var descriptor = this.GetAnnotationValue(DirectiveDescriptorKey) as DirectiveDescriptor; + return descriptor; + } + } + + public RazorDirectiveSyntax WithDirectiveDescriptor(DirectiveDescriptor descriptor) + { + var annotations = new List(GetAnnotations()) + { + new SyntaxAnnotation(DirectiveDescriptorKey, descriptor) + }; + + var newGreen = Green.WithAnnotationsGreen(annotations.ToArray()); + + return (RazorDirectiveSyntax)newGreen.CreateRed(Parent, Position); + } + } +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxFactory.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxFactory.cs index 98568d21d..4e619799d 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxFactory.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxFactory.cs @@ -14,5 +14,10 @@ public static SyntaxToken Token(SyntaxKind kind, string content, params RazorDia { return new SyntaxToken(InternalSyntax.SyntaxFactory.Token(kind, content), parent: null, position: 0); } + + internal static SyntaxToken MissingToken(SyntaxKind kind, params RazorDiagnostic[] diagnostics) + { + return new SyntaxToken(InternalSyntax.SyntaxFactory.MissingToken(kind, diagnostics), parent: null, position: 0); + } } } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNode.cs index ee0cccd4c..f7ff93d48 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNode.cs @@ -262,18 +262,20 @@ public SyntaxNode GetLastTerminal() do { + SyntaxNode lastChild = null; for (var i = node.SlotCount - 1; i >= 0; i--) { var child = node.GetNodeSlot(i); - if (child != null) + if (child != null && child.FullWidth > 0) { - node = child; + lastChild = child; break; } } - } while (node.SlotCount != 0); + node = lastChild; + } while (node?.SlotCount > 0); - return node == this ? this : node; + return node; } ///

        diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNodeExtensions.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNodeExtensions.cs index 81103d781..031691162 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNodeExtensions.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNodeExtensions.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using Microsoft.AspNetCore.Razor.Language.Legacy; @@ -86,7 +87,36 @@ public static SourceLocation GetSourceLocation(this SyntaxNode node, RazorSource throw new ArgumentNullException(nameof(source)); } - return source.Lines.GetLocation(node.Position); + try + { + if (source.Length == 0) + { + // Just a marker symbol + return new SourceLocation(source.FilePath, 0, 0, 0); + } + if (node.Position >= source.Length) + { + // E.g. Marker symbol at the end of the document + var lastLocation = source.Lines.GetLocation(source.Length - 1); + return new SourceLocation( + source.FilePath, // GetLocation prefers RelativePath but we want FilePath. + lastLocation.AbsoluteIndex + 1, + lastLocation.LineIndex, + lastLocation.CharacterIndex + 1); + } + + var location = source.Lines.GetLocation(node.Position); + return new SourceLocation( + source.FilePath, // GetLocation prefers RelativePath but we want FilePath. + location.AbsoluteIndex, + location.LineIndex, + location.CharacterIndex); + } + catch (IndexOutOfRangeException) + { + Debug.Assert(false, "Node position should stay within document length."); + return new SourceLocation(source.FilePath, node.Position, 0, 0); + } } public static SourceSpan GetSourceSpan(this SyntaxNode node, RazorSourceDocument source) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxRewriter.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxRewriter.cs index 94f19a12a..d491bd0e8 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxRewriter.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxRewriter.cs @@ -15,7 +15,7 @@ public override SyntaxNode VisitToken(SyntaxToken token) // 3. Repeated null checks // PERF: Avoid testing node for null more than once - var node = token.Green; + var node = token?.Green; if (node == null) { return token; diff --git a/src/Microsoft.AspNetCore.Razor.Language/breakingchanges.netcore.json b/src/Microsoft.AspNetCore.Razor.Language/breakingchanges.netcore.json index a753f1bfc..dc0aff2e1 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/breakingchanges.netcore.json +++ b/src/Microsoft.AspNetCore.Razor.Language/breakingchanges.netcore.json @@ -11,5 +11,15 @@ "TypeId": "protected class Microsoft.AspNetCore.Razor.Language.Legacy.CSharpCodeParser+Block", "MemberId": "public .ctor(Microsoft.AspNetCore.Razor.Language.Legacy.CSharpSymbol symbol, Microsoft.AspNetCore.Razor.Language.SourceLocation start)", "Kind": "Removal" + }, + { + "TypeId": "public abstract class Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree", + "MemberId": "public static Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree Parse(Microsoft.AspNetCore.Razor.Language.RazorSourceDocument source)", + "Kind": "Removal" + }, + { + "TypeId": "public abstract class Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree", + "MemberId": "public static Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree Parse(Microsoft.AspNetCore.Razor.Language.RazorSourceDocument source, Microsoft.AspNetCore.Razor.Language.RazorParserOptions options)", + "Kind": "Removal" } ] \ No newline at end of file diff --git a/src/Microsoft.AspNetCore.Razor.Language/breakingchanges.netframework.json b/src/Microsoft.AspNetCore.Razor.Language/breakingchanges.netframework.json index a753f1bfc..dc0aff2e1 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/breakingchanges.netframework.json +++ b/src/Microsoft.AspNetCore.Razor.Language/breakingchanges.netframework.json @@ -11,5 +11,15 @@ "TypeId": "protected class Microsoft.AspNetCore.Razor.Language.Legacy.CSharpCodeParser+Block", "MemberId": "public .ctor(Microsoft.AspNetCore.Razor.Language.Legacy.CSharpSymbol symbol, Microsoft.AspNetCore.Razor.Language.SourceLocation start)", "Kind": "Removal" + }, + { + "TypeId": "public abstract class Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree", + "MemberId": "public static Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree Parse(Microsoft.AspNetCore.Razor.Language.RazorSourceDocument source)", + "Kind": "Removal" + }, + { + "TypeId": "public abstract class Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree", + "MemberId": "public static Microsoft.AspNetCore.Razor.Language.RazorSyntaxTree Parse(Microsoft.AspNetCore.Razor.Language.RazorSourceDocument source, Microsoft.AspNetCore.Razor.Language.RazorParserOptions options)", + "Kind": "Removal" } ] \ No newline at end of file diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Test/TestFiles/IntegrationTests/InstrumentationPassIntegrationTest/BasicTest.codegen.cs b/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Test/TestFiles/IntegrationTests/InstrumentationPassIntegrationTest/BasicTest.codegen.cs index 8c5b2e0f7..633c54e46 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Test/TestFiles/IntegrationTests/InstrumentationPassIntegrationTest/BasicTest.codegen.cs +++ b/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Test/TestFiles/IntegrationTests/InstrumentationPassIntegrationTest/BasicTest.codegen.cs @@ -8,7 +8,7 @@ namespace Razor [global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"78993008d95836bec2b9175d4294bf7bd5f5f109", @"/TestFiles/IntegrationTests/InstrumentationPassIntegrationTest/BasicTest.cshtml")] public class Template { - private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_0 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("value", "Hello", global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); + private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_0 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("value", "Hello", global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.NoQuotes); private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_1 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("type", new global::Microsoft.AspNetCore.Html.HtmlString("text"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.SingleQuotes); private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_2 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("unbound", new global::Microsoft.AspNetCore.Html.HtmlString("foo"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); #line hidden diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Test/TestFiles/IntegrationTests/InstrumentationPassIntegrationTest/BasicTest.ir.txt b/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Test/TestFiles/IntegrationTests/InstrumentationPassIntegrationTest/BasicTest.ir.txt index c4ba72abd..4a512b079 100644 --- a/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Test/TestFiles/IntegrationTests/InstrumentationPassIntegrationTest/BasicTest.ir.txt +++ b/test/Microsoft.AspNetCore.Mvc.Razor.Extensions.Test/TestFiles/IntegrationTests/InstrumentationPassIntegrationTest/BasicTest.ir.txt @@ -3,7 +3,7 @@ Document - NamespaceDeclaration - - Razor RazorSourceChecksumAttribute - ClassDeclaration - - public - Template - - - PreallocatedTagHelperPropertyValue - - __tagHelperAttribute_0 - value - Hello - HtmlAttributeValueStyle.DoubleQuotes + PreallocatedTagHelperPropertyValue - - __tagHelperAttribute_0 - value - Hello - HtmlAttributeValueStyle.NoQuotes PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_1 - type - text - HtmlAttributeValueStyle.SingleQuotes PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_2 - unbound - foo - HtmlAttributeValueStyle.DoubleQuotes DefaultTagHelperRuntime - diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/CodeGeneration/DesignTimeNodeWriterTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/CodeGeneration/DesignTimeNodeWriterTest.cs index 79932bb30..ebb5758f8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/CodeGeneration/DesignTimeNodeWriterTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/CodeGeneration/DesignTimeNodeWriterTest.cs @@ -439,7 +439,8 @@ private static DocumentIntermediateNode Lower(RazorCodeDocument codeDocument, Ra var phase = projectEngine.Phases[i]; phase.Execute(codeDocument); - if (phase is IRazorIntermediateNodeLoweringPhase) + var nextPhase = i + 1 == projectEngine.Phases.Count ? null : projectEngine.Phases[i + 1]; + if (phase is IRazorIntermediateNodeLoweringPhase && !(nextPhase is IRazorIntermediateNodeLoweringPhase)) { break; } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/CodeGeneration/RuntimeNodeWriterTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/CodeGeneration/RuntimeNodeWriterTest.cs index b2d99dbd4..17692a20d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/CodeGeneration/RuntimeNodeWriterTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/CodeGeneration/RuntimeNodeWriterTest.cs @@ -654,7 +654,8 @@ private static DocumentIntermediateNode Lower(RazorCodeDocument codeDocument, Ra var phase = projectEngine.Phases[i]; phase.Execute(codeDocument); - if (phase is IRazorIntermediateNodeLoweringPhase) + var nextPhase = i + 1 == projectEngine.Phases.Count ? null : projectEngine.Phases[i + 1]; + if (phase is IRazorIntermediateNodeLoweringPhase && !(nextPhase is IRazorIntermediateNodeLoweringPhase)) { break; } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/CodeGeneration/TagHelperHtmlAttributeRuntimeNodeWriterTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/CodeGeneration/TagHelperHtmlAttributeRuntimeNodeWriterTest.cs index 87d2d59c2..714116a23 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/CodeGeneration/TagHelperHtmlAttributeRuntimeNodeWriterTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/CodeGeneration/TagHelperHtmlAttributeRuntimeNodeWriterTest.cs @@ -110,7 +110,8 @@ private static DocumentIntermediateNode Lower(RazorCodeDocument codeDocument, Ra var phase = projectEngine.Phases[i]; phase.Execute(codeDocument); - if (phase is IRazorIntermediateNodeLoweringPhase) + var nextPhase = i + 1 == projectEngine.Phases.Count ? null : projectEngine.Phases[i + 1]; + if (phase is IRazorIntermediateNodeLoweringPhase && !(nextPhase is IRazorIntermediateNodeLoweringPhase)) { break; } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorIntermediateNodeLoweringPhaseIntegrationTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorIntermediateNodeLoweringPhaseIntegrationTest.cs index 32eaa5f74..313e3eecd 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorIntermediateNodeLoweringPhaseIntegrationTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorIntermediateNodeLoweringPhaseIntegrationTest.cs @@ -479,7 +479,8 @@ private DocumentIntermediateNode Lower( var phase = projectEngine.Phases[i]; phase.Execute(codeDocument); - if (phase is IRazorIntermediateNodeLoweringPhase) + var nextPhase = i + 1 == projectEngine.Phases.Count ? null : projectEngine.Phases[i + 1]; + if (phase is IRazorIntermediateNodeLoweringPhase && !(nextPhase is IRazorIntermediateNodeLoweringPhase)) { break; } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorIntermediateNodeLoweringPhaseTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorIntermediateNodeLoweringPhaseTest.cs index 908983d50..c20eba340 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorIntermediateNodeLoweringPhaseTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorIntermediateNodeLoweringPhaseTest.cs @@ -32,8 +32,8 @@ public void Execute_AutomaticallyImportsSingleLineSinglyOccurringDirective() var options = RazorParserOptions.Create(builder => builder.Directives.Add(directive)); var importSource = TestRazorSourceDocument.Create("@custom \"hello\"", filePath: "import.cshtml"); var codeDocument = TestRazorCodeDocument.Create("

        NonDirective

        "); - codeDocument.SetSyntaxTree(RazorSyntaxTree.Parse(codeDocument.Source, options)); - codeDocument.SetImportSyntaxTrees(new[] { RazorSyntaxTree.Parse(importSource, options) }); + codeDocument.SetSyntaxTree(RazorSyntaxTree.Parse(codeDocument.Source, options, legacy: false)); + codeDocument.SetImportSyntaxTrees(new[] { RazorSyntaxTree.Parse(importSource, options, legacy: false) }); // Act phase.Execute(codeDocument); @@ -67,8 +67,8 @@ public void Execute_AutomaticallyOverridesImportedSingleLineSinglyOccurringDirec var options = RazorParserOptions.Create(builder => builder.Directives.Add(directive)); var importSource = TestRazorSourceDocument.Create("@custom \"hello\"", filePath: "import.cshtml"); var codeDocument = TestRazorCodeDocument.Create("@custom \"world\""); - codeDocument.SetSyntaxTree(RazorSyntaxTree.Parse(codeDocument.Source, options)); - codeDocument.SetImportSyntaxTrees(new[] { RazorSyntaxTree.Parse(importSource, options) }); + codeDocument.SetSyntaxTree(RazorSyntaxTree.Parse(codeDocument.Source, options, legacy: false)); + codeDocument.SetImportSyntaxTrees(new[] { RazorSyntaxTree.Parse(importSource, options, legacy: false) }); // Act phase.Execute(codeDocument); @@ -103,8 +103,8 @@ public void Execute_AutomaticallyOverridesImportedSingleLineSinglyOccurringDirec var importSource1 = TestRazorSourceDocument.Create("@custom \"hello\"", filePath: "import1.cshtml"); var importSource2 = TestRazorSourceDocument.Create("@custom \"world\"", filePath: "import2.cshtml"); var codeDocument = TestRazorCodeDocument.Create("

        NonDirective

        "); - codeDocument.SetSyntaxTree(RazorSyntaxTree.Parse(codeDocument.Source, options)); - codeDocument.SetImportSyntaxTrees(new[] { RazorSyntaxTree.Parse(importSource1, options), RazorSyntaxTree.Parse(importSource2, options) }); + codeDocument.SetSyntaxTree(RazorSyntaxTree.Parse(codeDocument.Source, options, legacy: false)); + codeDocument.SetImportSyntaxTrees(new[] { RazorSyntaxTree.Parse(importSource1, options, legacy: false), RazorSyntaxTree.Parse(importSource2, options, legacy: false) }); // Act phase.Execute(codeDocument); @@ -141,8 +141,8 @@ public void Execute_DoesNotImportNonFileScopedSinglyOccurringDirectives_Block() @razor ""razor block"" { }", filePath: "testImports.cshtml"); var codeDocument = TestRazorCodeDocument.Create("

        NonDirective

        "); - codeDocument.SetSyntaxTree(RazorSyntaxTree.Parse(codeDocument.Source, options)); - codeDocument.SetImportSyntaxTrees(new[] { RazorSyntaxTree.Parse(importSource, options) }); + codeDocument.SetSyntaxTree(RazorSyntaxTree.Parse(codeDocument.Source, options, legacy: false)); + codeDocument.SetImportSyntaxTrees(new[] { RazorSyntaxTree.Parse(importSource, options, legacy: false) }); // Act phase.Execute(codeDocument); @@ -168,8 +168,8 @@ public void Execute_ErrorsForCodeBlockFileScopedSinglyOccurringDirectives() var options = RazorParserOptions.Create(builder => builder.Directives.Add(directive)); var importSource = TestRazorSourceDocument.Create("@custom { }", filePath: "import.cshtml"); var codeDocument = TestRazorCodeDocument.Create("

        NonDirective

        "); - codeDocument.SetSyntaxTree(RazorSyntaxTree.Parse(codeDocument.Source, options)); - codeDocument.SetImportSyntaxTrees(new[] { RazorSyntaxTree.Parse(importSource, options) }); + codeDocument.SetSyntaxTree(RazorSyntaxTree.Parse(codeDocument.Source, options, legacy: false)); + codeDocument.SetImportSyntaxTrees(new[] { RazorSyntaxTree.Parse(importSource, options, legacy: false) }); var expectedDiagnostic = RazorDiagnosticFactory.CreateDirective_BlockDirectiveCannotBeImported("custom"); // Act @@ -198,8 +198,8 @@ public void Execute_ErrorsForRazorBlockFileScopedSinglyOccurringDirectives() var options = RazorParserOptions.Create(builder => builder.Directives.Add(directive)); var importSource = TestRazorSourceDocument.Create("@custom { }", filePath: "import.cshtml"); var codeDocument = TestRazorCodeDocument.Create("

        NonDirective

        "); - codeDocument.SetSyntaxTree(RazorSyntaxTree.Parse(codeDocument.Source, options)); - codeDocument.SetImportSyntaxTrees(new[] { RazorSyntaxTree.Parse(importSource, options) }); + codeDocument.SetSyntaxTree(RazorSyntaxTree.Parse(codeDocument.Source, options, legacy: false)); + codeDocument.SetImportSyntaxTrees(new[] { RazorSyntaxTree.Parse(importSource, options, legacy: false) }); var expectedDiagnostic = RazorDiagnosticFactory.CreateDirective_BlockDirectiveCannotBeImported("custom"); // Act @@ -245,7 +245,7 @@ public void Execute_CollatesSyntaxDiagnosticsFromSourceDocument() b.Features.Add(new DefaultRazorCodeGenerationOptionsFeature(designTime: false)); }); var codeDocument = TestRazorCodeDocument.Create("

        ().First().Children.Last() as Span; - var chunkGenerator = Assert.IsType(directiveValue.ChunkGenerator); + var erroredNode = rewrittenTree.Root.DescendantNodes().First(n => n.GetSpanContext()?.ChunkGenerator is AddTagHelperChunkGenerator); + var chunkGenerator = Assert.IsType(erroredNode.GetSpanContext().ChunkGenerator); Assert.Equal(expectedDiagnostics, chunkGenerator.Diagnostics); } @@ -84,8 +85,8 @@ public void Execute_CanHandleSingleLengthRemoveTagHelperDirective() // Assert var rewrittenTree = codeDocument.GetSyntaxTree(); - var directiveValue = rewrittenTree.LegacyRoot.Children.OfType().First().Children.Last() as Span; - var chunkGenerator = Assert.IsType(directiveValue.ChunkGenerator); + var erroredNode = rewrittenTree.Root.DescendantNodes().First(n => n.GetSpanContext()?.ChunkGenerator is RemoveTagHelperChunkGenerator); + var chunkGenerator = Assert.IsType(erroredNode.GetSpanContext().ChunkGenerator); Assert.Equal(expectedDiagnostics, chunkGenerator.Diagnostics); } @@ -123,8 +124,8 @@ public void Execute_CanHandleSingleLengthTagHelperPrefix() // Assert var rewrittenTree = codeDocument.GetSyntaxTree(); - var directiveValue = rewrittenTree.LegacyRoot.Children.OfType().First().Children.Last() as Span; - var chunkGenerator = Assert.IsType(directiveValue.ChunkGenerator); + var erroredNode = rewrittenTree.Root.DescendantNodes().First(n => n.GetSpanContext()?.ChunkGenerator is TagHelperPrefixDirectiveChunkGenerator); + var chunkGenerator = Assert.IsType(erroredNode.GetSpanContext().ChunkGenerator); Assert.Equal(expectedDiagnostics, chunkGenerator.Diagnostics); } @@ -162,13 +163,11 @@ public void Execute_RewritesTagHelpers() // Assert var rewrittenTree = codeDocument.GetSyntaxTree(); + var descendantNodes = rewrittenTree.Root.DescendantNodes(); Assert.Empty(rewrittenTree.Diagnostics); - Assert.Equal(3, rewrittenTree.LegacyRoot.Children.Count); - var formTagHelper = Assert.IsType(rewrittenTree.LegacyRoot.Children[2]); - Assert.Equal("form", formTagHelper.TagName); - Assert.Equal(3, formTagHelper.Children.Count); - var inputTagHelper = Assert.IsType(formTagHelper.Children[1]); - Assert.Equal("input", inputTagHelper.TagName); + var tagHelperNodes = descendantNodes.Where(n => n is MarkupTagHelperElementSyntax tagHelper).Cast().ToArray(); + Assert.Equal("form", tagHelperNodes[0].TagHelperInfo.TagName); + Assert.Equal("input", tagHelperNodes[1].TagHelperInfo.TagName); } [Fact] @@ -204,13 +203,11 @@ public void Execute_WithTagHelperDescriptorsFromCodeDocument_RewritesTagHelpers( // Assert var rewrittenTree = codeDocument.GetSyntaxTree(); + var descendantNodes = rewrittenTree.Root.DescendantNodes(); Assert.Empty(rewrittenTree.Diagnostics); - Assert.Equal(3, rewrittenTree.LegacyRoot.Children.Count); - var formTagHelper = Assert.IsType(rewrittenTree.LegacyRoot.Children[2]); - Assert.Equal("form", formTagHelper.TagName); - Assert.Equal(3, formTagHelper.Children.Count); - var inputTagHelper = Assert.IsType(formTagHelper.Children[1]); - Assert.Equal("input", inputTagHelper.TagName); + var tagHelperNodes = descendantNodes.Where(n => n is MarkupTagHelperElementSyntax tagHelper).Cast().ToArray(); + Assert.Equal("form", tagHelperNodes[0].TagHelperInfo.TagName); + Assert.Equal("input", tagHelperNodes[1].TagHelperInfo.TagName); } [Fact] @@ -246,13 +243,11 @@ public void Execute_NullTagHelperDescriptorsFromCodeDocument_FallsBackToTagHelpe // Assert var rewrittenTree = codeDocument.GetSyntaxTree(); + var descendantNodes = rewrittenTree.Root.DescendantNodes(); Assert.Empty(rewrittenTree.Diagnostics); - Assert.Equal(3, rewrittenTree.LegacyRoot.Children.Count); - var formTagHelper = Assert.IsType(rewrittenTree.LegacyRoot.Children[2]); - Assert.Equal("form", formTagHelper.TagName); - Assert.Equal(3, formTagHelper.Children.Count); - var inputTagHelper = Assert.IsType(formTagHelper.Children[1]); - Assert.Equal("input", inputTagHelper.TagName); + var tagHelperNodes = descendantNodes.Where(n => n is MarkupTagHelperElementSyntax tagHelper).Cast().ToArray(); + Assert.Equal("form", tagHelperNodes[0].TagHelperInfo.TagName); + Assert.Equal("input", tagHelperNodes[1].TagHelperInfo.TagName); } [Fact] @@ -288,10 +283,10 @@ public void Execute_EmptyTagHelperDescriptorsFromCodeDocument_DoesNotFallbackToT // Assert var rewrittenTree = codeDocument.GetSyntaxTree(); + var descendantNodes = rewrittenTree.Root.DescendantNodes(); Assert.Empty(rewrittenTree.Diagnostics); - Assert.Equal(7, rewrittenTree.LegacyRoot.Children.Count); - var rewrittenNodes = rewrittenTree.LegacyRoot.Children.OfType(); - Assert.Empty(rewrittenNodes); + var tagHelperNodes = descendantNodes.Where(n => n is MarkupTagHelperElementSyntax tagHelper).Cast().ToArray(); + Assert.Empty(tagHelperNodes); } [Fact] @@ -339,12 +334,13 @@ public void Execute_DirectiveWithoutQuotes_RewritesTagHelpers_TagHelperMatchesEl // Assert var rewrittenTree = codeDocument.GetSyntaxTree(); + var descendantNodes = rewrittenTree.Root.DescendantNodes(); Assert.Empty(rewrittenTree.Diagnostics); - Assert.Equal(3, rewrittenTree.LegacyRoot.Children.Count); + var tagHelperNodes = descendantNodes.Where(n => n is MarkupTagHelperElementSyntax tagHelper).Cast().ToArray(); - var formTagHelper = Assert.IsType(rewrittenTree.LegacyRoot.Children[2]); - Assert.Equal("form", formTagHelper.TagName); - Assert.Equal(2, formTagHelper.Binding.GetBoundRules(descriptor).Count()); + var formTagHelper = Assert.Single(tagHelperNodes); + Assert.Equal("form", formTagHelper.TagHelperInfo.TagName); + Assert.Equal(2, formTagHelper.TagHelperInfo.BindingResult.GetBoundRules(descriptor).Count()); } [Fact] @@ -392,12 +388,13 @@ public void Execute_DirectiveWithQuotes_RewritesTagHelpers_TagHelperMatchesEleme // Assert var rewrittenTree = codeDocument.GetSyntaxTree(); + var descendantNodes = rewrittenTree.Root.DescendantNodes(); Assert.Empty(rewrittenTree.Diagnostics); - Assert.Equal(3, rewrittenTree.LegacyRoot.Children.Count); + var tagHelperNodes = descendantNodes.Where(n => n is MarkupTagHelperElementSyntax tagHelper).Cast().ToArray(); - var formTagHelper = Assert.IsType(rewrittenTree.LegacyRoot.Children[2]); - Assert.Equal("form", formTagHelper.TagName); - Assert.Equal(2, formTagHelper.Binding.GetBoundRules(descriptor).Count()); + var formTagHelper = Assert.Single(tagHelperNodes); + Assert.Equal("form", formTagHelper.TagHelperInfo.TagName); + Assert.Equal(2, formTagHelper.TagHelperInfo.BindingResult.GetBoundRules(descriptor).Count()); } [Fact] @@ -437,15 +434,12 @@ public void Execute_TagHelpersFromCodeDocumentAndFeature_PrefersCodeDocument() // Assert var rewrittenTree = codeDocument.GetSyntaxTree(); + var descendantNodes = rewrittenTree.Root.DescendantNodes(); Assert.Empty(rewrittenTree.Diagnostics); - Assert.Equal(3, rewrittenTree.LegacyRoot.Children.Count); - var formTagHelper = Assert.IsType(rewrittenTree.LegacyRoot.Children[2]); - Assert.Equal("form", formTagHelper.TagName); - Assert.Collection( - formTagHelper.Children, - node => Assert.IsNotType(node), - node => Assert.IsNotType(node), - node => Assert.IsNotType(node)); + var tagHelperNodes = descendantNodes.Where(n => n is MarkupTagHelperElementSyntax tagHelper).Cast().ToArray(); + + var formTagHelper = Assert.Single(tagHelperNodes); + Assert.Equal("form", formTagHelper.TagHelperInfo.TagName); } [Fact] @@ -569,7 +563,7 @@ public void Execute_CombinesErrorsOnRewritingErrors() var expectedRewritingError = RazorDiagnosticFactory.CreateParsing_TagHelperFoundMalformedTagHelper( new SourceSpan(new SourceLocation(Environment.NewLine.Length * 2 + 30, 2, 1), contentLength: 4), "form"); - var erroredOriginalTree = RazorSyntaxTree.Create(originalTree.LegacyRoot, originalTree.Source, new[] { initialError }, originalTree.Options); + var erroredOriginalTree = RazorSyntaxTree.Create(originalTree.Root, originalTree.Source, new[] { initialError }, originalTree.Options); codeDocument.SetSyntaxTree(erroredOriginalTree); // Act @@ -688,10 +682,10 @@ public void DirectiveVisitor_ExtractsPrefixFromSyntaxTree( var sourceDocument = TestRazorSourceDocument.Create(source, filePath: "TestFile"); var parser = new RazorParser(); var syntaxTree = parser.Parse(sourceDocument); - var visitor = new DefaultRazorTagHelperBinderPhase.LegacyDirectiveVisitor(tagHelpers: new List()); + var visitor = new DefaultRazorTagHelperBinderPhase.DirectiveVisitor(tagHelpers: new List()); // Act - visitor.VisitBlock(syntaxTree.LegacyRoot); + visitor.Visit(syntaxTree.Root); // Assert Assert.Equal(expectedPrefix, visitor.TagHelperPrefix); @@ -854,10 +848,10 @@ public void DirectiveVisitor_FiltersTagHelpersByDirectives( var sourceDocument = TestRazorSourceDocument.Create(source, filePath: "TestFile"); var parser = new RazorParser(); var syntaxTree = parser.Parse(sourceDocument); - var visitor = new DefaultRazorTagHelperBinderPhase.LegacyDirectiveVisitor((TagHelperDescriptor[])tagHelpers); + var visitor = new DefaultRazorTagHelperBinderPhase.DirectiveVisitor((TagHelperDescriptor[])tagHelpers); // Act - visitor.VisitBlock(syntaxTree.LegacyRoot); + visitor.Visit(syntaxTree.Root); // Assert Assert.Equal(expected.Count(), visitor.Matches.Count()); @@ -998,10 +992,10 @@ public void ProcessDirectives_CanReturnEmptyDescriptorsBasedOnDirectiveDescripto var sourceDocument = TestRazorSourceDocument.Create(source, filePath: "TestFile"); var parser = new RazorParser(); var syntaxTree = parser.Parse(sourceDocument); - var visitor = new DefaultRazorTagHelperBinderPhase.LegacyDirectiveVisitor((TagHelperDescriptor[])tagHelpers); + var visitor = new DefaultRazorTagHelperBinderPhase.DirectiveVisitor((TagHelperDescriptor[])tagHelpers); // Act - visitor.VisitBlock(syntaxTree.LegacyRoot); + visitor.Visit(syntaxTree.Root); // Assert Assert.Empty(visitor.Matches); diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/HtmlNodeOptimizationPassTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/HtmlNodeOptimizationPassTest.cs index 6ca8b5528..be9c7c785 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/HtmlNodeOptimizationPassTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/HtmlNodeOptimizationPassTest.cs @@ -4,40 +4,20 @@ using System; using System.Linq; using Microsoft.AspNetCore.Razor.Language.Legacy; +using Microsoft.AspNetCore.Razor.Language.Syntax; using Xunit; namespace Microsoft.AspNetCore.Razor.Language { public class HtmlNodeOptimizationPassTest { - [Fact] - public void Execute_CollapsesConditionalAttributes() - { - // Assert - var content = ""; - var sourceDocument = TestRazorSourceDocument.Create(content); - var originalTree = RazorSyntaxTree.Parse(sourceDocument); - var pass = new HtmlNodeOptimizationPass(); - var codeDocument = RazorCodeDocument.Create(sourceDocument); - - // Act - var outputTree = pass.Execute(codeDocument, originalTree); - - // Assert - var tag = Assert.Single(outputTree.LegacyRoot.Children); - var tagBlock = Assert.IsType(tag); - Assert.Equal(BlockKindInternal.Tag, tagBlock.Type); - Assert.Equal(3, tagBlock.Children.Count); - Assert.IsType(tagBlock.Children[1]); - } - [Fact] public void Execute_RewritesWhitespace() { // Assert var content = Environment.NewLine + " @true"; var sourceDocument = TestRazorSourceDocument.Create(content); - var originalTree = RazorSyntaxTree.Parse(sourceDocument); + var originalTree = RazorSyntaxTree.Parse(sourceDocument, legacy: false); var pass = new HtmlNodeOptimizationPass(); var codeDocument = RazorCodeDocument.Create(sourceDocument); @@ -45,9 +25,11 @@ public void Execute_RewritesWhitespace() var outputTree = pass.Execute(codeDocument, originalTree); // Assert - Assert.Equal(4, outputTree.LegacyRoot.Children.Count); - var whitespace = Assert.IsType(outputTree.LegacyRoot.Children[1]); - Assert.True(whitespace.Content.All(char.IsWhiteSpace)); + var document = Assert.IsType(outputTree.Root); + var block = Assert.IsType(document.Document); + Assert.Equal(4, block.Children.Count); + var whitespace = Assert.IsType(block.Children[1]); + Assert.True(whitespace.GetContent().All(char.IsWhiteSpace)); } } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/IntegrationTests/TagHelpersIntegrationTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/IntegrationTests/TagHelpersIntegrationTest.cs index c8cd0e414..c5c9810e7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/IntegrationTests/TagHelpersIntegrationTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/IntegrationTests/TagHelpersIntegrationTest.cs @@ -94,6 +94,8 @@ public void NestedTagHelpers() var codeDocument = projectEngine.Process(projectItem); // Assert + var syntaxTree = codeDocument.GetSyntaxTree(); + var irTree = codeDocument.GetDocumentIntermediateNode(); AssertDocumentNodeMatchesBaseline(codeDocument.GetDocumentIntermediateNode()); } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpCodeParserTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpCodeParserTest.cs index ae66d2161..250eff4f4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpCodeParserTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpCodeParserTest.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.AspNetCore.Razor.Language.Legacy; +using Microsoft.AspNetCore.Razor.Language.Syntax; using Xunit; namespace Microsoft.AspNetCore.Razor.Language.Test.Legacy @@ -205,9 +206,8 @@ public void TagHelperPrefixDirective_DuplicatesCauseError() var document = RazorSyntaxTree.Parse(source); // Assert - var directive = document.LegacyRoot.Children.OfType().Last(); - var erroredSpan = (Span)directive.Children.Last(); - var chunkGenerator = Assert.IsType(erroredSpan.ChunkGenerator); + var erroredNode = document.Root.DescendantNodes().Last(n => n.GetSpanContext()?.ChunkGenerator is TagHelperPrefixDirectiveChunkGenerator); + var chunkGenerator = Assert.IsType(erroredNode.GetSpanContext().ChunkGenerator); var diagnostic = Assert.Single(chunkGenerator.Diagnostics); Assert.Equal(expectedDiagnostic, diagnostic); } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlAttributeTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlAttributeTest.cs index 36c58c483..02346a685 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlAttributeTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlAttributeTest.cs @@ -224,90 +224,6 @@ public void UnquotedAttributeWithCodeWithSpacesInDocument() ParseDocumentTest(""); } - [Fact(Skip = "ConditionalAttributeCollapser doesn't exist in the new tree")] - public void ConditionalAttributeCollapserDoesNotRewriteEscapedTransitions() - { - // Act - var results = ParseDocument(""); - var attributeCollapser = new LegacyConditionalAttributeCollapser(); - var rewritten = attributeCollapser.Rewrite(results.LegacyRoot); - - // Assert - BaselineTest(rewritten); - } - - [Fact(Skip = "ConditionalAttributeCollapser doesn't exist in the new tree")] - public void ConditionalAttributesDoNotCreateExtraDataForEntirelyLiteralAttribute() - { - // Arrange - const string code = - @"

        -

        Title

        -

        - As the author, you can edit - or remove this photo. -

        -
        -
        Description
        -
        - The uploader did not provide a description for this photo. -
        -
        Uploaded by
        -
        user.DisplayName
        -
        Upload date
        -
        photo.UploadDate
        -
        Gallery
        -
        gallery.Name
        -
        Tags
        -
        -
          -
        • This photo has no tags.
        • -
        - edit tags -
        -
        - -

        - Download full photo ((photo.FileSize / 1024) KB) -

        -
        -
        - -

        Nobody has commented on this photo

        -
          -
        1. -

          - comment.DisplayName commented at comment.CommentDate: -

          -

          comment.CommentText

          -
        2. -
        - -
        -
        - Post new comment -
          -
        1. - - -
        2. -
        -

        - -

        -
        -
        -
        "; - - // Act - var results = ParseDocument(code); - var attributeCollapser = new LegacyConditionalAttributeCollapser(); - var rewritten = attributeCollapser.Rewrite(results.LegacyRoot); - - // Assert - Assert.Equal(rewritten.Children.Count(), results.LegacyRoot.Children.Count()); - } - [Fact] public void ConditionalAttributesAreEnabledForDataAttributesWithExperimentalFlag() { diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorParserTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorParserTest.cs index 6e9fd0954..686b26271 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorParserTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorParserTest.cs @@ -13,7 +13,7 @@ public void CanParseStuff() { var parser = new RazorParser(); var sourceDocument = TestRazorSourceDocument.CreateResource("TestFiles/Source/BasicMarkup.cshtml", GetType()); - var output = parser.Parse(sourceDocument); + var output = parser.Parse(sourceDocument, legacy: false); Assert.NotNull(output); } @@ -24,45 +24,34 @@ public void ParseMethodCallsParseDocumentOnMarkupParserAndReturnsResults() // Arrange var factory = new SpanFactory(); var parser = new RazorParser(); + var expected = +@"RazorDocument - [0..12)::12 - [foo @bar baz] + MarkupBlock - [0..12)::12 + MarkupTextLiteral - [0..4)::4 - [foo ] - Gen - SpanEditHandler;Accepts:Any + Text;[foo]; + Whitespace;[ ]; + CSharpCodeBlock - [4..8)::4 + CSharpImplicitExpression - [4..8)::4 + CSharpTransition - [4..5)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [5..8)::3 + CSharpCodeBlock - [5..8)::3 + CSharpExpressionLiteral - [5..8)::3 - [bar] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[bar]; + MarkupTextLiteral - [8..12)::4 - [ baz] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[baz]; +"; // Act - var syntaxTree = parser.Parse(TestRazorSourceDocument.Create("foo @bar baz")); + var syntaxTree = parser.Parse(TestRazorSourceDocument.Create("foo @bar baz"), legacy: false); // Assert - ParserTestBase.EvaluateResults(parser.Parse(TestRazorSourceDocument.Create("foo @bar baz")), - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("bar") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharactersInternal.NonWhitespace)), - factory.Markup(" baz"))); + var actual = SyntaxNodeSerializer.Serialize(syntaxTree.Root); + Assert.Equal(expected, actual); } - [Fact] - public void ParseMethodUsesProvidedParserListenerIfSpecified() - { - // Arrange - var factory = new SpanFactory(); - var parser = new RazorParser(); - - // Act - var results = parser.Parse(TestRazorSourceDocument.Create("foo @bar baz")); - - // Assert - ParserTestBase.EvaluateResults(results, - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("bar") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharactersInternal.NonWhitespace)), - factory.Markup(" baz"))); - } - - [Fact] + [Fact(Skip = "Uses old tree")] public void Parse_SyntaxTreeSpansAreLinked() { // Arrange diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/RazorEngineTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/RazorEngineTest.cs index 225f73f34..aa7e0f2dc 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/RazorEngineTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/RazorEngineTest.cs @@ -177,6 +177,7 @@ private static void AssertDefaultRuntimePhases(IReadOnlyList phase => Assert.IsType(phase), phase => Assert.IsType(phase), phase => Assert.IsType(phase), + phase => Assert.IsType(phase), phase => Assert.IsType(phase), phase => Assert.IsType(phase), phase => Assert.IsType(phase), @@ -223,6 +224,7 @@ private static void AssertDefaultDesignTimePhases(IReadOnlyList Assert.IsType(phase), phase => Assert.IsType(phase), phase => Assert.IsType(phase), + phase => Assert.IsType(phase), phase => Assert.IsType(phase), phase => Assert.IsType(phase), phase => Assert.IsType(phase), diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/RazorProjectEngineTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/RazorProjectEngineTest.cs index d901c1619..6a8283fe8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/RazorProjectEngineTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/RazorProjectEngineTest.cs @@ -34,6 +34,7 @@ private static void AssertDefaultPhases(RazorProjectEngine engine) phase => Assert.IsType(phase), phase => Assert.IsType(phase), phase => Assert.IsType(phase), + phase => Assert.IsType(phase), phase => Assert.IsType(phase), phase => Assert.IsType(phase), phase => Assert.IsType(phase), diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/RazorSyntaxTreeTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/RazorSyntaxTreeTest.cs index 286bb2822..dde505ab0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/RazorSyntaxTreeTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/RazorSyntaxTreeTest.cs @@ -1,9 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -using System; -using System.Collections.Generic; -using Microsoft.AspNetCore.Razor.Language.Legacy; +using System.Linq; +using Microsoft.AspNetCore.Razor.Language.Syntax; using Xunit; namespace Microsoft.AspNetCore.Razor.Language.Test @@ -25,7 +24,7 @@ public void Parse_CanParseEmptyDocument() } [Fact] - public void Parse_Persists_FilePath() + public void Parse_NodesReturnCorrectFilePath() { // Arrange var filePath = "test.cshtml"; @@ -38,24 +37,8 @@ public void Parse_Persists_FilePath() Assert.Empty(syntaxTree.Diagnostics); Assert.NotNull(syntaxTree); - var spans = new List(); - GetChildren(syntaxTree.LegacyRoot); - Assert.All(spans, node => Assert.Equal(filePath, node.Start.FilePath)); - - void GetChildren(SyntaxTreeNode node) - { - if (node is Block block) - { - foreach (var child in block.Children) - { - GetChildren(child); - } - } - else - { - spans.Add(node); - } - } + var children = syntaxTree.Root.DescendantNodes(); + Assert.All(children, node => Assert.Equal(filePath, node.GetSourceLocation(source).FilePath)); } [Fact] @@ -69,10 +52,11 @@ public void Parse_UseDirectiveTokenizer_ParsesUntilFirstDirective() var syntaxTree = RazorSyntaxTree.Parse(source, options); // Assert + var root = syntaxTree.Root; Assert.NotNull(syntaxTree); - Assert.Equal(6, syntaxTree.LegacyRoot.Children.Count); - var block = Assert.IsType(syntaxTree.LegacyRoot.Children[4]); - Assert.Equal(BlockKindInternal.Directive, block.Type); + Assert.Equal(61, root.EndPosition); + Assert.Single(root.DescendantNodes().Where(n => n is RazorDirectiveBodySyntax body && body.Keyword.GetContent() == "tagHelperPrefix")); + Assert.Empty(root.DescendantNodes().Where(n => n is MarkupTagBlockSyntax)); Assert.Empty(syntaxTree.Diagnostics); } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ComplexTagHelpers_DesignTime.ir.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ComplexTagHelpers_DesignTime.ir.txt index 39903d2ef..8ebbf2b42 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ComplexTagHelpers_DesignTime.ir.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ComplexTagHelpers_DesignTime.ir.txt @@ -91,7 +91,7 @@ Document - DefaultTagHelperProperty - (494:16,45 [9] ComplexTagHelpers.cshtml) - type - string TestNamespace.InputTagHelper2.Type - HtmlAttributeValueStyle.DoubleQuotes CSharpExpression - (495:16,46 [8] ComplexTagHelpers.cshtml) IntermediateToken - (495:16,46 [8] ComplexTagHelpers.cshtml) - CSharp - checkbox - DefaultTagHelperProperty - (512:16,63 [4] ComplexTagHelpers.cshtml) - checked - bool TestNamespace.InputTagHelper2.Checked - HtmlAttributeValueStyle.DoubleQuotes + DefaultTagHelperProperty - (512:16,63 [4] ComplexTagHelpers.cshtml) - checked - bool TestNamespace.InputTagHelper2.Checked - HtmlAttributeValueStyle.NoQuotes IntermediateToken - (512:16,63 [4] ComplexTagHelpers.cshtml) - CSharp - true DefaultTagHelperExecute - DefaultTagHelperCreate - - TestNamespace.PTagHelper diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ComplexTagHelpers_Runtime.codegen.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ComplexTagHelpers_Runtime.codegen.cs index 8602f83cc..adc9f50cb 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ComplexTagHelpers_Runtime.codegen.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ComplexTagHelpers_Runtime.codegen.cs @@ -149,7 +149,7 @@ public async System.Threading.Tasks.Task ExecuteAsync() #line default #line hidden - __tagHelperExecutionContext.AddTagHelperAttribute("checked", __TestNamespace_InputTagHelper2.Checked, global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); + __tagHelperExecutionContext.AddTagHelperAttribute("checked", __TestNamespace_InputTagHelper2.Checked, global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.NoQuotes); await __tagHelperRunner.RunAsync(__tagHelperExecutionContext); if (!__tagHelperExecutionContext.Output.IsContentModified) { diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ComplexTagHelpers_Runtime.ir.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ComplexTagHelpers_Runtime.ir.txt index 92bc67f8c..a30c30118 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ComplexTagHelpers_Runtime.ir.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ComplexTagHelpers_Runtime.ir.txt @@ -94,7 +94,7 @@ Document - DefaultTagHelperProperty - (494:16,45 [9] ComplexTagHelpers.cshtml) - type - string TestNamespace.InputTagHelper2.Type - HtmlAttributeValueStyle.DoubleQuotes CSharpExpression - (495:16,46 [8] ComplexTagHelpers.cshtml) IntermediateToken - (495:16,46 [8] ComplexTagHelpers.cshtml) - CSharp - checkbox - DefaultTagHelperProperty - (512:16,63 [4] ComplexTagHelpers.cshtml) - checked - bool TestNamespace.InputTagHelper2.Checked - HtmlAttributeValueStyle.DoubleQuotes + DefaultTagHelperProperty - (512:16,63 [4] ComplexTagHelpers.cshtml) - checked - bool TestNamespace.InputTagHelper2.Checked - HtmlAttributeValueStyle.NoQuotes IntermediateToken - (512:16,63 [4] ComplexTagHelpers.cshtml) - CSharp - true DefaultTagHelperExecute - DefaultTagHelperCreate - - TestNamespace.PTagHelper diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CssSelectorTagHelperAttributes_Runtime.codegen.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CssSelectorTagHelperAttributes_Runtime.codegen.cs index 4eca82aaa..8b32b49f8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CssSelectorTagHelperAttributes_Runtime.codegen.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CssSelectorTagHelperAttributes_Runtime.codegen.cs @@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests.TestFiles public class TestFiles_IntegrationTests_CodeGenerationIntegrationTest_CssSelectorTagHelperAttributes_Runtime { private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_0 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("href", new global::Microsoft.AspNetCore.Html.HtmlString("~/"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); - private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_1 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("href", new global::Microsoft.AspNetCore.Html.HtmlString("~/hello"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); + private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_1 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("href", new global::Microsoft.AspNetCore.Html.HtmlString("~/hello"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.NoQuotes); private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_2 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("href", new global::Microsoft.AspNetCore.Html.HtmlString("~/?hello=world"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_3 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("href", new global::Microsoft.AspNetCore.Html.HtmlString("~/?hello=world@false"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_4 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("type", "text", global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CssSelectorTagHelperAttributes_Runtime.ir.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CssSelectorTagHelperAttributes_Runtime.ir.txt index ef34c24d7..9ee6d3d89 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CssSelectorTagHelperAttributes_Runtime.ir.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CssSelectorTagHelperAttributes_Runtime.ir.txt @@ -4,7 +4,7 @@ Document - RazorSourceChecksumAttribute - ClassDeclaration - - public - TestFiles_IntegrationTests_CodeGenerationIntegrationTest_CssSelectorTagHelperAttributes_Runtime - - PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_0 - href - ~/ - HtmlAttributeValueStyle.DoubleQuotes - PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_1 - href - ~/hello - HtmlAttributeValueStyle.DoubleQuotes + PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_1 - href - ~/hello - HtmlAttributeValueStyle.NoQuotes PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_2 - href - ~/?hello=world - HtmlAttributeValueStyle.DoubleQuotes PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_3 - href - ~/?hello=world@false - HtmlAttributeValueStyle.DoubleQuotes PreallocatedTagHelperPropertyValue - - __tagHelperAttribute_4 - type - text - HtmlAttributeValueStyle.DoubleQuotes diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DuplicateAttributeTagHelpers_DesignTime.ir.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DuplicateAttributeTagHelpers_DesignTime.ir.txt index 63264fc10..4cec1235f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DuplicateAttributeTagHelpers_DesignTime.ir.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DuplicateAttributeTagHelpers_DesignTime.ir.txt @@ -69,7 +69,7 @@ Document - IntermediateToken - (205:5,17 [6] DuplicateAttributeTagHelpers.cshtml) - Html - button DefaultTagHelperProperty - (222:5,34 [4] DuplicateAttributeTagHelpers.cshtml) - checked - bool TestNamespace.InputTagHelper2.Checked - HtmlAttributeValueStyle.DoubleQuotes IntermediateToken - (222:5,34 [4] DuplicateAttributeTagHelpers.cshtml) - CSharp - true - DefaultTagHelperHtmlAttribute - - type - HtmlAttributeValueStyle.DoubleQuotes + DefaultTagHelperHtmlAttribute - - type - HtmlAttributeValueStyle.NoQuotes HtmlContent - (233:5,45 [8] DuplicateAttributeTagHelpers.cshtml) IntermediateToken - (233:5,45 [8] DuplicateAttributeTagHelpers.cshtml) - Html - checkbox DefaultTagHelperHtmlAttribute - - checked - HtmlAttributeValueStyle.SingleQuotes @@ -78,7 +78,7 @@ Document - DefaultTagHelperHtmlAttribute - - type - HtmlAttributeValueStyle.DoubleQuotes HtmlContent - (263:5,75 [8] DuplicateAttributeTagHelpers.cshtml) IntermediateToken - (263:5,75 [8] DuplicateAttributeTagHelpers.cshtml) - Html - checkbox - DefaultTagHelperHtmlAttribute - - checked - HtmlAttributeValueStyle.DoubleQuotes + DefaultTagHelperHtmlAttribute - - checked - HtmlAttributeValueStyle.NoQuotes HtmlContent - (281:5,93 [4] DuplicateAttributeTagHelpers.cshtml) IntermediateToken - (281:5,93 [4] DuplicateAttributeTagHelpers.cshtml) - Html - true DefaultTagHelperExecute - diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DuplicateAttributeTagHelpers_Runtime.codegen.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DuplicateAttributeTagHelpers_Runtime.codegen.cs index fd4e90095..f1967cc97 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DuplicateAttributeTagHelpers_Runtime.codegen.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DuplicateAttributeTagHelpers_Runtime.codegen.cs @@ -13,10 +13,11 @@ public class TestFiles_IntegrationTests_CodeGenerationIntegrationTest_DuplicateA private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_2 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("type", new global::Microsoft.AspNetCore.Html.HtmlString("checkbox"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_3 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("checked", new global::Microsoft.AspNetCore.Html.HtmlString("false"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_4 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("type", "button", global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.SingleQuotes); - private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_5 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("checked", new global::Microsoft.AspNetCore.Html.HtmlString("true"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.SingleQuotes); - private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_6 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("checked", new global::Microsoft.AspNetCore.Html.HtmlString("true"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); - private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_7 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("AGE", new global::Microsoft.AspNetCore.Html.HtmlString("40"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); - private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_8 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("Age", new global::Microsoft.AspNetCore.Html.HtmlString("500"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); + private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_5 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("type", new global::Microsoft.AspNetCore.Html.HtmlString("checkbox"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.NoQuotes); + private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_6 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("checked", new global::Microsoft.AspNetCore.Html.HtmlString("true"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.SingleQuotes); + private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_7 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("checked", new global::Microsoft.AspNetCore.Html.HtmlString("true"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.NoQuotes); + private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_8 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("AGE", new global::Microsoft.AspNetCore.Html.HtmlString("40"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); + private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_9 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("Age", new global::Microsoft.AspNetCore.Html.HtmlString("500"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); #line hidden #pragma warning disable 0169 private string __tagHelperStringValueBuffer; @@ -108,10 +109,10 @@ public async System.Threading.Tasks.Task ExecuteAsync() #line default #line hidden __tagHelperExecutionContext.AddTagHelperAttribute("checked", __TestNamespace_InputTagHelper2.Checked, global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); - __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_2); __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_5); - __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_2); __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_6); + __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_2); + __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_7); await __tagHelperRunner.RunAsync(__tagHelperExecutionContext); if (!__tagHelperExecutionContext.Output.IsContentModified) { @@ -130,8 +131,8 @@ public async System.Threading.Tasks.Task ExecuteAsync() #line default #line hidden __tagHelperExecutionContext.AddTagHelperAttribute("age", __TestNamespace_PTagHelper.Age, global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); - __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_7); __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_8); + __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_9); await __tagHelperRunner.RunAsync(__tagHelperExecutionContext); if (!__tagHelperExecutionContext.Output.IsContentModified) { diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DuplicateAttributeTagHelpers_Runtime.ir.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DuplicateAttributeTagHelpers_Runtime.ir.txt index f2e84ead9..320ae0f00 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DuplicateAttributeTagHelpers_Runtime.ir.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DuplicateAttributeTagHelpers_Runtime.ir.txt @@ -8,10 +8,11 @@ Document - PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_2 - type - checkbox - HtmlAttributeValueStyle.DoubleQuotes PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_3 - checked - false - HtmlAttributeValueStyle.DoubleQuotes PreallocatedTagHelperPropertyValue - - __tagHelperAttribute_4 - type - button - HtmlAttributeValueStyle.SingleQuotes - PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_5 - checked - true - HtmlAttributeValueStyle.SingleQuotes - PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_6 - checked - true - HtmlAttributeValueStyle.DoubleQuotes - PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_7 - AGE - 40 - HtmlAttributeValueStyle.DoubleQuotes - PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_8 - Age - 500 - HtmlAttributeValueStyle.DoubleQuotes + PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_5 - type - checkbox - HtmlAttributeValueStyle.NoQuotes + PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_6 - checked - true - HtmlAttributeValueStyle.SingleQuotes + PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_7 - checked - true - HtmlAttributeValueStyle.NoQuotes + PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_8 - AGE - 40 - HtmlAttributeValueStyle.DoubleQuotes + PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_9 - Age - 500 - HtmlAttributeValueStyle.DoubleQuotes DefaultTagHelperRuntime - FieldDeclaration - - private - global::TestNamespace.PTagHelper - __TestNamespace_PTagHelper FieldDeclaration - - private - global::TestNamespace.InputTagHelper - __TestNamespace_InputTagHelper @@ -54,16 +55,16 @@ Document - PreallocatedTagHelperProperty - (205:5,17 [6] DuplicateAttributeTagHelpers.cshtml) - __tagHelperAttribute_4 - type - Type DefaultTagHelperProperty - (222:5,34 [4] DuplicateAttributeTagHelpers.cshtml) - checked - bool TestNamespace.InputTagHelper2.Checked - HtmlAttributeValueStyle.DoubleQuotes IntermediateToken - (222:5,34 [4] DuplicateAttributeTagHelpers.cshtml) - CSharp - true - PreallocatedTagHelperHtmlAttribute - - __tagHelperAttribute_2 PreallocatedTagHelperHtmlAttribute - - __tagHelperAttribute_5 - PreallocatedTagHelperHtmlAttribute - - __tagHelperAttribute_2 PreallocatedTagHelperHtmlAttribute - - __tagHelperAttribute_6 + PreallocatedTagHelperHtmlAttribute - - __tagHelperAttribute_2 + PreallocatedTagHelperHtmlAttribute - - __tagHelperAttribute_7 DefaultTagHelperExecute - HtmlContent - (288:5,100 [2] DuplicateAttributeTagHelpers.cshtml) IntermediateToken - (288:5,100 [2] DuplicateAttributeTagHelpers.cshtml) - Html - \n DefaultTagHelperCreate - - TestNamespace.PTagHelper DefaultTagHelperProperty - (43:2,8 [1] DuplicateAttributeTagHelpers.cshtml) - age - int TestNamespace.PTagHelper.Age - HtmlAttributeValueStyle.DoubleQuotes IntermediateToken - (43:2,8 [1] DuplicateAttributeTagHelpers.cshtml) - CSharp - 3 - PreallocatedTagHelperHtmlAttribute - - __tagHelperAttribute_7 PreallocatedTagHelperHtmlAttribute - - __tagHelperAttribute_8 + PreallocatedTagHelperHtmlAttribute - - __tagHelperAttribute_9 DefaultTagHelperExecute - diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/FunctionsBlockMinimal_Runtime.ir.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/FunctionsBlockMinimal_Runtime.ir.txt index 2d4242e8c..2d86df357 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/FunctionsBlockMinimal_Runtime.ir.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/FunctionsBlockMinimal_Runtime.ir.txt @@ -6,7 +6,7 @@ Document - MethodDeclaration - - public async - System.Threading.Tasks.Task - ExecuteAsync HtmlContent - (0:0,0 [4] FunctionsBlockMinimal.cshtml) IntermediateToken - (0:0,0 [4] FunctionsBlockMinimal.cshtml) - Html - \n\n - CSharpCode - (4:2,0 [1] FunctionsBlockMinimal.cshtml) - IntermediateToken - (4:2,0 [1] FunctionsBlockMinimal.cshtml) - CSharp - + CSharpCode - (4:2,0 [1] FunctionsBlockMinimal.cshtml) + IntermediateToken - (4:2,0 [1] FunctionsBlockMinimal.cshtml) - CSharp - CSharpCode - (16:2,12 [55] FunctionsBlockMinimal.cshtml) IntermediateToken - (16:2,12 [55] FunctionsBlockMinimal.cshtml) - CSharp - \nstring foo(string input) {\n return input + "!";\n}\n diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedTagHelpers_DesignTime.ir.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedTagHelpers_DesignTime.ir.txt index 4a4b5e257..8e4bf85e0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedTagHelpers_DesignTime.ir.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedTagHelpers_DesignTime.ir.txt @@ -32,7 +32,7 @@ Document - TagHelper - (84:3,4 [33] NestedTagHelpers.cshtml) - input - TagMode.SelfClosing DefaultTagHelperBody - DefaultTagHelperCreate - - InputTagHelper - DefaultTagHelperProperty - (97:3,17 [5] NestedTagHelpers.cshtml) - value - string InputTagHelper.FooProp - HtmlAttributeValueStyle.DoubleQuotes + DefaultTagHelperProperty - (97:3,17 [5] NestedTagHelpers.cshtml) - value - string InputTagHelper.FooProp - HtmlAttributeValueStyle.NoQuotes HtmlContent - (97:3,17 [5] NestedTagHelpers.cshtml) IntermediateToken - (97:3,17 [5] NestedTagHelpers.cshtml) - Html - Hello DefaultTagHelperHtmlAttribute - - type - HtmlAttributeValueStyle.SingleQuotes diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedTagHelpers_Runtime.codegen.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedTagHelpers_Runtime.codegen.cs index d7752b8ac..bd1475bb0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedTagHelpers_Runtime.codegen.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedTagHelpers_Runtime.codegen.cs @@ -8,7 +8,7 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests.TestFiles [global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"5e63d5fe37100e65dfcf39dd1c542eb697b624db", @"/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedTagHelpers.cshtml")] public class TestFiles_IntegrationTests_CodeGenerationIntegrationTest_NestedTagHelpers_Runtime { - private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_0 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("value", "Hello", global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); + private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_0 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("value", "Hello", global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.NoQuotes); private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_1 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("type", new global::Microsoft.AspNetCore.Html.HtmlString("text"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.SingleQuotes); private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_2 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("unbound", new global::Microsoft.AspNetCore.Html.HtmlString("foo"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); #line hidden diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedTagHelpers_Runtime.ir.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedTagHelpers_Runtime.ir.txt index f4c6001b8..795142923 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedTagHelpers_Runtime.ir.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedTagHelpers_Runtime.ir.txt @@ -3,7 +3,7 @@ Document - NamespaceDeclaration - - Microsoft.AspNetCore.Razor.Language.IntegrationTests.TestFiles RazorSourceChecksumAttribute - ClassDeclaration - - public - TestFiles_IntegrationTests_CodeGenerationIntegrationTest_NestedTagHelpers_Runtime - - - PreallocatedTagHelperPropertyValue - - __tagHelperAttribute_0 - value - Hello - HtmlAttributeValueStyle.DoubleQuotes + PreallocatedTagHelperPropertyValue - - __tagHelperAttribute_0 - value - Hello - HtmlAttributeValueStyle.NoQuotes PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_1 - type - text - HtmlAttributeValueStyle.SingleQuotes PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_2 - unbound - foo - HtmlAttributeValueStyle.DoubleQuotes DefaultTagHelperRuntime - diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/TagHelpersWithWeirdlySpacedAttributes_DesignTime.ir.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/TagHelpersWithWeirdlySpacedAttributes_DesignTime.ir.txt index 2ada0a986..5c1d24e70 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/TagHelpersWithWeirdlySpacedAttributes_DesignTime.ir.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/TagHelpersWithWeirdlySpacedAttributes_DesignTime.ir.txt @@ -24,7 +24,7 @@ Document - DefaultTagHelperHtmlAttribute - - class - HtmlAttributeValueStyle.DoubleQuotes HtmlContent - (54:5,1 [11] TagHelpersWithWeirdlySpacedAttributes.cshtml) IntermediateToken - (54:5,1 [11] TagHelpersWithWeirdlySpacedAttributes.cshtml) - Html - Hello World - DefaultTagHelperProperty - (74:5,21 [4] TagHelpersWithWeirdlySpacedAttributes.cshtml) - age - int TestNamespace.PTagHelper.Age - HtmlAttributeValueStyle.DoubleQuotes + DefaultTagHelperProperty - (74:5,21 [4] TagHelpersWithWeirdlySpacedAttributes.cshtml) - age - int TestNamespace.PTagHelper.Age - HtmlAttributeValueStyle.NoQuotes IntermediateToken - (74:5,21 [4] TagHelpersWithWeirdlySpacedAttributes.cshtml) - CSharp - 1337 DefaultTagHelperHtmlAttribute - - data-content - HtmlAttributeValueStyle.DoubleQuotes CSharpExpression - (99:6,19 [4] TagHelpersWithWeirdlySpacedAttributes.cshtml) @@ -63,10 +63,10 @@ Document - DefaultTagHelperBody - DefaultTagHelperCreate - - TestNamespace.InputTagHelper DefaultTagHelperCreate - - TestNamespace.InputTagHelper2 - DefaultTagHelperProperty - (247:14,8 [8] TagHelpersWithWeirdlySpacedAttributes.cshtml) - type - string TestNamespace.InputTagHelper.Type - HtmlAttributeValueStyle.DoubleQuotes + DefaultTagHelperProperty - (247:14,8 [8] TagHelpersWithWeirdlySpacedAttributes.cshtml) - type - string TestNamespace.InputTagHelper.Type - HtmlAttributeValueStyle.NoQuotes HtmlContent - (247:14,8 [8] TagHelpersWithWeirdlySpacedAttributes.cshtml) IntermediateToken - (247:14,8 [8] TagHelpersWithWeirdlySpacedAttributes.cshtml) - Html - password - DefaultTagHelperProperty - (247:14,8 [8] TagHelpersWithWeirdlySpacedAttributes.cshtml) - type - string TestNamespace.InputTagHelper2.Type - HtmlAttributeValueStyle.DoubleQuotes + DefaultTagHelperProperty - (247:14,8 [8] TagHelpersWithWeirdlySpacedAttributes.cshtml) - type - string TestNamespace.InputTagHelper2.Type - HtmlAttributeValueStyle.NoQuotes HtmlContent - (247:14,8 [8] TagHelpersWithWeirdlySpacedAttributes.cshtml) IntermediateToken - (247:14,8 [8] TagHelpersWithWeirdlySpacedAttributes.cshtml) - Html - password DefaultTagHelperHtmlAttribute - - data-content - HtmlAttributeValueStyle.NoQuotes diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/TagHelpersWithWeirdlySpacedAttributes_Runtime.codegen.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/TagHelpersWithWeirdlySpacedAttributes_Runtime.codegen.cs index b975f6f6e..7469e0742 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/TagHelpersWithWeirdlySpacedAttributes_Runtime.codegen.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/TagHelpersWithWeirdlySpacedAttributes_Runtime.codegen.cs @@ -12,7 +12,7 @@ public class TestFiles_IntegrationTests_CodeGenerationIntegrationTest_TagHelpers private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_1 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("type", "text", global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.SingleQuotes); private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_2 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("data-content", new global::Microsoft.AspNetCore.Html.HtmlString("hello"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_3 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("data-content", new global::Microsoft.AspNetCore.Html.HtmlString("hello2"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.SingleQuotes); - private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_4 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("type", "password", global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); + private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_4 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("type", "password", global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.NoQuotes); private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_5 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("data-content", new global::Microsoft.AspNetCore.Html.HtmlString("blah"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.NoQuotes); #line hidden #pragma warning disable 0169 @@ -51,7 +51,7 @@ public async System.Threading.Tasks.Task ExecuteAsync() #line default #line hidden - __tagHelperExecutionContext.AddTagHelperAttribute("age", __TestNamespace_PTagHelper.Age, global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes); + __tagHelperExecutionContext.AddTagHelperAttribute("age", __TestNamespace_PTagHelper.Age, global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.NoQuotes); BeginWriteTagHelperAttribute(); #line 7 "TestFiles/IntegrationTests/CodeGenerationIntegrationTest/TagHelpersWithWeirdlySpacedAttributes.cshtml" Write(true); diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/TagHelpersWithWeirdlySpacedAttributes_Runtime.ir.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/TagHelpersWithWeirdlySpacedAttributes_Runtime.ir.txt index e6920b306..4408c7176 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/TagHelpersWithWeirdlySpacedAttributes_Runtime.ir.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/TagHelpersWithWeirdlySpacedAttributes_Runtime.ir.txt @@ -7,7 +7,7 @@ Document - PreallocatedTagHelperPropertyValue - - __tagHelperAttribute_1 - type - text - HtmlAttributeValueStyle.SingleQuotes PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_2 - data-content - hello - HtmlAttributeValueStyle.DoubleQuotes PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_3 - data-content - hello2 - HtmlAttributeValueStyle.SingleQuotes - PreallocatedTagHelperPropertyValue - - __tagHelperAttribute_4 - type - password - HtmlAttributeValueStyle.DoubleQuotes + PreallocatedTagHelperPropertyValue - - __tagHelperAttribute_4 - type - password - HtmlAttributeValueStyle.NoQuotes PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_5 - data-content - blah - HtmlAttributeValueStyle.NoQuotes DefaultTagHelperRuntime - FieldDeclaration - - private - global::TestNamespace.PTagHelper - __TestNamespace_PTagHelper @@ -22,7 +22,7 @@ Document - IntermediateToken - (105:6,25 [11] TagHelpersWithWeirdlySpacedAttributes.cshtml) - Html - Body of Tag DefaultTagHelperCreate - - TestNamespace.PTagHelper PreallocatedTagHelperHtmlAttribute - - __tagHelperAttribute_0 - DefaultTagHelperProperty - (74:5,21 [4] TagHelpersWithWeirdlySpacedAttributes.cshtml) - age - int TestNamespace.PTagHelper.Age - HtmlAttributeValueStyle.DoubleQuotes + DefaultTagHelperProperty - (74:5,21 [4] TagHelpersWithWeirdlySpacedAttributes.cshtml) - age - int TestNamespace.PTagHelper.Age - HtmlAttributeValueStyle.NoQuotes IntermediateToken - (74:5,21 [4] TagHelpersWithWeirdlySpacedAttributes.cshtml) - CSharp - 1337 DefaultTagHelperHtmlAttribute - - data-content - HtmlAttributeValueStyle.DoubleQuotes CSharpExpression - (99:6,19 [4] TagHelpersWithWeirdlySpacedAttributes.cshtml) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/TagHelpersIntegrationTest/NestedTagHelpers.ir.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/TagHelpersIntegrationTest/NestedTagHelpers.ir.txt index ab0e72e99..2cc010252 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/TagHelpersIntegrationTest/NestedTagHelpers.ir.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/IntegrationTests/TagHelpersIntegrationTest/NestedTagHelpers.ir.txt @@ -3,7 +3,7 @@ Document - NamespaceDeclaration - - Razor RazorSourceChecksumAttribute - ClassDeclaration - - public - Template - - - PreallocatedTagHelperPropertyValue - - __tagHelperAttribute_0 - value - Hello - HtmlAttributeValueStyle.DoubleQuotes + PreallocatedTagHelperPropertyValue - - __tagHelperAttribute_0 - value - Hello - HtmlAttributeValueStyle.NoQuotes PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_1 - type - text - HtmlAttributeValueStyle.SingleQuotes PreallocatedTagHelperHtmlAttributeValue - - __tagHelperAttribute_2 - unbound - foo - HtmlAttributeValueStyle.DoubleQuotes DefaultTagHelperRuntime - diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CapturesNewlineAfterUsing.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CapturesNewlineAfterUsing.stree.txt index 70f8e6a5c..ce48e1b53 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CapturesNewlineAfterUsing.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/CapturesNewlineAfterUsing.stree.txt @@ -3,7 +3,7 @@ CSharpCodeBlock - [0..11)::11 - [using FooLF] CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None Transition;[]; RazorDirectiveBody - [0..11)::11 - CSharpStatementLiteral - [0..11)::11 - [using FooLF] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + CSharpStatementLiteral - [0..11)::11 - [using FooLF] - Gen - SpanEditHandler;Accepts:AnyExceptNewline Keyword;[using]; Whitespace;[ ]; Identifier;[Foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/DoesntCaptureWhitespaceAfterUsing.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/DoesntCaptureWhitespaceAfterUsing.stree.txt index a36457051..bcea8cb11 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/DoesntCaptureWhitespaceAfterUsing.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/DoesntCaptureWhitespaceAfterUsing.stree.txt @@ -3,7 +3,7 @@ CSharpCodeBlock - [0..9)::9 - [using Foo] CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None Transition;[]; RazorDirectiveBody - [0..9)::9 - CSharpStatementLiteral - [0..9)::9 - [using Foo] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + CSharpStatementLiteral - [0..9)::9 - [using Foo] - Gen - SpanEditHandler;Accepts:AnyExceptNewline Keyword;[using]; Whitespace;[ ]; Identifier;[Foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/HasErrorsIfNamespaceAliasMissingSemicolon.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/HasErrorsIfNamespaceAliasMissingSemicolon.stree.txt index f31bc0289..d118c30b2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/HasErrorsIfNamespaceAliasMissingSemicolon.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/HasErrorsIfNamespaceAliasMissingSemicolon.stree.txt @@ -3,7 +3,7 @@ CSharpCodeBlock - [0..29)::29 - [using Foo.Bar.Baz = FooBarBaz] CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None Transition;[]; RazorDirectiveBody - [0..29)::29 - CSharpStatementLiteral - [0..29)::29 - [using Foo.Bar.Baz = FooBarBaz] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + CSharpStatementLiteral - [0..29)::29 - [using Foo.Bar.Baz = FooBarBaz] - Gen - SpanEditHandler;Accepts:AnyExceptNewline Keyword;[using]; Whitespace;[ ]; Identifier;[Foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/HasErrorsIfNamespaceImportMissingSemicolon.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/HasErrorsIfNamespaceImportMissingSemicolon.stree.txt index cdc2a24b3..2218ed9ac 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/HasErrorsIfNamespaceImportMissingSemicolon.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/HasErrorsIfNamespaceImportMissingSemicolon.stree.txt @@ -3,7 +3,7 @@ CSharpCodeBlock - [0..17)::17 - [using Foo.Bar.Baz] CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None Transition;[]; RazorDirectiveBody - [0..17)::17 - CSharpStatementLiteral - [0..17)::17 - [using Foo.Bar.Baz] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + CSharpStatementLiteral - [0..17)::17 - [using Foo.Bar.Baz] - Gen - SpanEditHandler;Accepts:AnyExceptNewline Keyword;[using]; Whitespace;[ ]; Identifier;[Foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesNamespaceAliasWithSemicolonForUsingKeywordIfIsInValidFormat.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesNamespaceAliasWithSemicolonForUsingKeywordIfIsInValidFormat.stree.txt index 2c93712c9..103ef0ce0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesNamespaceAliasWithSemicolonForUsingKeywordIfIsInValidFormat.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesNamespaceAliasWithSemicolonForUsingKeywordIfIsInValidFormat.stree.txt @@ -3,7 +3,7 @@ CSharpCodeBlock - [0..28)::28 - [using FooBarBaz = FooBarBaz;] CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None Transition;[]; RazorDirectiveBody - [0..28)::28 - CSharpStatementLiteral - [0..28)::28 - [using FooBarBaz = FooBarBaz;] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + CSharpStatementLiteral - [0..28)::28 - [using FooBarBaz = FooBarBaz;] - Gen - SpanEditHandler;Accepts:AnyExceptNewline Keyword;[using]; Whitespace;[ ]; Identifier;[FooBarBaz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesNamespaceImportWithSemicolonForUsingKeywordIfIsInValidFormat.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesNamespaceImportWithSemicolonForUsingKeywordIfIsInValidFormat.stree.txt index 33a20fa93..1884354be 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesNamespaceImportWithSemicolonForUsingKeywordIfIsInValidFormat.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/ParsesNamespaceImportWithSemicolonForUsingKeywordIfIsInValidFormat.stree.txt @@ -3,7 +3,7 @@ CSharpCodeBlock - [0..18)::18 - [using Foo.Bar.Baz;] CSharpTransition - [0..0)::0 - Gen - SpanEditHandler;Accepts:None Transition;[]; RazorDirectiveBody - [0..18)::18 - CSharpStatementLiteral - [0..18)::18 - [using Foo.Bar.Baz;] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + CSharpStatementLiteral - [0..18)::18 - [using Foo.Bar.Baz;] - Gen - SpanEditHandler;Accepts:AnyExceptNewline Keyword;[using]; Whitespace;[ ]; Identifier;[Foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenCatchAndFinallyClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenCatchAndFinallyClause.stree.txt index 96db432ba..5d8c7b08a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenCatchAndFinallyClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenCatchAndFinallyClause.stree.txt @@ -33,7 +33,7 @@ CSharpCodeBlock - [0..75)::75 - [try { bar(); } catch(bar) { baz(); } @* Foo *@ RazorCommentLiteral;[ Foo ]; RazorCommentStar;[*]; RazorCommentTransition;[@]; - CSharpStatementLiteral - [46..47)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [46..47)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; RazorComment - [47..56)::9 RazorCommentTransition;[@]; @@ -41,7 +41,7 @@ CSharpCodeBlock - [0..75)::75 - [try { bar(); } catch(bar) { baz(); } @* Foo *@ RazorCommentLiteral;[ Bar ]; RazorCommentStar;[*]; RazorCommentTransition;[@]; - CSharpStatementLiteral - [56..75)::19 - [ finally { biz(); }] - Gen - SpanEditHandler;Accepts:None + CSharpStatementLiteral - [56..75)::19 - [ finally { biz(); }] - Gen - SpanEditHandler;Accepts:None Whitespace;[ ]; Keyword;[finally]; Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenDoAndWhileClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenDoAndWhileClause.stree.txt index e65626691..71b8b166e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenDoAndWhileClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenDoAndWhileClause.stree.txt @@ -23,7 +23,7 @@ CSharpCodeBlock - [0..54)::54 - [do { var foo = bar; } @* Foo *@ @* Bar *@ while RazorCommentLiteral;[ Foo ]; RazorCommentStar;[*]; RazorCommentTransition;[@]; - CSharpStatementLiteral - [31..32)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [31..32)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; RazorComment - [32..41)::9 RazorCommentTransition;[@]; @@ -31,7 +31,7 @@ CSharpCodeBlock - [0..54)::54 - [do { var foo = bar; } @* Foo *@ @* Bar *@ while RazorCommentLiteral;[ Bar ]; RazorCommentStar;[*]; RazorCommentTransition;[@]; - CSharpStatementLiteral - [41..54)::13 - [ while(true);] - Gen - SpanEditHandler;Accepts:None + CSharpStatementLiteral - [41..54)::13 - [ while(true);] - Gen - SpanEditHandler;Accepts:None Whitespace;[ ]; Keyword;[while]; LeftParenthesis;[(]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenElseIfAndElseClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenElseIfAndElseClause.stree.txt index 88170fab2..5d70ae76c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenElseIfAndElseClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenElseIfAndElseClause.stree.txt @@ -38,7 +38,7 @@ CSharpCodeBlock - [0..78)::78 - [if(foo) { bar(); } else if(bar) { baz(); } @* F RazorCommentLiteral;[ Foo ]; RazorCommentStar;[*]; RazorCommentTransition;[@]; - CSharpStatementLiteral - [52..53)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [52..53)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; RazorComment - [53..62)::9 RazorCommentTransition;[@]; @@ -46,7 +46,7 @@ CSharpCodeBlock - [0..78)::78 - [if(foo) { bar(); } else if(bar) { baz(); } @* F RazorCommentLiteral;[ Bar ]; RazorCommentStar;[*]; RazorCommentTransition;[@]; - CSharpStatementLiteral - [62..78)::16 - [ else { baz(); }] - Gen - SpanEditHandler;Accepts:None + CSharpStatementLiteral - [62..78)::16 - [ else { baz(); }] - Gen - SpanEditHandler;Accepts:None Whitespace;[ ]; Keyword;[else]; Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenIfAndElseClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenIfAndElseClause.stree.txt index db3fa8474..fa6d7871f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenIfAndElseClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenIfAndElseClause.stree.txt @@ -22,7 +22,7 @@ CSharpCodeBlock - [0..54)::54 - [if(foo) { bar(); } @* Foo *@ @* Bar *@ else { b RazorCommentLiteral;[ Foo ]; RazorCommentStar;[*]; RazorCommentTransition;[@]; - CSharpStatementLiteral - [28..29)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [28..29)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; RazorComment - [29..38)::9 RazorCommentTransition;[@]; @@ -30,7 +30,7 @@ CSharpCodeBlock - [0..54)::54 - [if(foo) { bar(); } @* Foo *@ @* Bar *@ else { b RazorCommentLiteral;[ Bar ]; RazorCommentStar;[*]; RazorCommentTransition;[@]; - CSharpStatementLiteral - [38..54)::16 - [ else { baz(); }] - Gen - SpanEditHandler;Accepts:None + CSharpStatementLiteral - [38..54)::16 - [ else { baz(); }] - Gen - SpanEditHandler;Accepts:None Whitespace;[ ]; Keyword;[else]; Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenIfAndElseIfClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenIfAndElseIfClause.stree.txt index a8f9a1c46..e16b61a5d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenIfAndElseIfClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenIfAndElseIfClause.stree.txt @@ -22,7 +22,7 @@ CSharpCodeBlock - [0..62)::62 - [if(foo) { bar(); } @* Foo *@ @* Bar *@ else if( RazorCommentLiteral;[ Foo ]; RazorCommentStar;[*]; RazorCommentTransition;[@]; - CSharpStatementLiteral - [28..29)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [28..29)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; RazorComment - [29..38)::9 RazorCommentTransition;[@]; @@ -30,7 +30,7 @@ CSharpCodeBlock - [0..62)::62 - [if(foo) { bar(); } @* Foo *@ @* Bar *@ else if( RazorCommentLiteral;[ Bar ]; RazorCommentStar;[*]; RazorCommentTransition;[@]; - CSharpStatementLiteral - [38..62)::24 - [ else if(bar) { baz(); }] - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [38..62)::24 - [ else if(bar) { baz(); }] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; Keyword;[else]; Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenTryAndCatchClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenTryAndCatchClause.stree.txt index fca5a0a5b..d9cccdcf4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenTryAndCatchClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenTryAndCatchClause.stree.txt @@ -18,7 +18,7 @@ CSharpCodeBlock - [0..55)::55 - [try { bar(); }@* Foo *@ @* Bar *@ catch(bar) { RazorCommentLiteral;[ Foo ]; RazorCommentStar;[*]; RazorCommentTransition;[@]; - CSharpStatementLiteral - [23..24)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [23..24)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; RazorComment - [24..33)::9 RazorCommentTransition;[@]; @@ -26,7 +26,7 @@ CSharpCodeBlock - [0..55)::55 - [try { bar(); }@* Foo *@ @* Bar *@ catch(bar) { RazorCommentLiteral;[ Bar ]; RazorCommentStar;[*]; RazorCommentTransition;[@]; - CSharpStatementLiteral - [33..55)::22 - [ catch(bar) { baz(); }] - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [33..55)::22 - [ catch(bar) { baz(); }] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; Keyword;[catch]; LeftParenthesis;[(]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenTryAndFinallyClause.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenTryAndFinallyClause.stree.txt index 9b31e15fa..c491cbcce 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenTryAndFinallyClause.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpBlockTest/SupportsRazorCommentBetweenTryAndFinallyClause.stree.txt @@ -19,7 +19,7 @@ CSharpCodeBlock - [0..53)::53 - [try { bar(); } @* Foo *@ @* Bar *@ finally { bi RazorCommentLiteral;[ Foo ]; RazorCommentStar;[*]; RazorCommentTransition;[@]; - CSharpStatementLiteral - [24..25)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + CSharpStatementLiteral - [24..25)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; RazorComment - [25..34)::9 RazorCommentTransition;[@]; @@ -27,7 +27,7 @@ CSharpCodeBlock - [0..53)::53 - [try { bar(); } @* Foo *@ @* Bar *@ finally { bi RazorCommentLiteral;[ Bar ]; RazorCommentStar;[*]; RazorCommentTransition;[@]; - CSharpStatementLiteral - [34..53)::19 - [ finally { biz(); }] - Gen - SpanEditHandler;Accepts:None + CSharpStatementLiteral - [34..53)::19 - [ finally { biz(); }] - Gen - SpanEditHandler;Accepts:None Whitespace;[ ]; Keyword;[finally]; Whitespace;[ ]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_Complete_Spaced.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_Complete_Spaced.stree.txt index dd8c90cb0..d3cb56db9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_Complete_Spaced.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_Complete_Spaced.stree.txt @@ -3,7 +3,7 @@ CSharpCodeBlock - [0..40)::40 - [@using static global::System.Console] CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; RazorDirectiveBody - [1..40)::39 - CSharpStatementLiteral - [1..40)::39 - [using static global::System.Console] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + CSharpStatementLiteral - [1..40)::39 - [using static global::System.Console] - Gen - SpanEditHandler;Accepts:AnyExceptNewline Keyword;[using]; Whitespace;[ ]; Keyword;[static]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_GlobalPrefix.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_GlobalPrefix.stree.txt index 2fd4ab9ee..38c128b52 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_GlobalPrefix.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_GlobalPrefix.stree.txt @@ -3,7 +3,7 @@ CSharpCodeBlock - [0..36)::36 - [@using static global::System.Console] CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; RazorDirectiveBody - [1..36)::35 - CSharpStatementLiteral - [1..36)::35 - [using static global::System.Console] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + CSharpStatementLiteral - [1..36)::35 - [using static global::System.Console] - Gen - SpanEditHandler;Accepts:AnyExceptNewline Keyword;[using]; Whitespace;[ ]; Keyword;[static]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_MultipleIdentifiers.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_MultipleIdentifiers.stree.txt index a93c538cd..9c2437595 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_MultipleIdentifiers.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_MultipleIdentifiers.stree.txt @@ -3,7 +3,7 @@ CSharpCodeBlock - [0..28)::28 - [@using static System.Console] CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; RazorDirectiveBody - [1..28)::27 - CSharpStatementLiteral - [1..28)::27 - [using static System.Console] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + CSharpStatementLiteral - [1..28)::27 - [using static System.Console] - Gen - SpanEditHandler;Accepts:AnyExceptNewline Keyword;[using]; Whitespace;[ ]; Keyword;[static]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_NoUsing.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_NoUsing.stree.txt index fcca4e568..1cd305cda 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_NoUsing.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_NoUsing.stree.txt @@ -3,7 +3,7 @@ CSharpCodeBlock - [0..13)::13 - [@using static] CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; RazorDirectiveBody - [1..13)::12 - CSharpStatementLiteral - [1..13)::12 - [using static] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + CSharpStatementLiteral - [1..13)::12 - [using static] - Gen - SpanEditHandler;Accepts:AnyExceptNewline Keyword;[using]; Whitespace;[ ]; Keyword;[static]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_SingleIdentifier.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_SingleIdentifier.stree.txt index 2d2bedf17..d3679a827 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_SingleIdentifier.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_SingleIdentifier.stree.txt @@ -3,7 +3,7 @@ CSharpCodeBlock - [0..20)::20 - [@using static System] CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; RazorDirectiveBody - [1..20)::19 - CSharpStatementLiteral - [1..20)::19 - [using static System] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + CSharpStatementLiteral - [1..20)::19 - [using static System] - Gen - SpanEditHandler;Accepts:AnyExceptNewline Keyword;[using]; Whitespace;[ ]; Keyword;[static]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingNamespaceImport.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingNamespaceImport.stree.txt index db43a5f0e..46b7c7789 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingNamespaceImport.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingNamespaceImport.stree.txt @@ -3,7 +3,7 @@ CSharpCodeBlock - [0..41)::41 - [@using System.Text.Encoding.ASCIIEncoding] CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; RazorDirectiveBody - [1..41)::40 - CSharpStatementLiteral - [1..41)::40 - [using System.Text.Encoding.ASCIIEncoding] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + CSharpStatementLiteral - [1..41)::40 - [using System.Text.Encoding.ASCIIEncoding] - Gen - SpanEditHandler;Accepts:AnyExceptNewline Keyword;[using]; Whitespace;[ ]; Identifier;[System]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingTypeAlias.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingTypeAlias.stree.txt index c85feaa36..09a892605 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingTypeAlias.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingTypeAlias.stree.txt @@ -3,7 +3,7 @@ CSharpCodeBlock - [0..79)::79 - [@using StringDictionary = System.Collections.Ge CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None Transition;[@]; RazorDirectiveBody - [1..79)::78 - CSharpStatementLiteral - [1..79)::78 - [using StringDictionary = System.Collections.Generic.Dictionary] - Gen;> - SpanEditHandler;Accepts:AnyExceptNewline + CSharpStatementLiteral - [1..79)::78 - [using StringDictionary = System.Collections.Generic.Dictionary] - Gen;> - SpanEditHandler;Accepts:AnyExceptNewline Keyword;[using]; Whitespace;[ ]; Identifier;[StringDictionary]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes5.stree.txt index c8a8a2866..030c5524e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes5.stree.txt @@ -19,9 +19,8 @@ RazorDocument - [0..46)::46 - [] MarkupTextLiteral - [27..28)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [28..33)::5 - MarkupLiteralAttributeValue - [28..33)::5 - [value] - MarkupTextLiteral - [28..33)::5 - [value] - Gen - SpanEditHandler;Accepts:Any - Text;[value]; + MarkupTextLiteral - [28..33)::5 - [value] - Gen - SpanEditHandler;Accepts:Any + Text;[value]; MarkupTextLiteral - [33..34)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTextLiteral - [34..35)::1 - [>] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes7.stree.txt index c3dc3b8f3..26f3690b1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CanHandleSymbolBoundAttributes7.stree.txt @@ -19,9 +19,8 @@ RazorDocument - [0..32)::32 - [
        ] MarkupTextLiteral - [18..19)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [19..24)::5 - MarkupLiteralAttributeValue - [19..24)::5 - [value] - MarkupTextLiteral - [19..24)::5 - [value] - Gen - SpanEditHandler;Accepts:Any - Text;[value]; + MarkupTextLiteral - [19..24)::5 - [value] - Gen - SpanEditHandler;Accepts:Any + Text;[value]; MarkupTextLiteral - [24..25)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTextLiteral - [25..26)::1 - [>] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes1.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes1.cspans.txt index e69de29bb..aa429ff6c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes1.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes1.cspans.txt @@ -0,0 +1 @@ +Code span at (13:0,13 [0] ) (Accepts:AnyExceptNewline) - Parent: Tag block at (0:0,0 [17] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes1.stree.txt index a262c5ff0..a68ddb1c1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes1.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..17)::17 - [] MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [13..13)::0 + CSharpExpressionLiteral - [13..13)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTextLiteral - [14..17)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes10.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes10.cspans.txt index e69de29bb..aa429ff6c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes10.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes10.cspans.txt @@ -0,0 +1 @@ +Code span at (13:0,13 [0] ) (Accepts:AnyExceptNewline) - Parent: Tag block at (0:0,0 [17] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes10.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes10.stree.txt index ae6f222d4..5b506a347 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes10.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes10.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..17)::17 - [] MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [13..13)::0 + CSharpExpressionLiteral - [13..13)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTextLiteral - [14..17)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes11.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes11.cspans.txt index e69de29bb..92552dfb4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes11.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes11.cspans.txt @@ -0,0 +1,2 @@ +Code span at (13:0,13 [0] ) (Accepts:AnyExceptNewline) - Parent: Tag block at (0:0,0 [29] ) +Code span at (25:0,25 [0] ) (Accepts:AnyExceptNewline) - Parent: Tag block at (0:0,0 [29] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes11.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes11.stree.txt index c86964422..01b040e26 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes11.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes11.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..29)::29 - [] MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [13..13)::0 + CSharpExpressionLiteral - [13..13)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttribute - [14..26)::12 - bOUnd - DoubleQuotes - Bound - [ bOUnd=""] @@ -25,6 +26,7 @@ RazorDocument - [0..29)::29 - [] MarkupTextLiteral - [24..25)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [25..25)::0 + CSharpExpressionLiteral - [25..25)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 MarkupTextLiteral - [25..26)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTextLiteral - [26..29)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes12.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes12.stree.txt index 42711fb36..bfe9ad835 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes12.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes12.stree.txt @@ -22,9 +22,8 @@ RazorDocument - [0..32)::32 - [] MarkupTextLiteral - [18..19)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [19..23)::4 - MarkupLiteralAttributeValue - [19..23)::4 - [john] - MarkupTextLiteral - [19..23)::4 - [john] - Gen - SpanEditHandler;Accepts:Any - Text;[john]; + MarkupTextLiteral - [19..23)::4 - [john] - Gen - SpanEditHandler;Accepts:Any + Text;[john]; MarkupTextLiteral - [23..24)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTextLiteral - [24..25)::1 - [>] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes13.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes13.stree.txt index 0973fb942..e24647973 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes13.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes13.stree.txt @@ -14,16 +14,19 @@ RazorDocument - [0..28)::28 - [] MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [13..24)::11 - MarkupDynamicAttributeValue - [13..22)::9 - [ @true] - GenericBlock - [13..22)::9 - CSharpExpressionLiteral - [13..17)::4 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Whitespace;[ ]; - CSharpCodeBlock - [17..22)::5 - GenericBlock - [17..22)::5 - CSharpExpressionLiteral - [17..18)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Transition;[@]; - CSharpExpressionLiteral - [18..22)::4 - [true] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Keyword;[true]; + MarkupBlock - [13..22)::9 + CSharpExpressionLiteral - [13..17)::4 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + CSharpCodeBlock - [17..22)::5 + CSharpImplicitExpression - [17..22)::5 + CSharpTransition - [17..17)::0 + Transition;[]; + CSharpImplicitExpressionBody - [17..22)::5 + CSharpCodeBlock - [17..22)::5 + CSharpExpressionLiteral - [17..18)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Transition;[@]; + CSharpExpressionLiteral - [18..22)::4 - [true] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Keyword;[true]; CSharpExpressionLiteral - [22..24)::2 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 Whitespace;[ ]; MarkupTextLiteral - [24..25)::1 - ['] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes14.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes14.stree.txt index fd2dd7e90..eba1d7ab6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes14.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes14.stree.txt @@ -14,20 +14,23 @@ RazorDocument - [0..30)::30 - [] MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [13..26)::13 - MarkupDynamicAttributeValue - [13..24)::11 - [ @(true)] - GenericBlock - [13..24)::11 - CSharpExpressionLiteral - [13..17)::4 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Whitespace;[ ]; - CSharpCodeBlock - [17..24)::7 - GenericBlock - [17..24)::7 - CSharpExpressionLiteral - [17..18)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Transition;[@]; - CSharpExpressionLiteral - [18..19)::1 - [(] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - LeftParenthesis;[(]; - CSharpExpressionLiteral - [19..23)::4 - [true] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Keyword;[true]; - CSharpExpressionLiteral - [23..24)::1 - [)] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - RightParenthesis;[)]; + MarkupBlock - [13..24)::11 + CSharpExpressionLiteral - [13..17)::4 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + CSharpCodeBlock - [17..24)::7 + CSharpImplicitExpression - [17..24)::7 + CSharpTransition - [17..17)::0 + Transition;[]; + CSharpImplicitExpressionBody - [17..24)::7 + CSharpCodeBlock - [17..24)::7 + CSharpExpressionLiteral - [17..18)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Transition;[@]; + CSharpExpressionLiteral - [18..19)::1 - [(] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + LeftParenthesis;[(]; + CSharpExpressionLiteral - [19..23)::4 - [true] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Keyword;[true]; + CSharpExpressionLiteral - [23..24)::1 - [)] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + RightParenthesis;[)]; CSharpExpressionLiteral - [24..26)::2 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 Whitespace;[ ]; MarkupTextLiteral - [26..27)::1 - ['] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes4.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes4.cspans.txt index e69de29bb..dddc839de 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes4.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes4.cspans.txt @@ -0,0 +1,2 @@ +Code span at (13:0,13 [0] ) (Accepts:AnyExceptNewline) - Parent: Tag block at (0:0,0 [27] ) +Code span at (23:0,23 [0] ) (Accepts:AnyExceptNewline) - Parent: Tag block at (0:0,0 [27] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes4.stree.txt index 11ccd79a9..847c8f4e8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes4.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..27)::27 - [] MarkupTextLiteral - [12..13)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [13..13)::0 + CSharpExpressionLiteral - [13..13)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttribute - [14..24)::10 - bound - DoubleQuotes - Bound - [ bound=""] @@ -25,6 +26,7 @@ RazorDocument - [0..27)::27 - [] MarkupTextLiteral - [22..23)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [23..23)::0 + CSharpExpressionLiteral - [23..23)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 MarkupTextLiteral - [23..24)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTextLiteral - [24..27)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes7.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes7.cspans.txt index 247b797ce..ebd543828 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes7.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes7.cspans.txt @@ -1 +1,2 @@ Code span at (12:0,12 [0] ) (Accepts:AnyExceptNewline) - Parent: Tag block at (0:0,0 [23] ) +Markup span at (19:0,19 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [23] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes7.stree.txt index 3c34b2f07..2a5a6dce2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes7.stree.txt @@ -22,6 +22,7 @@ RazorDocument - [0..23)::23 - [] MarkupTextLiteral - [18..19)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [19..19)::0 + MarkupTextLiteral - [19..19)::0 - [] MarkupTextLiteral - [19..20)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTextLiteral - [20..23)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes8.stree.txt index 85dd4faec..e42c4f27c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes8.stree.txt @@ -22,9 +22,8 @@ RazorDocument - [0..25)::25 - [] MarkupTextLiteral - [18..19)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [19..21)::2 - MarkupLiteralAttributeValue - [19..21)::2 - [ ] - MarkupTextLiteral - [19..21)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any - Whitespace;[ ]; + MarkupTextLiteral - [19..21)::2 - [ ] + Whitespace;[ ]; MarkupTextLiteral - [21..22)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTextLiteral - [22..25)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes9.stree.txt index 7dd90b6e4..005e8ca3f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes9.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesErrorForEmptyTagHelperBoundAttributes9.stree.txt @@ -27,9 +27,8 @@ RazorDocument - [0..46)::46 - [] MarkupTextLiteral - [24..25)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [25..29)::4 - MarkupLiteralAttributeValue - [25..29)::4 - [john] - MarkupTextLiteral - [25..29)::4 - [john] - Gen - SpanEditHandler;Accepts:Any - Text;[john]; + MarkupTextLiteral - [25..29)::4 - [john] - Gen - SpanEditHandler;Accepts:Any + Text;[john]; MarkupTextLiteral - [29..30)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttribute - [30..37)::7 - bound - DoubleQuotes - Bound - [ bound=] diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes10.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes10.stree.txt index 17aedf3d5..08d34db89 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes10.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes10.stree.txt @@ -45,9 +45,8 @@ RazorDocument - [0..73)::73 - [ - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTextLiteral - [70..73)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes11.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes11.stree.txt index 390b7b9d7..704d84f6d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes11.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes11.stree.txt @@ -15,26 +15,29 @@ RazorDocument - [0..77)::77 - [ - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + CSharpExpressionLiteral - [13..14)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 Transition;[@]; - CSharpExpressionLiteral - [14..15)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + CSharpEphemeralTextLiteral - [14..15)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 Transition;[@]; - MarkupDynamicAttributeValue - [15..22)::7 - [@(11+1)] - GenericBlock - [15..22)::7 - CSharpExpressionLiteral - [15..15)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Marker;[]; - CSharpCodeBlock - [15..22)::7 - GenericBlock - [15..22)::7 - CSharpExpressionLiteral - [15..16)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Transition;[@]; - CSharpExpressionLiteral - [16..17)::1 - [(] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - LeftParenthesis;[(]; - CSharpExpressionLiteral - [17..21)::4 - [11+1] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - IntegerLiteral;[11]; - Plus;[+]; - IntegerLiteral;[1]; - CSharpExpressionLiteral - [21..22)::1 - [)] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - RightParenthesis;[)]; + MarkupBlock - [15..22)::7 + CSharpExpressionLiteral - [15..15)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Marker;[]; + CSharpCodeBlock - [15..22)::7 + CSharpImplicitExpression - [15..22)::7 + CSharpTransition - [15..15)::0 + Transition;[]; + CSharpImplicitExpressionBody - [15..22)::7 + CSharpCodeBlock - [15..22)::7 + CSharpExpressionLiteral - [15..16)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Transition;[@]; + CSharpExpressionLiteral - [16..17)::1 - [(] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + LeftParenthesis;[(]; + CSharpExpressionLiteral - [17..21)::4 - [11+1] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + IntegerLiteral;[11]; + Plus;[+]; + IntegerLiteral;[1]; + CSharpExpressionLiteral - [21..22)::1 - [)] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + RightParenthesis;[)]; MarkupTextLiteral - [22..23)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttribute - [23..47)::24 - birthday - DoubleQuotes - Bound - [ birthday="DateTime.Now"] @@ -59,23 +62,21 @@ RazorDocument - [0..77)::77 - [ - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [54..73)::19 - MarkupLiteralAttributeValue - [54..59)::5 - [Time:] - MarkupTextLiteral - [54..59)::5 - [Time:] - Gen - SpanEditHandler;Accepts:Any - Text;[Time:]; - MarkupDynamicAttributeValue - [59..73)::14 - [ @DateTime.Now] + MarkupTextLiteral - [54..59)::5 - [Time:] - Gen - SpanEditHandler;Accepts:Any + Text;[Time:]; + MarkupBlock - [59..73)::14 MarkupTextLiteral - [59..60)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - GenericBlock - [60..73)::13 - CSharpCodeBlock - [60..73)::13 - CSharpImplicitExpression - [60..73)::13 - CSharpTransition - [60..61)::1 - Gen - SpanEditHandler;Accepts:None - Transition;[@]; - CSharpImplicitExpressionBody - [61..73)::12 - CSharpCodeBlock - [61..73)::12 - CSharpExpressionLiteral - [61..73)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - Identifier;[DateTime]; - Dot;[.]; - Identifier;[Now]; + CSharpCodeBlock - [60..73)::13 + CSharpImplicitExpression - [60..73)::13 + CSharpTransition - [60..61)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [61..73)::12 + CSharpCodeBlock - [61..73)::12 + CSharpExpressionLiteral - [61..73)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; MarkupTextLiteral - [73..74)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTextLiteral - [74..77)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes3.stree.txt index 1ab37519e..e113316a4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes3.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes3.stree.txt @@ -14,20 +14,19 @@ RazorDocument - [0..35)::35 - [] MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [13..31)::18 - MarkupDynamicAttributeValue - [13..31)::18 - [@DateTime.Now.Year] - GenericBlock - [13..31)::18 - CSharpCodeBlock - [13..31)::18 - CSharpImplicitExpression - [13..31)::18 - CSharpTransition - [13..14)::1 - Gen - SpanEditHandler;Accepts:None - Transition;[@]; - CSharpImplicitExpressionBody - [14..31)::17 - CSharpCodeBlock - [14..31)::17 - CSharpExpressionLiteral - [14..31)::17 - [DateTime.Now.Year] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Identifier;[DateTime]; - Dot;[.]; - Identifier;[Now]; - Dot;[.]; - Identifier;[Year]; + MarkupBlock - [13..31)::18 + CSharpCodeBlock - [13..31)::18 + CSharpImplicitExpression - [13..31)::18 + CSharpTransition - [13..14)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [14..31)::17 + CSharpCodeBlock - [14..31)::17 + CSharpExpressionLiteral - [14..31)::17 - [DateTime.Now.Year] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + Dot;[.]; + Identifier;[Year]; MarkupTextLiteral - [31..32)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTextLiteral - [32..35)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes4.stree.txt index 0125f4d79..b961b93a6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes4.stree.txt @@ -14,20 +14,23 @@ RazorDocument - [0..36)::36 - [] MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [13..32)::19 - MarkupDynamicAttributeValue - [13..32)::19 - [ @DateTime.Now.Year] - GenericBlock - [13..32)::19 - CSharpExpressionLiteral - [13..14)::1 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Whitespace;[ ]; - CSharpCodeBlock - [14..32)::18 - GenericBlock - [14..32)::18 - CSharpExpressionLiteral - [14..15)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Transition;[@]; - CSharpExpressionLiteral - [15..32)::17 - [DateTime.Now.Year] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Identifier;[DateTime]; - Dot;[.]; - Identifier;[Now]; - Dot;[.]; - Identifier;[Year]; + MarkupBlock - [13..32)::19 + CSharpExpressionLiteral - [13..14)::1 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + CSharpCodeBlock - [14..32)::18 + CSharpImplicitExpression - [14..32)::18 + CSharpTransition - [14..14)::0 + Transition;[]; + CSharpImplicitExpressionBody - [14..32)::18 + CSharpCodeBlock - [14..32)::18 + CSharpExpressionLiteral - [14..15)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Transition;[@]; + CSharpExpressionLiteral - [15..32)::17 - [DateTime.Now.Year] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; + Dot;[.]; + Identifier;[Year]; MarkupTextLiteral - [32..33)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTextLiteral - [33..36)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes5.stree.txt index a9b4291e7..b117ddf3b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes5.stree.txt @@ -14,9 +14,8 @@ RazorDocument - [0..22)::22 - [] MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [14..18)::4 - MarkupLiteralAttributeValue - [14..18)::4 - [John] - MarkupTextLiteral - [14..18)::4 - [John] - Gen - SpanEditHandler;Accepts:Any - Text;[John]; + MarkupTextLiteral - [14..18)::4 - [John] - Gen - SpanEditHandler;Accepts:Any + Text;[John]; MarkupTextLiteral - [18..19)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTextLiteral - [19..22)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes6.stree.txt index 5004812a0..de5aec155 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes6.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes6.stree.txt @@ -14,23 +14,21 @@ RazorDocument - [0..37)::37 - [] MarkupTextLiteral - [13..14)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [14..33)::19 - MarkupLiteralAttributeValue - [14..19)::5 - [Time:] - MarkupTextLiteral - [14..19)::5 - [Time:] - Gen - SpanEditHandler;Accepts:Any - Text;[Time:]; - MarkupDynamicAttributeValue - [19..33)::14 - [ @DateTime.Now] + MarkupTextLiteral - [14..19)::5 - [Time:] - Gen - SpanEditHandler;Accepts:Any + Text;[Time:]; + MarkupBlock - [19..33)::14 MarkupTextLiteral - [19..20)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - GenericBlock - [20..33)::13 - CSharpCodeBlock - [20..33)::13 - CSharpImplicitExpression - [20..33)::13 - CSharpTransition - [20..21)::1 - Gen - SpanEditHandler;Accepts:None - Transition;[@]; - CSharpImplicitExpressionBody - [21..33)::12 - CSharpCodeBlock - [21..33)::12 - CSharpExpressionLiteral - [21..33)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - Identifier;[DateTime]; - Dot;[.]; - Identifier;[Now]; + CSharpCodeBlock - [20..33)::13 + CSharpImplicitExpression - [20..33)::13 + CSharpTransition - [20..21)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [21..33)::12 + CSharpCodeBlock - [21..33)::12 + CSharpExpressionLiteral - [21..33)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; MarkupTextLiteral - [33..34)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTextLiteral - [34..37)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes7.stree.txt index 6cd71b771..da33e6029 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes7.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes7.stree.txt @@ -19,16 +19,19 @@ RazorDocument - [0..88)::88 - [ - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 Text;[(bool)]; - MarkupDynamicAttributeValue - [45..56)::11 - [@Bag["val"]] - GenericBlock - [45..56)::11 - CSharpCodeBlock - [45..56)::11 - GenericBlock - [45..56)::11 - CSharpExpressionLiteral - [45..46)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Transition;[@]; - CSharpExpressionLiteral - [46..56)::10 - [Bag["val"]] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Identifier;[Bag]; - LeftBracket;[[]; - StringLiteral;["val"]; - RightBracket;[]]; + MarkupBlock - [45..56)::11 + CSharpCodeBlock - [45..56)::11 + CSharpImplicitExpression - [45..56)::11 + CSharpTransition - [45..45)::0 + Transition;[]; + CSharpImplicitExpressionBody - [45..56)::11 + CSharpCodeBlock - [45..56)::11 + CSharpExpressionLiteral - [45..46)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Transition;[@]; + CSharpExpressionLiteral - [46..56)::10 - [Bag["val"]] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Identifier;[Bag]; + LeftBracket;[[]; + StringLiteral;["val"]; + RightBracket;[]]; CSharpExpressionLiteral - [56..58)::2 - [ ?] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 Whitespace;[ ]; QuestionMark;[?]; MarkupBlock - [58..61)::3 - CSharpExpressionLiteral - [58..60)::2 - [ @] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + CSharpExpressionLiteral - [58..60)::2 - [ @] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 Whitespace;[ ]; Transition;[@]; - CSharpExpressionLiteral - [60..61)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + CSharpEphemeralTextLiteral - [60..61)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 Transition;[@]; CSharpExpressionLiteral - [61..69)::8 - [DateTime] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 Text;[DateTime]; CSharpExpressionLiteral - [69..71)::2 - [ :] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 Whitespace;[ ]; Text;[:]; - MarkupDynamicAttributeValue - [71..85)::14 - [ @DateTime.Now] - GenericBlock - [71..85)::14 - CSharpExpressionLiteral - [71..72)::1 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Whitespace;[ ]; - CSharpCodeBlock - [72..85)::13 - GenericBlock - [72..85)::13 - CSharpExpressionLiteral - [72..73)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Transition;[@]; - CSharpExpressionLiteral - [73..85)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Identifier;[DateTime]; - Dot;[.]; - Identifier;[Now]; + MarkupBlock - [71..85)::14 + CSharpExpressionLiteral - [71..72)::1 - [ ] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Whitespace;[ ]; + CSharpCodeBlock - [72..85)::13 + CSharpImplicitExpression - [72..85)::13 + CSharpTransition - [72..72)::0 + Transition;[]; + CSharpImplicitExpressionBody - [72..85)::13 + CSharpCodeBlock - [72..85)::13 + CSharpExpressionLiteral - [72..73)::1 - [@] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Transition;[@]; + CSharpExpressionLiteral - [73..85)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; MarkupTextLiteral - [85..86)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTextLiteral - [86..88)::2 - [/>] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes8.stree.txt index dd038b63f..62779fb1d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes8.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes8.stree.txt @@ -40,23 +40,21 @@ RazorDocument - [0..70)::70 - [ - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [47..66)::19 - MarkupLiteralAttributeValue - [47..52)::5 - [Time:] - MarkupTextLiteral - [47..52)::5 - [Time:] - Gen - SpanEditHandler;Accepts:Any - Text;[Time:]; - MarkupDynamicAttributeValue - [52..66)::14 - [ @DateTime.Now] + MarkupTextLiteral - [47..52)::5 - [Time:] - Gen - SpanEditHandler;Accepts:Any + Text;[Time:]; + MarkupBlock - [52..66)::14 MarkupTextLiteral - [52..53)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - GenericBlock - [53..66)::13 - CSharpCodeBlock - [53..66)::13 - CSharpImplicitExpression - [53..66)::13 - CSharpTransition - [53..54)::1 - Gen - SpanEditHandler;Accepts:None - Transition;[@]; - CSharpImplicitExpressionBody - [54..66)::12 - CSharpCodeBlock - [54..66)::12 - CSharpExpressionLiteral - [54..66)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - Identifier;[DateTime]; - Dot;[.]; - Identifier;[Now]; + CSharpCodeBlock - [53..66)::13 + CSharpImplicitExpression - [53..66)::13 + CSharpTransition - [53..54)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [54..66)::12 + CSharpCodeBlock - [54..66)::12 + CSharpExpressionLiteral - [54..66)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; MarkupTextLiteral - [66..67)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTextLiteral - [67..70)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes9.stree.txt index 45c1180fe..1c2449a0b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes9.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/CreatesMarkupCodeSpansForNonStringTagHelperAttributes9.stree.txt @@ -40,29 +40,27 @@ RazorDocument - [0..73)::73 - [ - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [47..69)::22 - MarkupLiteralAttributeValue - [47..52)::5 - [Time:] - MarkupTextLiteral - [47..52)::5 - [Time:] - Gen - SpanEditHandler;Accepts:Any - Text;[Time:]; + MarkupTextLiteral - [47..52)::5 - [Time:] - Gen - SpanEditHandler;Accepts:Any + Text;[Time:]; MarkupBlock - [52..55)::3 MarkupTextLiteral - [52..54)::2 - [ @] - Gen - SpanEditHandler;Accepts:None Whitespace;[ ]; Transition;[@]; MarkupEphemeralTextLiteral - [54..55)::1 - [@] - Gen - SpanEditHandler;Accepts:None Transition;[@]; - MarkupDynamicAttributeValue - [55..69)::14 - [ @DateTime.Now] + MarkupBlock - [55..69)::14 MarkupTextLiteral - [55..56)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any Whitespace;[ ]; - GenericBlock - [56..69)::13 - CSharpCodeBlock - [56..69)::13 - CSharpImplicitExpression - [56..69)::13 - CSharpTransition - [56..57)::1 - Gen - SpanEditHandler;Accepts:None - Transition;[@]; - CSharpImplicitExpressionBody - [57..69)::12 - CSharpCodeBlock - [57..69)::12 - CSharpExpressionLiteral - [57..69)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - Identifier;[DateTime]; - Dot;[.]; - Identifier;[Now]; + CSharpCodeBlock - [56..69)::13 + CSharpImplicitExpression - [56..69)::13 + CSharpTransition - [56..57)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [57..69)::12 + CSharpCodeBlock - [57..69)::12 + CSharpExpressionLiteral - [57..69)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; MarkupTextLiteral - [69..70)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTextLiteral - [70..73)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers1.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers1.cspans.txt index e69de29bb..92e6c778c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers1.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers1.cspans.txt @@ -0,0 +1 @@ +Markup span at (10:0,10 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [16] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers1.stree.txt index 5f68e1e2f..a1f4e346c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers1.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers1.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..16)::16 - [

        ] MarkupTextLiteral - [9..10)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [10..10)::0 + MarkupTextLiteral - [10..10)::0 - [] MarkupTextLiteral - [10..11)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTextLiteral - [11..12)::1 - [>] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers2.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers2.cspans.txt index e69de29bb..92e6c778c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers2.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers2.cspans.txt @@ -0,0 +1 @@ +Markup span at (10:0,10 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [16] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers2.stree.txt index 1d7032554..1fb1c603d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers2.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers2.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..16)::16 - [

        ] MarkupTextLiteral - [9..10)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [10..10)::0 + MarkupTextLiteral - [10..10)::0 - [] MarkupTextLiteral - [10..11)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTextLiteral - [11..12)::1 - [>] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers4.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers4.cspans.txt index 9d88d89f4..eeee563c5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers4.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers4.cspans.txt @@ -1 +1,3 @@ +Markup span at (11:0,11 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [33] ) Markup span at (20:0,20 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [33] ) +Markup span at (29:0,29 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [33] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers4.stree.txt index b3329e6fa..6916bd352 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers4.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers4.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..33)::33 - [

        ] MarkupTextLiteral - [10..11)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [11..11)::0 + MarkupTextLiteral - [11..11)::0 - [] MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttribute - [12..20)::8 - class2 - DoubleQuotes - Unbound - [ class2=] @@ -33,6 +34,7 @@ RazorDocument - [0..33)::33 - [

        ] MarkupTextLiteral - [28..29)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [29..29)::0 + MarkupTextLiteral - [29..29)::0 - [] MarkupTextLiteral - [29..30)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTextLiteral - [30..33)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers5.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers5.cspans.txt index 8bfb20083..7b54ebc00 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers5.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers5.cspans.txt @@ -1 +1,3 @@ +Markup span at (11:0,11 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [31] ) +Markup span at (20:0,20 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [31] ) Markup span at (28:0,28 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [31] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers5.stree.txt index de5cde2b2..5f595ff66 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers5.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsEmptyAttributeTagHelpers5.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..31)::31 - [

        ] MarkupTextLiteral - [10..11)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [11..11)::0 + MarkupTextLiteral - [11..11)::0 - [] MarkupTextLiteral - [11..12)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttribute - [12..21)::9 - class2 - DoubleQuotes - Unbound - [class2=""] @@ -23,6 +24,7 @@ RazorDocument - [0..31)::31 - [

        ] MarkupTextLiteral - [19..20)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [20..20)::0 + MarkupTextLiteral - [20..20)::0 - [] MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttribute - [21..28)::7 - class3 - DoubleQuotes - Unbound - [class3=] diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block12.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block12.cspans.txt index a9bbc9d9b..37fd3df81 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block12.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block12.cspans.txt @@ -1,6 +1,7 @@ Markup span at (0:0,0 [0] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [32] ) Transition span at (0:0,0 [1] ) (Accepts:None) - Parent: Statement block at (0:0,0 [32] ) MetaCode span at (1:0,1 [1] ) (Accepts:None) - Parent: Statement block at (0:0,0 [32] ) +Code span at (27:0,27 [0] ) (Accepts:AnyExceptNewline) - Parent: Tag block at (2:0,2 [29] ) Code span at (31:0,31 [0] ) (Accepts:Any) - Parent: Statement block at (0:0,0 [32] ) MetaCode span at (31:0,31 [1] ) (Accepts:None) - Parent: Statement block at (0:0,0 [32] ) Markup span at (32:0,32 [0] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [32] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block12.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block12.stree.txt index 321dfe84a..9b025d209 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block12.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block12.stree.txt @@ -25,6 +25,7 @@ RazorDocument - [0..32)::32 - [@{}] MarkupTextLiteral - [26..27)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [27..27)::0 + CSharpExpressionLiteral - [27..27)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 MarkupTextLiteral - [27..28)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTextLiteral - [28..31)::3 - [ />] - Gen - SpanEditHandler;Accepts:None diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block13.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block13.cspans.txt index 1b7db58cc..dfa5d6b25 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block13.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block13.cspans.txt @@ -1,6 +1,7 @@ Markup span at (0:0,0 [0] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [34] ) Transition span at (0:0,0 [1] ) (Accepts:None) - Parent: Statement block at (0:0,0 [34] ) MetaCode span at (1:0,1 [1] ) (Accepts:None) - Parent: Statement block at (0:0,0 [34] ) +Markup span at (30:0,30 [0] ) (Accepts:Any) - Parent: Tag block at (2:0,2 [31] ) Code span at (33:0,33 [0] ) (Accepts:Any) - Parent: Statement block at (0:0,0 [34] ) MetaCode span at (33:0,33 [1] ) (Accepts:None) - Parent: Statement block at (0:0,0 [34] ) Markup span at (34:0,34 [0] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [34] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block13.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block13.stree.txt index 7bd690b30..a945b9f6f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block13.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block13.stree.txt @@ -25,6 +25,7 @@ RazorDocument - [0..34)::34 - [@{}] MarkupTextLiteral - [29..30)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [30..30)::0 + MarkupTextLiteral - [30..30)::0 - [] MarkupTextLiteral - [30..31)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTextLiteral - [31..33)::2 - [/>] - Gen - SpanEditHandler;Accepts:None diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block15.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block15.stree.txt index 5b77be9d9..8de364953 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block15.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Block15.stree.txt @@ -25,14 +25,11 @@ RazorDocument - [0..46)::46 - [@{}] MarkupTextLiteral - [29..30)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [30..41)::11 - MarkupLiteralAttributeValue - [30..34)::4 - [some] - MarkupTextLiteral - [30..34)::4 - [some] - Gen - SpanEditHandler;Accepts:Any - Text;[some]; - MarkupLiteralAttributeValue - [34..41)::7 - [ string] - MarkupTextLiteral - [34..35)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any - Whitespace;[ ]; - MarkupTextLiteral - [35..41)::6 - [string] - Gen - SpanEditHandler;Accepts:Any - Text;[string]; + MarkupTextLiteral - [30..34)::4 - [some] - Gen - SpanEditHandler;Accepts:Any + Text;[some]; + MarkupTextLiteral - [34..41)::7 - [ string] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[string]; MarkupTextLiteral - [41..42)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTextLiteral - [42..45)::3 - [ />] - Gen - SpanEditHandler;Accepts:None diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document12.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document12.cspans.txt index e69de29bb..fd32ae834 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document12.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document12.cspans.txt @@ -0,0 +1 @@ +Code span at (25:0,25 [0] ) (Accepts:AnyExceptNewline) - Parent: Tag block at (0:0,0 [29] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document12.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document12.stree.txt index cdfb86efa..61cafbb65 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document12.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document12.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..29)::29 - [] MarkupTextLiteral - [24..25)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [25..25)::0 + CSharpExpressionLiteral - [25..25)::0 - [] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 MarkupTextLiteral - [25..26)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTextLiteral - [26..29)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document13.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document13.cspans.txt index e69de29bb..8bfb20083 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document13.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document13.cspans.txt @@ -0,0 +1 @@ +Markup span at (28:0,28 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [31] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document13.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document13.stree.txt index ba953cbee..895be9f99 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document13.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document13.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..31)::31 - [] MarkupTextLiteral - [27..28)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [28..28)::0 + MarkupTextLiteral - [28..28)::0 - [] MarkupTextLiteral - [28..29)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTextLiteral - [29..31)::2 - [/>] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document15.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document15.stree.txt index 79a9cf723..24aba9fd4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document15.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperBlockRewriterTest/UnderstandsMinimizedAttributes_Document15.stree.txt @@ -14,14 +14,11 @@ RazorDocument - [0..43)::43 - [] MarkupTextLiteral - [27..28)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTagHelperAttributeValue - [28..39)::11 - MarkupLiteralAttributeValue - [28..32)::4 - [some] - MarkupTextLiteral - [28..32)::4 - [some] - Gen - SpanEditHandler;Accepts:Any - Text;[some]; - MarkupLiteralAttributeValue - [32..39)::7 - [ string] - MarkupTextLiteral - [32..33)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any - Whitespace;[ ]; - MarkupTextLiteral - [33..39)::6 - [string] - Gen - SpanEditHandler;Accepts:Any - Text;[string]; + MarkupTextLiteral - [28..32)::4 - [some] - Gen - SpanEditHandler;Accepts:Any + Text;[some]; + MarkupTextLiteral - [32..39)::7 - [ string] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[string]; MarkupTextLiteral - [39..40)::1 - ['] - Gen - SpanEditHandler;Accepts:Any SingleQuote;[']; MarkupTextLiteral - [40..43)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers11.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers11.stree.txt index c98031c7e..a15006bfd 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers11.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers11.stree.txt @@ -14,18 +14,17 @@ RazorDocument - [0..34)::34 - [] MarkupTextLiteral - [16..17)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [17..30)::13 - MarkupDynamicAttributeValue - [17..30)::13 - [@DateTime.Now] - GenericBlock - [17..30)::13 - CSharpCodeBlock - [17..30)::13 - CSharpImplicitExpression - [17..30)::13 - CSharpTransition - [17..18)::1 - Gen - SpanEditHandler;Accepts:None - Transition;[@]; - CSharpImplicitExpressionBody - [18..30)::12 - CSharpCodeBlock - [18..30)::12 - CSharpExpressionLiteral - [18..30)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - Identifier;[DateTime]; - Dot;[.]; - Identifier;[Now]; + MarkupBlock - [17..30)::13 + CSharpCodeBlock - [17..30)::13 + CSharpImplicitExpression - [17..30)::13 + CSharpTransition - [17..18)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpImplicitExpressionBody - [18..30)::12 + CSharpCodeBlock - [18..30)::12 + CSharpExpressionLiteral - [18..30)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 + Identifier;[DateTime]; + Dot;[.]; + Identifier;[Now]; MarkupTextLiteral - [30..31)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTextLiteral - [31..34)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorCommentsAsChildren.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorCommentsAsChildren.stree.txt index ab4530e89..c9fe5d35d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorCommentsAsChildren.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorCommentsAsChildren.stree.txt @@ -26,7 +26,7 @@ RazorDocument - [0..26)::26 - [

        asdf@*asdf*@

        ] RazorCommentStar;[*]; RazorCommentTransition;[@]; MarkupTagHelperEndTag - [22..26)::4 - MarkupTextLiteral - [22..26)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + MarkupTextLiteral - [22..26)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any OpenAngle;[<]; ForwardSlash;[/]; Text;[p]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly19.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly19.cspans.txt index b46c82a31..2930101dc 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly19.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly19.cspans.txt @@ -1 +1,2 @@ +Markup span at (12:0,12 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [28] ) Markup span at (21:0,21 [3] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [28] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly19.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly19.stree.txt index d41629a50..a7e368995 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly19.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly19.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..28)::28 - [
        ] MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [12..12)::0 + MarkupTextLiteral - [12..12)::0 - [] MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttribute - [13..25)::12 - class - DoubleQuotes - Unbound - [ class="btn"] diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly21.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly21.cspans.txt index 517442ebe..17da676f6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly21.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly21.cspans.txt @@ -1,2 +1,3 @@ +Markup span at (12:0,12 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [48] ) Markup span at (21:0,21 [3] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [48] ) Markup span at (26:0,26 [16] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [48] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly21.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly21.stree.txt index 051cad010..e35bb2239 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly21.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly21.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..48)::48 - [
        words and spaces
        ] MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [12..12)::0 + MarkupTextLiteral - [12..12)::0 - [] MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttribute - [13..25)::12 - class - DoubleQuotes - Unbound - [ class="btn"] diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly23.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly23.cspans.txt index 120408cb7..a788e1773 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly23.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly23.cspans.txt @@ -1,3 +1,4 @@ +Markup span at (12:0,12 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [63] ) Markup span at (21:0,21 [3] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [63] ) Markup span at (26:0,26 [5] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [63] ) Markup span at (31:0,31 [8] ) (Accepts:Any) - Parent: Tag block at (31:0,31 [8] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly23.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly23.stree.txt index 6c4d979d1..84478fe38 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly23.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly23.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..63)::63 - [
        wordsand - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [12..12)::0 + MarkupTextLiteral - [12..12)::0 - [] MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttribute - [13..25)::12 - class - DoubleQuotes - Unbound - [ class="btn"] diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly26.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly26.cspans.txt index cbc340071..4a50e7e4a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly26.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly26.cspans.txt @@ -1,2 +1,3 @@ +Markup span at (12:0,12 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [42] ) Markup span at (21:0,21 [3] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [42] ) Markup span at (36:0,36 [2] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [42] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly26.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly26.stree.txt index dbece6c5d..ac47257b9 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly26.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly26.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..42)::42 - [
        ] MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [12..12)::0 + MarkupTextLiteral - [12..12)::0 - [] MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttribute - [13..25)::12 - class - DoubleQuotes - Unbound - [ class="btn"] diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly27.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly27.cspans.txt index 046bac01d..49b2350a0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly27.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly27.cspans.txt @@ -1,3 +1,4 @@ +Markup span at (12:0,12 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [63] ) Markup span at (21:0,21 [3] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [63] ) Markup span at (36:0,36 [2] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [63] ) Markup span at (41:0,41 [16] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [63] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly27.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly27.stree.txt index 7fb594397..320b3d5ca 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly27.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly27.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..63)::63 - [
        words an MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [12..12)::0 + MarkupTextLiteral - [12..12)::0 - [] MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttribute - [13..25)::12 - class - DoubleQuotes - Unbound - [ class="btn"] diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly28.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly28.cspans.txt index 9197a8cdf..b76fbd29f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly28.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly28.cspans.txt @@ -1,3 +1,4 @@ +Markup span at (12:0,12 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [65] ) Markup span at (21:0,21 [3] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [65] ) Markup span at (36:0,36 [1] ) (Accepts:None) - Parent: Markup block at (36:0,36 [2] ) Markup span at (37:0,37 [1] ) (Accepts:None) - Parent: Markup block at (36:0,36 [2] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly28.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly28.stree.txt index 3551b3d4f..f95363ee2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly28.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly28.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..65)::65 - [
        words MarkupTextLiteral - [11..12)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [12..12)::0 + MarkupTextLiteral - [12..12)::0 - [] MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttribute - [13..25)::12 - class - DoubleQuotes - Unbound - [ class="btn"] diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly30.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly30.cspans.txt index 787c31a99..9fec06bb5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly30.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly30.cspans.txt @@ -1,3 +1,4 @@ +Markup span at (12:0,12 [0] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [78] ) Markup span at (21:0,21 [3] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [78] ) Markup span at (36:0,36 [2] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [78] ) Markup span at (41:0,41 [5] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [78] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly30.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly30.stree.txt index d0d9876a3..a9866a52e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly30.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/RequiredAttributeDescriptorsCreateTagHelperBlocksCorrectly30.stree.txt @@ -14,6 +14,7 @@ RazorDocument - [0..78)::78 - [
        words - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttributeValue - [12..12)::0 + MarkupTextLiteral - [12..12)::0 - [] MarkupTextLiteral - [12..13)::1 - ["] - Gen - SpanEditHandler;Accepts:Any DoubleQuote;["]; MarkupTagHelperAttribute - [13..25)::12 - class - DoubleQuotes - Unbound - [ class="btn"] diff --git a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/IntegrationTests/IntegrationTestBase.cs b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/IntegrationTests/IntegrationTestBase.cs index ccdd4e941..64434fb97 100644 --- a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/IntegrationTests/IntegrationTestBase.cs +++ b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/IntegrationTests/IntegrationTestBase.cs @@ -16,6 +16,7 @@ using Microsoft.AspNetCore.Razor.Language.Legacy; using Microsoft.AspNetCore.Razor.Language.CodeGeneration; using Microsoft.AspNetCore.Razor.Language.Intermediate; +using Microsoft.AspNetCore.Razor.Language.Syntax; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.Razor; @@ -460,38 +461,38 @@ protected void AssertSourceMappingsMatchBaseline(RazorCodeDocument codeDocument) var syntaxTree = codeDocument.GetSyntaxTree(); var visitor = new CodeSpanVisitor(); - visitor.VisitBlock(syntaxTree.LegacyRoot); + visitor.Visit(syntaxTree.Root); var charBuffer = new char[codeDocument.Source.Length]; codeDocument.Source.CopyTo(0, charBuffer, 0, codeDocument.Source.Length); var sourceContent = new string(charBuffer); var spans = visitor.CodeSpans; - for (var i= 0; i < spans.Count; i++) + for (var i = 0; i < spans.Count; i++) { var span = spans[i]; - if (span.Start.FilePath == null || span.Start.FilePath != codeDocument.Source.FilePath) + var sourceSpan = span.GetSourceSpan(codeDocument.Source); + if (sourceSpan == null) { // Not in the main file, skip. continue; } - var location = new SourceSpan(span.Start, span.Length); - var expectedSpan = sourceContent.Substring(span.Start.AbsoluteIndex, span.Length); + var expectedSpan = sourceContent.Substring(sourceSpan.AbsoluteIndex, sourceSpan.Length); // See #2593 if (string.IsNullOrWhiteSpace(expectedSpan)) { // For now we don't verify whitespace inside of a directive. We know that directives cheat // with how they bound whitespace/C#/markup to make completion work. - if (span.Parent is Block block && block.Type == BlockKindInternal.Directive) + if (span.FirstAncestorOrSelf() != null) { continue; } } // See #2594 - if (string.Equals("@", expectedSpan) && span.Kind == SpanKindInternal.Code) + if (string.Equals("@", expectedSpan)) { // For now we don't verify an escaped transition. In some cases one of the @ tokens in @@foo // will be mapped as C# but will not be present in the output buffer because it's not actually C#. @@ -502,16 +503,16 @@ protected void AssertSourceMappingsMatchBaseline(RazorCodeDocument codeDocument) for (var j = 0; j < csharpDocument.SourceMappings.Count; j++) { var mapping = csharpDocument.SourceMappings[j]; - if (mapping.OriginalSpan == location) + if (mapping.OriginalSpan == sourceSpan) { var actualSpan = csharpDocument.GeneratedCode.Substring( - mapping.GeneratedSpan.AbsoluteIndex, + mapping.GeneratedSpan.AbsoluteIndex, mapping.GeneratedSpan.Length); if (!string.Equals(expectedSpan, actualSpan, StringComparison.Ordinal)) { throw new XunitException( - $"Found the span {location} in the output mappings but it contains " + + $"Found the span {sourceSpan} in the output mappings but it contains " + $"'{EscapeWhitespace(actualSpan)}' instead of '{EscapeWhitespace(expectedSpan)}'."); } @@ -523,24 +524,34 @@ protected void AssertSourceMappingsMatchBaseline(RazorCodeDocument codeDocument) if (!found) { throw new XunitException( - $"Could not find the span {location} - containing '{EscapeWhitespace(expectedSpan)}' " + + $"Could not find the span {sourceSpan} - containing '{EscapeWhitespace(expectedSpan)}' " + $"in the output."); } } } - private class CodeSpanVisitor : ParserVisitor + private class CodeSpanVisitor : SyntaxRewriter { - public List CodeSpans { get; } = new List(); + public List CodeSpans { get; } = new List(); - public override void VisitSpan(Span span) + public override Syntax.SyntaxNode VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) { - if (span.Kind == SpanKindInternal.Code) + var context = node.GetSpanContext(); + if (context != null && context.ChunkGenerator != SpanChunkGenerator.Null) { - CodeSpans.Add(span); + CodeSpans.Add(node); } + return base.VisitCSharpStatementLiteral(node); + } - base.VisitSpan(span); + public override Syntax.SyntaxNode VisitCSharpExpressionLiteral(CSharpExpressionLiteralSyntax node) + { + var context = node.GetSpanContext(); + if (context != null && context.ChunkGenerator != SpanChunkGenerator.Null) + { + CodeSpans.Add(node); + } + return base.VisitCSharpExpressionLiteral(node); } } diff --git a/test/Microsoft.AspNetCore.Razor.Test.Common/Microsoft.AspNetCore.Razor.Test.Common.csproj b/test/Microsoft.AspNetCore.Razor.Test.Common/Microsoft.AspNetCore.Razor.Test.Common.csproj index 95f1644d4..6a0cf4d38 100644 --- a/test/Microsoft.AspNetCore.Razor.Test.Common/Microsoft.AspNetCore.Razor.Test.Common.csproj +++ b/test/Microsoft.AspNetCore.Razor.Test.Common/Microsoft.AspNetCore.Razor.Test.Common.csproj @@ -1,4 +1,4 @@ - + From 1b25ad96c0a2fabe5d59fdd43bc01941562dab22 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Thu, 27 Sep 2018 16:43:15 -0700 Subject: [PATCH 20/23] New baselines for RazorDirectivesTest --- .../Legacy/RazorDirectivesTest.cs | 5 + ...eRequiresDoubleQuotesAroundValue.stree.txt | 34 +- ...tive_InvalidLookupText_AddsError.stree.txt | 32 +- ...gHelperDirective_NoValue_Invalid.stree.txt | 32 +- ...TagHelperDirective_RequiresValue.stree.txt | 32 +- ...Directive_SingleQuotes_AddsError.stree.txt | 32 +- ...eRequiresDoubleQuotesAroundValue.stree.txt | 32 +- ...agHelperDirective_SupportsSpaces.stree.txt | 40 ++- ...otes_InvalidLookupText_AddsError.stree.txt | 32 +- ...tStartOfLineBecauseOfWhitespace.cspans.txt | 10 +- ...AtStartOfLineBecauseOfWhitespace.stree.txt | 36 +- ...irectiveErrorsIfNotAtStartOfLine.stree.txt | 36 +- ...veDescriptor_AllowsNullableTypes.stree.txt | 156 +++++---- ...ctiveDescriptor_AllowsTupleTypes.stree.txt | 324 +++++++++--------- ...eTypes_IgnoresTrailingWhitespace.stree.txt | 48 +-- ...tor_AllowsWhiteSpaceAroundTokens.stree.txt | 56 +-- ...ndleEOFIncompleteNamespaceTokens.stree.txt | 28 +- ...nHandleEOFInvalidNamespaceTokens.stree.txt | 34 +- ...nHandleIncompleteNamespaceTokens.stree.txt | 30 +- ..._CanHandleInvalidNamespaceTokens.stree.txt | 36 +- ...ErrorsExtraContentAfterDirective.stree.txt | 40 ++- ...tor_ErrorsForInvalidMemberTokens.stree.txt | 28 +- ...WhenEOFBeforeDirectiveBlockStart.stree.txt | 32 +- ...WhenExtraContentBeforeBlockStart.stree.txt | 52 +-- ...riptor_ErrorsWhenMissingEndBrace.stree.txt | 43 ++- ...tipleOccurring_CanHaveDuplicates.stree.txt | 85 ++--- ...inglyOccurring_ErrorsIfDuplicate.stree.txt | 85 ++--- ...oped_CanBeBeneathOtherDirectives.stree.txt | 73 ++-- ...rWhiteSpaceCommentsAndDirectives.stree.txt | 133 +++---- ..._NoErrorsSemicolonAfterDirective.stree.txt | 44 +-- ...ken_ParserErrorForNonStringValue.stree.txt | 32 +- ...ParserErrorForPartialQuotedValue.stree.txt | 30 +- ..._ParserErrorForSingleQuotedValue.stree.txt | 32 +- ...oken_ParserErrorForUnquotedValue.stree.txt | 28 +- ...tor_TokensMustBeSeparatedBySpace.stree.txt | 36 +- ...Descriptor_UnderstandsCodeBlocks.stree.txt | 69 ++-- ...scriptor_UnderstandsMemberTokens.stree.txt | 32 +- ...riptor_UnderstandsMultipleTokens.stree.txt | 60 ++-- ...escriptor_UnderstandsRazorBlocks.stree.txt | 89 ++--- ...scriptor_UnderstandsStringTokens.stree.txt | 32 +- ...Descriptor_UnderstandsTypeTokens.stree.txt | 44 +-- ...ectives_CanUseReservedWord_Class.stree.txt | 24 +- ...ves_CanUseReservedWord_Namespace.stree.txt | 24 +- .../EmptyFunctionsDirective.stree.txt | 41 ++- ...tStartOfLineBecauseOfWhitespace.cspans.txt | 10 +- ...AtStartOfLineBecauseOfWhitespace.stree.txt | 48 +-- ...irectiveErrorsIfNotAtStartOfLine.stree.txt | 50 +-- .../InheritsDirectiveSupportsArrays.stree.txt | 44 +-- ...sDirectiveSupportsNestedGenerics.stree.txt | 64 ++-- ...itsDirectiveSupportsTypeKeywords.stree.txt | 32 +- ...tionalDirectiveTokens_AreSkipped.stree.txt | 28 +- ...ctiveTokens_WithBraces_AreParsed.stree.txt | 32 +- ...MultipleOptionalTokens_AreParsed.stree.txt | 44 +-- ...okens_WithSimpleTokens_AreParsed.stree.txt | 32 +- ...ens_WithMemberSpecified_IsParsed.stree.txt | 32 +- ...okens_WithMissingMember_IsParsed.stree.txt | 32 +- .../Parse_FunctionsDirective.stree.txt | 61 ++-- .../Parse_SectionDirective.stree.txt | 89 ++--- ...ectiveToken_WithMultipleSegments.stree.txt | 40 ++- ...DirectiveToken_WithSingleSegment.stree.txt | 32 +- ...eRequiresDoubleQuotesAroundValue.stree.txt | 34 +- ...tive_InvalidLookupText_AddsError.stree.txt | 32 +- ...gHelperDirective_NoValue_Invalid.stree.txt | 32 +- ...TagHelperDirective_RequiresValue.stree.txt | 32 +- ...Directive_SingleQuotes_AddsError.stree.txt | 32 +- ...eRequiresDoubleQuotesAroundValue.stree.txt | 32 +- ...agHelperDirective_SupportsSpaces.stree.txt | 40 ++- ...otes_InvalidLookupText_AddsError.stree.txt | 32 +- ...eRequiresDoubleQuotesAroundValue.stree.txt | 36 +- ...rPrefixDirective_NoValueSucceeds.stree.txt | 32 +- ...perPrefixDirective_RequiresValue.stree.txt | 32 +- ...eRequiresDoubleQuotesAroundValue.stree.txt | 32 +- ...agHelperPrefixDirective_Succeeds.stree.txt | 32 +- ...fixDirective_WithQuotes_Succeeds.stree.txt | 32 +- 74 files changed, 1842 insertions(+), 1543 deletions(-) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorDirectivesTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorDirectivesTest.cs index e4b999fd1..54d9cce88 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorDirectivesTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorDirectivesTest.cs @@ -11,6 +11,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { public class RazorDirectivesTest : CsHtmlCodeParserTestBase { + public RazorDirectivesTest() + { + UseNewSyntaxTree = true; + } + [Fact] public void DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates() { diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt index bc7be6b73..415af2bb3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt @@ -1,15 +1,19 @@ -Markup block - Gen - 18 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 18 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [addTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[addTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [Foo"] - SpanEditHandler;Accepts:AnyExceptNewline - (14:0,14) - Tokens:2 - SyntaxKind.Identifier;[Foo]; - SyntaxKind.StringLiteral;["];RZ1000(17:0,17 [1] ) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..18)::18 - [@addTagHelper Foo"] + MarkupBlock - [0..18)::18 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..18)::18 + RazorDirective - [0..18)::18 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..18)::17 + RazorMetaCode - [1..13)::12 - Gen - SpanEditHandler;Accepts:None + Identifier;[addTagHelper]; + CSharpCodeBlock - [13..18)::5 + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [14..18)::4 - [Foo"] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Identifier;[Foo]; + StringLiteral;["];RZ1000(17:0,17 [1] ) + MarkupTextLiteral - [18..18)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_InvalidLookupText_AddsError.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_InvalidLookupText_AddsError.stree.txt index 7eca75440..32eaa73ae 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_InvalidLookupText_AddsError.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_InvalidLookupText_AddsError.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 17 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 17 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [addTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[addTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [Foo] - SpanEditHandler;Accepts:AnyExceptNewline - (14:0,14) - Tokens:1 - SyntaxKind.Identifier;[Foo]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..17)::17 - [@addTagHelper Foo] + MarkupBlock - [0..17)::17 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..17)::17 + RazorDirective - [0..17)::17 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..17)::16 + RazorMetaCode - [1..13)::12 - Gen - SpanEditHandler;Accepts:None + Identifier;[addTagHelper]; + CSharpCodeBlock - [13..17)::4 + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [14..17)::3 - [Foo] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Identifier;[Foo]; + MarkupTextLiteral - [17..17)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_NoValue_Invalid.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_NoValue_Invalid.stree.txt index 4673d994f..95e2ab911 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_NoValue_Invalid.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_NoValue_Invalid.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 16 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 16 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [addTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[addTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [""] - SpanEditHandler;Accepts:AnyExceptNewline - (14:0,14) - Tokens:1 - SyntaxKind.StringLiteral;[""]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..16)::16 - [@addTagHelper ""] + MarkupBlock - [0..16)::16 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..16)::16 + RazorDirective - [0..16)::16 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..16)::15 + RazorMetaCode - [1..13)::12 - Gen - SpanEditHandler;Accepts:None + Identifier;[addTagHelper]; + CSharpCodeBlock - [13..16)::3 + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [14..16)::2 - [""] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + StringLiteral;[""]; + MarkupTextLiteral - [16..16)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_RequiresValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_RequiresValue.stree.txt index 70e94ca37..660b83b42 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_RequiresValue.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_RequiresValue.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 14 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 14 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [addTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[addTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [] - SpanEditHandler;Accepts:AnyExceptNewline - (14:0,14) - Tokens:1 - SyntaxKind.Unknown;[]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..14)::14 - [@addTagHelper ] + MarkupBlock - [0..14)::14 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..14)::14 + RazorDirective - [0..14)::14 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..14)::13 + RazorMetaCode - [1..13)::12 - Gen - SpanEditHandler;Accepts:None + Identifier;[addTagHelper]; + CSharpCodeBlock - [13..14)::1 + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [14..14)::0 - [] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Marker;[]; + MarkupTextLiteral - [14..14)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_SingleQuotes_AddsError.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_SingleQuotes_AddsError.stree.txt index ac3968136..e5a43eb13 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_SingleQuotes_AddsError.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_SingleQuotes_AddsError.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 22 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 22 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [addTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[addTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ['*, Foo'] - SpanEditHandler;Accepts:AnyExceptNewline - (14:0,14) - Tokens:1 - SyntaxKind.CharacterLiteral;['*, Foo']; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..22)::22 - [@addTagHelper '*, Foo'] + MarkupBlock - [0..22)::22 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..22)::22 + RazorDirective - [0..22)::22 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..22)::21 + RazorMetaCode - [1..13)::12 - Gen - SpanEditHandler;Accepts:None + Identifier;[addTagHelper]; + CSharpCodeBlock - [13..22)::9 + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [14..22)::8 - ['*, Foo'] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + CharacterLiteral;['*, Foo']; + MarkupTextLiteral - [22..22)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt index d135d7804..92b11e3ec 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 18 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 18 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [addTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[addTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["Foo] - SpanEditHandler;Accepts:AnyExceptNewline - (14:0,14) - Tokens:1 - SyntaxKind.StringLiteral;["Foo];RZ1000(14:0,14 [1] ) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..18)::18 - [@addTagHelper "Foo] + MarkupBlock - [0..18)::18 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..18)::18 + RazorDirective - [0..18)::18 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..18)::17 + RazorMetaCode - [1..13)::12 - Gen - SpanEditHandler;Accepts:None + Identifier;[addTagHelper]; + CSharpCodeBlock - [13..18)::5 + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [14..18)::4 - ["Foo] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + StringLiteral;["Foo];RZ1000(14:0,14 [1] ) + MarkupTextLiteral - [18..18)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_SupportsSpaces.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_SupportsSpaces.stree.txt index 2d2db1bc4..a1d2a4c46 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_SupportsSpaces.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_SupportsSpaces.stree.txt @@ -1,18 +1,22 @@ -Markup block - Gen - 32 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 32 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [addTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[addTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [Foo, Bar ] - SpanEditHandler;Accepts:AnyExceptNewline - (18:0,18) - Tokens:5 - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (32:0,32) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..32)::32 - [@addTagHelper Foo, Bar ] + MarkupBlock - [0..32)::32 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..32)::32 + RazorDirective - [0..32)::32 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..32)::31 + RazorMetaCode - [1..13)::12 - Gen - SpanEditHandler;Accepts:None + Identifier;[addTagHelper]; + CSharpCodeBlock - [13..32)::19 + MarkupTextLiteral - [13..18)::5 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [18..32)::14 - [Foo, Bar ] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Identifier;[Foo]; + Comma;[,]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + MarkupTextLiteral - [32..32)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt index cfe643e1d..45498ce53 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/AddTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 19 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 19 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [addTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[addTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["Foo"] - SpanEditHandler;Accepts:AnyExceptNewline - (14:0,14) - Tokens:1 - SyntaxKind.StringLiteral;["Foo"]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..19)::19 - [@addTagHelper "Foo"] + MarkupBlock - [0..19)::19 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..19)::19 + RazorDirective - [0..19)::19 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..19)::18 + RazorMetaCode - [1..13)::12 - Gen - SpanEditHandler;Accepts:None + Identifier;[addTagHelper]; + CSharpCodeBlock - [13..19)::6 + MarkupTextLiteral - [13..14)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [14..19)::5 - ["Foo"] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + StringLiteral;["Foo"]; + MarkupTextLiteral - [19..19)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt index 597dd7302..c6fee7635 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt @@ -1,7 +1,7 @@ Markup span at (0:0,0 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [26] ) -Code span at (2:1,0 [2] ) (Accepts:Any) - Parent: Directive block at (2:1,0 [24] ) -Transition span at (4:1,2 [1] ) (Accepts:None) - Parent: Directive block at (2:1,0 [24] ) -MetaCode span at (5:1,3 [12] ) (Accepts:None) - Parent: Directive block at (2:1,0 [24] ) -Markup span at (17:1,15 [1] ) (Accepts:None) - Parent: Directive block at (2:1,0 [24] ) -Code span at (18:1,16 [8] ) (Accepts:AnyExceptNewline) - Parent: Directive block at (2:1,0 [24] ) +Code span at (2:1,0 [2] ) (Accepts:Any) - Parent: Statement block at (2:1,0 [24] ) +Transition span at (4:1,2 [1] ) (Accepts:None) - Parent: Directive block at (4:1,2 [22] ) +MetaCode span at (5:1,3 [12] ) (Accepts:None) - Parent: Directive block at (4:1,2 [22] ) +Markup span at (17:1,15 [1] ) (Accepts:None) - Parent: Directive block at (4:1,2 [22] ) +Code span at (18:1,16 [8] ) (Accepts:AnyExceptNewline) - Parent: Directive block at (4:1,2 [22] ) Markup span at (26:1,24 [0] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [26] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt index 2e4413ce6..adbdb50b0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt @@ -1,16 +1,20 @@ -Markup block - Gen - 26 - (0:0,0) - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Directive block - Gen - 24 - (2:1,0) - Code span - Gen - [ ] - SpanEditHandler;Accepts:Any - (2:1,0) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (4:1,2) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [addTagHelper] - SpanEditHandler;Accepts:None - (5:1,3) - Tokens:1 - SyntaxKind.Identifier;[addTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (17:1,15) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["*, Foo"] - SpanEditHandler;Accepts:AnyExceptNewline - (18:1,16) - Tokens:1 - SyntaxKind.StringLiteral;["*, Foo"]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (26:1,24) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..26)::26 - [LF @addTagHelper "*, Foo"] + MarkupBlock - [0..26)::26 + MarkupTextLiteral - [0..2)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [2..26)::24 + CSharpStatementLiteral - [2..4)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RazorDirective - [4..26)::22 + CSharpTransition - [4..5)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [5..26)::21 + RazorMetaCode - [5..17)::12 - Gen - SpanEditHandler;Accepts:None + Identifier;[addTagHelper]; + CSharpCodeBlock - [17..26)::9 + MarkupTextLiteral - [17..18)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [18..26)::8 - ["*, Foo"] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + StringLiteral;["*, Foo"]; + MarkupTextLiteral - [26..26)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveErrorsIfNotAtStartOfLine.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveErrorsIfNotAtStartOfLine.stree.txt index 6c90f6f46..1e622480b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveErrorsIfNotAtStartOfLine.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/BuiltInDirectiveErrorsIfNotAtStartOfLine.stree.txt @@ -1,16 +1,20 @@ -Markup block - Gen - 28 - (0:0,0) - Markup span - Gen - [{ ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:2 - SyntaxKind.Text;[{]; - SyntaxKind.Whitespace;[ ]; - Directive block - Gen - 24 - (3:0,3) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [addTagHelper] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:1 - SyntaxKind.Identifier;[addTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["*, Foo"LF] - SpanEditHandler;Accepts:AnyExceptNewline - (17:0,17) - Tokens:2 - SyntaxKind.StringLiteral;["*, Foo"]; - SyntaxKind.NewLine;[LF]; - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (27:1,0) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..28)::28 - [{ @addTagHelper "*, Foo"LF}] + MarkupBlock - [0..28)::28 + MarkupTextLiteral - [0..3)::3 - [{ ] - Gen - SpanEditHandler;Accepts:Any + Text;[{]; + Whitespace;[ ]; + CSharpCodeBlock - [3..27)::24 + RazorDirective - [3..27)::24 + CSharpTransition - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [4..27)::23 + RazorMetaCode - [4..16)::12 - Gen - SpanEditHandler;Accepts:None + Identifier;[addTagHelper]; + CSharpCodeBlock - [16..27)::11 + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [17..27)::10 - ["*, Foo"LF] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + StringLiteral;["*, Foo"]; + NewLine;[LF]; + MarkupTextLiteral - [27..28)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsNullableTypes.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsNullableTypes.stree.txt index 6a9b54398..682938e37 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsNullableTypes.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsNullableTypes.stree.txt @@ -1,76 +1,80 @@ -Markup block - Gen - 176 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 176 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [string?] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:2 - SyntaxKind.Keyword;[string]; - SyntaxKind.QuestionMark;[?]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (15:0,15) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [string?[]] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (16:0,16) - Tokens:4 - SyntaxKind.Keyword;[string]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.RightBracket;[]]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (25:0,25) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [global::System.Int32?] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (26:0,26) - Tokens:6 - SyntaxKind.Identifier;[global]; - SyntaxKind.DoubleColon;[::]; - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Int32]; - SyntaxKind.QuestionMark;[?]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (47:0,47) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [KeyValuePair?] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (48:0,48) - Tokens:8 - SyntaxKind.Identifier;[KeyValuePair]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Keyword;[string]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[string]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.QuestionMark;[?]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (77:0,77) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [KeyValuePair?[]] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (78:0,78) - Tokens:10 - SyntaxKind.Identifier;[KeyValuePair]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Keyword;[string]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[string]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.RightBracket;[]]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (109:0,109) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [global::System.Collections.Generic.KeyValuePair?[]] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (110:0,110) - Tokens:18 - SyntaxKind.Identifier;[global]; - SyntaxKind.DoubleColon;[::]; - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Collections]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Generic]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[KeyValuePair]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Keyword;[string]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[string]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.RightBracket;[]]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (176:0,176) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..176)::176 - [@custom string? string?[] global::System.Int32? KeyValuePair? KeyValuePair?[] global::System.Collections.Generic.KeyValuePair?[]] + MarkupBlock - [0..176)::176 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..176)::176 + RazorDirective - [0..176)::176 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..176)::175 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..176)::169 + CSharpStatementLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..15)::7 - [string?] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Keyword;[string]; + QuestionMark;[?]; + CSharpStatementLiteral - [15..16)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [16..25)::9 - [string?[]] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Keyword;[string]; + QuestionMark;[?]; + LeftBracket;[[]; + RightBracket;[]]; + CSharpStatementLiteral - [25..26)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [26..47)::21 - [global::System.Int32?] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[global]; + DoubleColon;[::]; + Identifier;[System]; + Dot;[.]; + Identifier;[Int32]; + QuestionMark;[?]; + CSharpStatementLiteral - [47..48)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [48..77)::29 - [KeyValuePair?] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[KeyValuePair]; + LessThan;[<]; + Keyword;[string]; + Comma;[,]; + Whitespace;[ ]; + Keyword;[string]; + GreaterThan;[>]; + QuestionMark;[?]; + CSharpStatementLiteral - [77..78)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [78..109)::31 - [KeyValuePair?[]] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[KeyValuePair]; + LessThan;[<]; + Keyword;[string]; + Comma;[,]; + Whitespace;[ ]; + Keyword;[string]; + GreaterThan;[>]; + QuestionMark;[?]; + LeftBracket;[[]; + RightBracket;[]]; + CSharpStatementLiteral - [109..110)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [110..176)::66 - [global::System.Collections.Generic.KeyValuePair?[]] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[global]; + DoubleColon;[::]; + Identifier;[System]; + Dot;[.]; + Identifier;[Collections]; + Dot;[.]; + Identifier;[Generic]; + Dot;[.]; + Identifier;[KeyValuePair]; + LessThan;[<]; + Keyword;[string]; + Comma;[,]; + Whitespace;[ ]; + Keyword;[string]; + GreaterThan;[>]; + QuestionMark;[?]; + LeftBracket;[[]; + RightBracket;[]]; + MarkupTextLiteral - [176..176)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsTupleTypes.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsTupleTypes.stree.txt index 1fca727de..06b4a8b12 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsTupleTypes.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsTupleTypes.stree.txt @@ -1,160 +1,164 @@ -Markup block - Gen - 246 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 246 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [(bool, int)] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:6 - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[bool]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[int]; - SyntaxKind.RightParenthesis;[)]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (19:0,19) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [(int aa, string bb)?] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (20:0,20) - Tokens:11 - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[aa]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[string]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bb]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.QuestionMark;[?]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (40:0,40) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [( int? q , bool w )] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (41:0,41) - Tokens:14 - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[int]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[q]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[bool]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[w]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.RightParenthesis;[)]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (70:0,70) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [( int ? q, bool ?w ,(long ? [])) ?] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (71:0,71) - Tokens:26 - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[q]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[bool]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.Identifier;[w]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Comma;[,]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[long]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.QuestionMark;[?]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (108:0,108) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [(List<(int, string)?> aa, string bb)] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (109:0,109) - Tokens:19 - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[List]; - SyntaxKind.LessThan;[<]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[string]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[aa]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[string]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bb]; - SyntaxKind.RightParenthesis;[)]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (145:0,145) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [(string ss, (int u, List<(string, int)> k, (Char c, bool b, List l)), global::System.Int32[] a)] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (146:0,146) - Tokens:56 - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[string]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[ss]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[int]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[u]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[List]; - SyntaxKind.LessThan;[<]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[string]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[int]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[k]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Identifier;[Char]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[c]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[bool]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[b]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[List]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Keyword;[int]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[l]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[global]; - SyntaxKind.DoubleColon;[::]; - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Int32]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[a]; - SyntaxKind.RightParenthesis;[)]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (246:0,246) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..246)::246 - [@custom (bool, int) (int aa, string bb)? ( int? q , bool w ) ( int ? q, bool ?w ,(long ? [])) ? (List<(int, string)?> aa, string bb) (string ss, (int u, List<(string, int)> k, (Char c, bool b, List l)), global::System.Int32[] a)] + MarkupBlock - [0..246)::246 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..246)::246 + RazorDirective - [0..246)::246 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..246)::245 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..246)::239 + CSharpStatementLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..19)::11 - [(bool, int)] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + LeftParenthesis;[(]; + Keyword;[bool]; + Comma;[,]; + Whitespace;[ ]; + Keyword;[int]; + RightParenthesis;[)]; + CSharpStatementLiteral - [19..20)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [20..40)::20 - [(int aa, string bb)?] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[aa]; + Comma;[,]; + Whitespace;[ ]; + Keyword;[string]; + Whitespace;[ ]; + Identifier;[bb]; + RightParenthesis;[)]; + QuestionMark;[?]; + CSharpStatementLiteral - [40..41)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [41..70)::29 - [( int? q , bool w )] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + LeftParenthesis;[(]; + Whitespace;[ ]; + Keyword;[int]; + QuestionMark;[?]; + Whitespace;[ ]; + Identifier;[q]; + Whitespace;[ ]; + Comma;[,]; + Whitespace;[ ]; + Keyword;[bool]; + Whitespace;[ ]; + Identifier;[w]; + Whitespace;[ ]; + RightParenthesis;[)]; + CSharpStatementLiteral - [70..71)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [71..108)::37 - [( int ? q, bool ?w ,(long ? [])) ?] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + LeftParenthesis;[(]; + Whitespace;[ ]; + Keyword;[int]; + Whitespace;[ ]; + QuestionMark;[?]; + Whitespace;[ ]; + Identifier;[q]; + Comma;[,]; + Whitespace;[ ]; + Keyword;[bool]; + Whitespace;[ ]; + QuestionMark;[?]; + Identifier;[w]; + Whitespace;[ ]; + Comma;[,]; + LeftParenthesis;[(]; + Keyword;[long]; + Whitespace;[ ]; + QuestionMark;[?]; + Whitespace;[ ]; + LeftBracket;[[]; + RightBracket;[]]; + RightParenthesis;[)]; + RightParenthesis;[)]; + Whitespace;[ ]; + QuestionMark;[?]; + CSharpStatementLiteral - [108..109)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [109..145)::36 - [(List<(int, string)?> aa, string bb)] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + LeftParenthesis;[(]; + Identifier;[List]; + LessThan;[<]; + LeftParenthesis;[(]; + Keyword;[int]; + Comma;[,]; + Whitespace;[ ]; + Keyword;[string]; + RightParenthesis;[)]; + QuestionMark;[?]; + GreaterThan;[>]; + Whitespace;[ ]; + Identifier;[aa]; + Comma;[,]; + Whitespace;[ ]; + Keyword;[string]; + Whitespace;[ ]; + Identifier;[bb]; + RightParenthesis;[)]; + CSharpStatementLiteral - [145..146)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [146..246)::100 - [(string ss, (int u, List<(string, int)> k, (Char c, bool b, List l)), global::System.Int32[] a)] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + LeftParenthesis;[(]; + Keyword;[string]; + Whitespace;[ ]; + Identifier;[ss]; + Comma;[,]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Keyword;[int]; + Whitespace;[ ]; + Identifier;[u]; + Comma;[,]; + Whitespace;[ ]; + Identifier;[List]; + LessThan;[<]; + LeftParenthesis;[(]; + Keyword;[string]; + Comma;[,]; + Whitespace;[ ]; + Keyword;[int]; + RightParenthesis;[)]; + GreaterThan;[>]; + Whitespace;[ ]; + Identifier;[k]; + Comma;[,]; + Whitespace;[ ]; + LeftParenthesis;[(]; + Identifier;[Char]; + Whitespace;[ ]; + Identifier;[c]; + Comma;[,]; + Whitespace;[ ]; + Keyword;[bool]; + Whitespace;[ ]; + Identifier;[b]; + Comma;[,]; + Whitespace;[ ]; + Identifier;[List]; + LessThan;[<]; + Keyword;[int]; + GreaterThan;[>]; + Whitespace;[ ]; + Identifier;[l]; + RightParenthesis;[)]; + RightParenthesis;[)]; + Comma;[,]; + Whitespace;[ ]; + Identifier;[global]; + DoubleColon;[::]; + Identifier;[System]; + Dot;[.]; + Identifier;[Int32]; + LeftBracket;[[]; + RightBracket;[]]; + Whitespace;[ ]; + Identifier;[a]; + RightParenthesis;[)]; + MarkupTextLiteral - [246..246)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsTupleTypes_IgnoresTrailingWhitespace.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsTupleTypes_IgnoresTrailingWhitespace.stree.txt index 36eac56a6..0a40996b1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsTupleTypes_IgnoresTrailingWhitespace.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsTupleTypes_IgnoresTrailingWhitespace.stree.txt @@ -1,22 +1,26 @@ -Markup block - Gen - 23 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 23 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [(bool, int?)] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:7 - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[bool]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Keyword;[int]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.RightParenthesis;[)]; - None span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (20:0,20) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (23:0,23) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..23)::23 - [@custom (bool, int?) ] + MarkupBlock - [0..23)::23 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..23)::23 + RazorDirective - [0..23)::23 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..23)::22 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..23)::16 + CSharpStatementLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..20)::12 - [(bool, int?)] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + LeftParenthesis;[(]; + Keyword;[bool]; + Comma;[,]; + Whitespace;[ ]; + Keyword;[int]; + QuestionMark;[?]; + RightParenthesis;[)]; + UnclassifiedTextLiteral - [20..23)::3 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + MarkupTextLiteral - [23..23)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsWhiteSpaceAroundTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsWhiteSpaceAroundTokens.stree.txt index 5ffe9978b..28010928f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsWhiteSpaceAroundTokens.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_AllowsWhiteSpaceAroundTokens.stree.txt @@ -1,26 +1,30 @@ -Markup block - Gen - 67 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 67 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [System.Text.Encoding.ASCIIEncoding] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (11:0,11) - Tokens:7 - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Text]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Encoding]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[ASCIIEncoding]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (45:0,45) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [Some_Member] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (52:0,52) - Tokens:1 - SyntaxKind.Identifier;[Some_Member]; - None span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (63:0,63) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (67:0,67) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..67)::67 - [@custom System.Text.Encoding.ASCIIEncoding Some_Member ] + MarkupBlock - [0..67)::67 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..67)::67 + RazorDirective - [0..67)::67 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..67)::66 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..67)::60 + CSharpStatementLiteral - [7..11)::4 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [11..45)::34 - [System.Text.Encoding.ASCIIEncoding] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[System]; + Dot;[.]; + Identifier;[Text]; + Dot;[.]; + Identifier;[Encoding]; + Dot;[.]; + Identifier;[ASCIIEncoding]; + CSharpStatementLiteral - [45..52)::7 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [52..63)::11 - [Some_Member] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[Some_Member]; + UnclassifiedTextLiteral - [63..67)::4 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + MarkupTextLiteral - [67..67)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleEOFIncompleteNamespaceTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleEOFIncompleteNamespaceTokens.stree.txt index ee74b316d..b562a5c65 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleEOFIncompleteNamespaceTokens.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleEOFIncompleteNamespaceTokens.stree.txt @@ -1,12 +1,16 @@ -Markup block - Gen - 15 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 8 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - [System.] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:1 - SyntaxKind.Text;[System.]; +RazorDocument - [0..15)::15 - [@custom System.] + MarkupBlock - [0..15)::15 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..8)::8 + RazorDirective - [0..8)::8 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..8)::7 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..8)::1 + CSharpStatementLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + MarkupTextLiteral - [8..15)::7 - [System.] - Gen - SpanEditHandler;Accepts:Any + Text;[System.]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleEOFInvalidNamespaceTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleEOFInvalidNamespaceTokens.stree.txt index 5ab7bd217..0659f995d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleEOFInvalidNamespaceTokens.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleEOFInvalidNamespaceTokens.stree.txt @@ -1,15 +1,19 @@ -Markup block - Gen - 15 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 8 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - [System] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:1 - SyntaxKind.Text;[System]; - Tag block - Gen - 1 - (14:0,14) - Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.OpenAngle;[<]; +RazorDocument - [0..15)::15 - [@custom System<] + MarkupBlock - [0..15)::15 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..8)::8 + RazorDirective - [0..8)::8 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..8)::7 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..8)::1 + CSharpStatementLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + MarkupTextLiteral - [8..14)::6 - [System] - Gen - SpanEditHandler;Accepts:Any + Text;[System]; + MarkupTagBlock - [14..15)::1 - [<] + MarkupTextLiteral - [14..15)::1 - [<] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleIncompleteNamespaceTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleIncompleteNamespaceTokens.stree.txt index 5bc8e3d8b..9332b0ea5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleIncompleteNamespaceTokens.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleIncompleteNamespaceTokens.stree.txt @@ -1,13 +1,17 @@ -Markup block - Gen - 17 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 8 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - [System.LF] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:2 - SyntaxKind.Text;[System.]; - SyntaxKind.NewLine;[LF]; +RazorDocument - [0..17)::17 - [@custom System.LF] + MarkupBlock - [0..17)::17 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..8)::8 + RazorDirective - [0..8)::8 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..8)::7 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..8)::1 + CSharpStatementLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + MarkupTextLiteral - [8..17)::9 - [System.LF] - Gen - SpanEditHandler;Accepts:Any + Text;[System.]; + NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleInvalidNamespaceTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleInvalidNamespaceTokens.stree.txt index 11bce5452..a3a74887d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleInvalidNamespaceTokens.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_CanHandleInvalidNamespaceTokens.stree.txt @@ -1,16 +1,20 @@ -Markup block - Gen - 17 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 8 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - [System] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:1 - SyntaxKind.Text;[System]; - Tag block - Gen - 3 - (14:0,14) - Markup span - Gen - [ - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..8)::8 + RazorDirective - [0..8)::8 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..8)::7 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..8)::1 + CSharpStatementLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + MarkupTextLiteral - [8..14)::6 - [System] - Gen - SpanEditHandler;Accepts:Any + Text;[System]; + MarkupTagBlock - [14..17)::3 - [ - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsExtraContentAfterDirective.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsExtraContentAfterDirective.stree.txt index 3383379ab..a37d63f5f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsExtraContentAfterDirective.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsExtraContentAfterDirective.stree.txt @@ -1,18 +1,22 @@ -Markup block - Gen - 23 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 16 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["hello"] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:1 - SyntaxKind.StringLiteral;["hello"]; - None span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (15:0,15) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - ["world"] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:3 - SyntaxKind.DoubleQuote;["]; - SyntaxKind.Text;[world]; - SyntaxKind.DoubleQuote;["]; +RazorDocument - [0..23)::23 - [@custom "hello" "world"] + MarkupBlock - [0..23)::23 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..16)::16 + RazorDirective - [0..16)::16 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..16)::15 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..16)::9 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..15)::7 - ["hello"] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + StringLiteral;["hello"]; + UnclassifiedTextLiteral - [15..16)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + MarkupTextLiteral - [16..23)::7 - ["world"] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + Text;[world]; + DoubleQuote;["]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsForInvalidMemberTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsForInvalidMemberTokens.stree.txt index e80139ceb..82490134b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsForInvalidMemberTokens.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsForInvalidMemberTokens.stree.txt @@ -1,12 +1,16 @@ -Markup block - Gen - 20 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 8 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - [-Some_Member] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:1 - SyntaxKind.Text;[-Some_Member]; +RazorDocument - [0..20)::20 - [@custom -Some_Member] + MarkupBlock - [0..20)::20 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..8)::8 + RazorDirective - [0..8)::8 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..8)::7 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..8)::1 + CSharpStatementLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + MarkupTextLiteral - [8..20)::12 - [-Some_Member] - Gen - SpanEditHandler;Accepts:Any + Text;[-Some_Member]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenEOFBeforeDirectiveBlockStart.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenEOFBeforeDirectiveBlockStart.stree.txt index 8e0af839b..5ffa6339c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenEOFBeforeDirectiveBlockStart.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenEOFBeforeDirectiveBlockStart.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 15 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 15 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["Hello"] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:1 - SyntaxKind.StringLiteral;["Hello"]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..15)::15 - [@custom "Hello"] + MarkupBlock - [0..15)::15 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..15)::15 + RazorDirective - [0..15)::15 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..15)::14 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..15)::8 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..15)::7 - ["Hello"] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + StringLiteral;["Hello"]; + MarkupTextLiteral - [15..15)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenExtraContentBeforeBlockStart.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenExtraContentBeforeBlockStart.stree.txt index 421836eef..51eff4da6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenExtraContentBeforeBlockStart.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenExtraContentBeforeBlockStart.stree.txt @@ -1,24 +1,28 @@ -Markup block - Gen - 39 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 16 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["Hello"] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:1 - SyntaxKind.StringLiteral;["Hello"]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:AllWhitespace - (15:0,15) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - [World { foo(); bar(); }] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:9 - SyntaxKind.Text;[World]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[{]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[foo();]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[bar();]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[}]; +RazorDocument - [0..39)::39 - [@custom "Hello" World { foo(); bar(); }] + MarkupBlock - [0..39)::39 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..16)::16 + RazorDirective - [0..16)::16 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..16)::15 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..16)::9 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..15)::7 - ["Hello"] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + StringLiteral;["Hello"]; + MarkupTextLiteral - [15..16)::1 - [ ] - Gen - SpanEditHandler;Accepts:AllWhitespace + Whitespace;[ ]; + MarkupTextLiteral - [16..39)::23 - [World { foo(); bar(); }] - Gen - SpanEditHandler;Accepts:Any + Text;[World]; + Whitespace;[ ]; + Text;[{]; + Whitespace;[ ]; + Text;[foo();]; + Whitespace;[ ]; + Text;[bar();]; + Whitespace;[ ]; + Text;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenMissingEndBrace.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenMissingEndBrace.stree.txt index fdf4b27ff..f1b280198 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenMissingEndBrace.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_ErrorsWhenMissingEndBrace.stree.txt @@ -1,18 +1,25 @@ -Markup block - Gen - 17 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 17 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["Hello"] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:1 - SyntaxKind.StringLiteral;["Hello"]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:AllWhitespace - (15:0,15) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - MetaCode span - Gen - [{] - AutoCompleteEditHandler;Accepts:None,AutoComplete:[}];AtEnd - (16:0,16) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [] - CodeBlockEditHandler;Accepts:Any;CodeBlock - (17:0,17) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..17)::17 - [@custom "Hello" {] + MarkupBlock - [0..17)::17 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..17)::17 + RazorDirective - [0..17)::17 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..17)::16 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..17)::10 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..15)::7 - ["Hello"] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + StringLiteral;["Hello"]; + MarkupTextLiteral - [15..16)::1 - [ ] - Gen - SpanEditHandler;Accepts:AllWhitespace + Whitespace;[ ]; + RazorMetaCode - [16..17)::1 - Gen - AutoCompleteEditHandler;Accepts:None,AutoComplete:[}];AtEnd + LeftBrace;[{]; + CSharpCodeBlock - [17..17)::0 + CSharpStatementLiteral - [17..17)::0 - [] - Gen - CodeBlockEditHandler;Accepts:Any;CodeBlock + Marker;[]; + RazorMetaCode - [17..17)::0 - Gen - SpanEditHandler;Accepts:Any + RightBrace;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates.stree.txt index 6c9bc613c..8751ac2c3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScopedMultipleOccurring_CanHaveDuplicates.stree.txt @@ -1,39 +1,46 @@ -Markup block - Gen - 85 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 44 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [System.Text.Encoding.ASCIIEncoding] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:7 - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Text]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Encoding]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[ASCIIEncoding]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Whitespace - (42:0,42) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (44:1,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 41 - (44:1,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (44:1,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (45:1,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (51:1,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [System.Text.Encoding.UTF8Encoding] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (52:1,8) - Tokens:7 - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Text]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Encoding]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[UTF8Encoding]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (85:1,41) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..85)::85 - [@custom System.Text.Encoding.ASCIIEncodingLF@custom System.Text.Encoding.UTF8Encoding] + MarkupBlock - [0..85)::85 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..44)::44 + RazorDirective - [0..44)::44 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..44)::43 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..44)::37 + CSharpStatementLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..42)::34 - [System.Text.Encoding.ASCIIEncoding] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[System]; + Dot;[.]; + Identifier;[Text]; + Dot;[.]; + Identifier;[Encoding]; + Dot;[.]; + Identifier;[ASCIIEncoding]; + MarkupEphemeralTextLiteral - [42..44)::2 - [LF] - Gen - SpanEditHandler;Accepts:Whitespace + NewLine;[LF]; + MarkupTextLiteral - [44..44)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [44..85)::41 + RazorDirective - [44..85)::41 + CSharpTransition - [44..45)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [45..85)::40 + RazorMetaCode - [45..51)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [51..85)::34 + CSharpStatementLiteral - [51..52)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [52..85)::33 - [System.Text.Encoding.UTF8Encoding] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[System]; + Dot;[.]; + Identifier;[Text]; + Dot;[.]; + Identifier;[Encoding]; + Dot;[.]; + Identifier;[UTF8Encoding]; + MarkupTextLiteral - [85..85)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScopedSinglyOccurring_ErrorsIfDuplicate.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScopedSinglyOccurring_ErrorsIfDuplicate.stree.txt index b24cfe018..8751ac2c3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScopedSinglyOccurring_ErrorsIfDuplicate.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScopedSinglyOccurring_ErrorsIfDuplicate.stree.txt @@ -1,39 +1,46 @@ -Markup block - Gen - 85 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 44 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [System.Text.Encoding.ASCIIEncoding] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:7 - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Text]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Encoding]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[ASCIIEncoding]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Whitespace - (42:0,42) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (44:1,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 41 - (44:1,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (44:1,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (45:1,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (51:1,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [System.Text.Encoding.UTF8Encoding] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (52:1,8) - Tokens:7 - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Text]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Encoding]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[UTF8Encoding]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (85:1,41) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..85)::85 - [@custom System.Text.Encoding.ASCIIEncodingLF@custom System.Text.Encoding.UTF8Encoding] + MarkupBlock - [0..85)::85 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..44)::44 + RazorDirective - [0..44)::44 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..44)::43 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..44)::37 + CSharpStatementLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..42)::34 - [System.Text.Encoding.ASCIIEncoding] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[System]; + Dot;[.]; + Identifier;[Text]; + Dot;[.]; + Identifier;[Encoding]; + Dot;[.]; + Identifier;[ASCIIEncoding]; + MarkupEphemeralTextLiteral - [42..44)::2 - [LF] - Gen - SpanEditHandler;Accepts:Whitespace + NewLine;[LF]; + MarkupTextLiteral - [44..44)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [44..85)::41 + RazorDirective - [44..85)::41 + CSharpTransition - [44..45)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [45..85)::40 + RazorMetaCode - [45..51)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [51..85)::34 + CSharpStatementLiteral - [51..52)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [52..85)::33 - [System.Text.Encoding.UTF8Encoding] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[System]; + Dot;[.]; + Identifier;[Text]; + Dot;[.]; + Identifier;[Encoding]; + Dot;[.]; + Identifier;[UTF8Encoding]; + MarkupTextLiteral - [85..85)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherDirectives.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherDirectives.stree.txt index 50c499246..3986ba160 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherDirectives.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherDirectives.stree.txt @@ -1,33 +1,40 @@ -Markup block - Gen - 59 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 44 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [System.Text.Encoding.ASCIIEncoding] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:7 - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Text]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Encoding]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[ASCIIEncoding]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Whitespace - (42:0,42) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (44:1,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 15 - (44:1,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (44:1,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [something] - SpanEditHandler;Accepts:None - (45:1,1) - Tokens:1 - SyntaxKind.Identifier;[something]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (54:1,10) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [Else] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (55:1,11) - Tokens:1 - SyntaxKind.Identifier;[Else]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (59:1,15) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..59)::59 - [@custom System.Text.Encoding.ASCIIEncodingLF@something Else] + MarkupBlock - [0..59)::59 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..44)::44 + RazorDirective - [0..44)::44 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..44)::43 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..44)::37 + CSharpStatementLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..42)::34 - [System.Text.Encoding.ASCIIEncoding] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[System]; + Dot;[.]; + Identifier;[Text]; + Dot;[.]; + Identifier;[Encoding]; + Dot;[.]; + Identifier;[ASCIIEncoding]; + MarkupEphemeralTextLiteral - [42..44)::2 - [LF] - Gen - SpanEditHandler;Accepts:Whitespace + NewLine;[LF]; + MarkupTextLiteral - [44..44)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [44..59)::15 + RazorDirective - [44..59)::15 + CSharpTransition - [44..45)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [45..59)::14 + RazorMetaCode - [45..54)::9 - Gen - SpanEditHandler;Accepts:None + Identifier;[something]; + CSharpCodeBlock - [54..59)::5 + CSharpStatementLiteral - [54..55)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [55..59)::4 - [Else] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[Else]; + MarkupTextLiteral - [59..59)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherWhiteSpaceCommentsAndDirectives.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherWhiteSpaceCommentsAndDirectives.stree.txt index 52ce24677..9227d5824 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherWhiteSpaceCommentsAndDirectives.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_FileScoped_CanBeBeneathOtherWhiteSpaceCommentsAndDirectives.stree.txt @@ -1,66 +1,67 @@ -Markup block - Gen - 130 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Comment block - Gen - 43 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Comment span - Gen - [ There are two directives beneath this ] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1 - SyntaxKind.RazorCommentLiteral;[ There are two directives beneath this ]; - MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (41:0,41) - Tokens:1 - SyntaxKind.RazorCommentStar;[*]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (42:0,42) - Tokens:1 - SyntaxKind.RazorCommentTransition;[@]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (43:0,43) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Directive block - Gen - 44 - (45:1,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (45:1,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (46:1,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (52:1,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [System.Text.Encoding.ASCIIEncoding] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (53:1,8) - Tokens:7 - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Text]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Encoding]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[ASCIIEncoding]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Whitespace - (87:1,42) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (89:2,0) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Directive block - Gen - 17 - (91:3,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (91:3,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [something] - SpanEditHandler;Accepts:None - (92:3,1) - Tokens:1 - SyntaxKind.Identifier;[something]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (101:3,10) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [Else] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (102:3,11) - Tokens:1 - SyntaxKind.Identifier;[Else]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Whitespace - (106:3,15) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (108:4,0) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 3 - (110:5,0) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (110:5,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [This is extra] - [113..126) - FullWidth: 13 - Slots: 1 - SyntaxKind.List - [This is extra] - [113..126) - FullWidth: 13 - Slots: 5 - SyntaxKind.Text;[This]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[is]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[extra]; - Tag block - Gen - 4 - (126:5,16) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (126:5,16) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..130)::130 - [@* There are two directives beneath this *@LF@custom System.Text.Encoding.ASCIIEncodingLFLF@something ElseLFLF

        This is extra

        ] + MarkupBlock - [0..130)::130 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorComment - [0..43)::43 + RazorCommentTransition;[@]; + RazorCommentStar;[*]; + RazorCommentLiteral;[ There are two directives beneath this ]; + RazorCommentStar;[*]; + RazorCommentTransition;[@]; + MarkupTextLiteral - [43..45)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [45..89)::44 + RazorDirective - [45..89)::44 + CSharpTransition - [45..46)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [46..89)::43 + RazorMetaCode - [46..52)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [52..89)::37 + CSharpStatementLiteral - [52..53)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [53..87)::34 - [System.Text.Encoding.ASCIIEncoding] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[System]; + Dot;[.]; + Identifier;[Text]; + Dot;[.]; + Identifier;[Encoding]; + Dot;[.]; + Identifier;[ASCIIEncoding]; + MarkupEphemeralTextLiteral - [87..89)::2 - [LF] - Gen - SpanEditHandler;Accepts:Whitespace + NewLine;[LF]; + MarkupTextLiteral - [89..91)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [91..108)::17 + RazorDirective - [91..108)::17 + CSharpTransition - [91..92)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [92..108)::16 + RazorMetaCode - [92..101)::9 - Gen - SpanEditHandler;Accepts:None + Identifier;[something]; + CSharpCodeBlock - [101..108)::7 + CSharpStatementLiteral - [101..102)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [102..106)::4 - [Else] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[Else]; + MarkupEphemeralTextLiteral - [106..108)::2 - [LF] - Gen - SpanEditHandler;Accepts:Whitespace + NewLine;[LF]; + MarkupTextLiteral - [108..110)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupTagBlock - [110..113)::3 - [

        ] + MarkupTextLiteral - [110..113)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [113..126)::13 - [This is extra] - Gen - SpanEditHandler;Accepts:Any + Text;[This]; + Whitespace;[ ]; + Text;[is]; + Whitespace;[ ]; + Text;[extra]; + MarkupTagBlock - [126..130)::4 - [

        ] + MarkupTextLiteral - [126..130)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_NoErrorsSemicolonAfterDirective.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_NoErrorsSemicolonAfterDirective.stree.txt index 686fa9221..e1a67c9d7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_NoErrorsSemicolonAfterDirective.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_NoErrorsSemicolonAfterDirective.stree.txt @@ -1,20 +1,24 @@ -Markup block - Gen - 19 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 19 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["hello"] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:1 - SyntaxKind.StringLiteral;["hello"]; - None span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (15:0,15) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - MetaCode span - Gen - [;] - SpanEditHandler;Accepts:Whitespace - (16:0,16) - Tokens:1 - SyntaxKind.Semicolon;[;]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (17:0,17) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..19)::19 - [@custom "hello" ; ] + MarkupBlock - [0..19)::19 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..19)::19 + RazorDirective - [0..19)::19 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..19)::18 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..19)::12 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..15)::7 - ["hello"] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + StringLiteral;["hello"]; + UnclassifiedTextLiteral - [15..16)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + RazorMetaCode - [16..17)::1 - Gen - SpanEditHandler;Accepts:Whitespace + Semicolon;[;]; + MarkupEphemeralTextLiteral - [17..19)::2 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + MarkupTextLiteral - [19..19)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForNonStringValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForNonStringValue.stree.txt index 154f851b0..84d942c66 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForNonStringValue.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForNonStringValue.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 14 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 8 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - [{foo?}] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:3 - SyntaxKind.Text;[{foo]; - SyntaxKind.QuestionMark;[?]; - SyntaxKind.Text;[}]; +RazorDocument - [0..14)::14 - [@custom {foo?}] + MarkupBlock - [0..14)::14 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..8)::8 + RazorDirective - [0..8)::8 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..8)::7 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..8)::1 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + MarkupTextLiteral - [8..14)::6 - [{foo?}] - Gen - SpanEditHandler;Accepts:Any + Text;[{foo]; + QuestionMark;[?]; + Text;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForPartialQuotedValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForPartialQuotedValue.stree.txt index e5ebe493a..0767483d8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForPartialQuotedValue.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForPartialQuotedValue.stree.txt @@ -1,13 +1,17 @@ -Markup block - Gen - 16 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 8 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - [AString"] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:2 - SyntaxKind.Text;[AString]; - SyntaxKind.DoubleQuote;["]; +RazorDocument - [0..16)::16 - [@custom AString"] + MarkupBlock - [0..16)::16 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..8)::8 + RazorDirective - [0..8)::8 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..8)::7 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..8)::1 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + MarkupTextLiteral - [8..16)::8 - [AString"] - Gen - SpanEditHandler;Accepts:Any + Text;[AString]; + DoubleQuote;["]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForSingleQuotedValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForSingleQuotedValue.stree.txt index 32b2606e4..05fd9cb57 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForSingleQuotedValue.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForSingleQuotedValue.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 17 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 8 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - ['AString'] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:3 - SyntaxKind.SingleQuote;[']; - SyntaxKind.Text;[AString]; - SyntaxKind.SingleQuote;[']; +RazorDocument - [0..17)::17 - [@custom 'AString'] + MarkupBlock - [0..17)::17 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..8)::8 + RazorDirective - [0..8)::8 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..8)::7 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..8)::1 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + MarkupTextLiteral - [8..17)::9 - ['AString'] - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + Text;[AString]; + SingleQuote;[']; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForUnquotedValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForUnquotedValue.stree.txt index 64f9b87bb..b0e11abed 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForUnquotedValue.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_StringToken_ParserErrorForUnquotedValue.stree.txt @@ -1,12 +1,16 @@ -Markup block - Gen - 15 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 8 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - [AString] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:1 - SyntaxKind.Text;[AString]; +RazorDocument - [0..15)::15 - [@custom AString] + MarkupBlock - [0..15)::15 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..8)::8 + RazorDirective - [0..8)::8 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..8)::7 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..8)::1 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + MarkupTextLiteral - [8..15)::7 - [AString] - Gen - SpanEditHandler;Accepts:Any + Text;[AString]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_TokensMustBeSeparatedBySpace.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_TokensMustBeSeparatedBySpace.stree.txt index 337552e7e..b52e1e1e5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_TokensMustBeSeparatedBySpace.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_TokensMustBeSeparatedBySpace.stree.txt @@ -1,16 +1,20 @@ -Markup block - Gen - 26 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 17 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["string1"] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:1 - SyntaxKind.StringLiteral;["string1"]; - Markup span - Gen - ["string2"] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:3 - SyntaxKind.DoubleQuote;["]; - SyntaxKind.Text;[string2]; - SyntaxKind.DoubleQuote;["]; +RazorDocument - [0..26)::26 - [@custom "string1""string2"] + MarkupBlock - [0..26)::26 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..17)::17 + RazorDirective - [0..17)::17 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..17)::16 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..17)::10 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..17)::9 - ["string1"] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + StringLiteral;["string1"]; + MarkupTextLiteral - [17..26)::9 - ["string2"] - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + Text;[string2]; + DoubleQuote;["]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsCodeBlocks.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsCodeBlocks.stree.txt index 4f7ff6b74..c02ef4812 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsCodeBlocks.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsCodeBlocks.stree.txt @@ -1,32 +1,37 @@ -Markup block - Gen - 32 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 32 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["Name"] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:1 - SyntaxKind.StringLiteral;["Name"]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:AllWhitespace - (14:0,14) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - MetaCode span - Gen - [{] - AutoCompleteEditHandler;Accepts:None,AutoComplete:[];AtEnd - (15:0,15) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [ foo(); bar(); ] - CodeBlockEditHandler;Accepts:Any;CodeBlock - (16:0,16) - Tokens:11 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (32:0,32) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..32)::32 - [@custom "Name" { foo(); bar(); }] + MarkupBlock - [0..32)::32 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..32)::32 + RazorDirective - [0..32)::32 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..32)::31 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..32)::25 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..14)::6 - ["Name"] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + StringLiteral;["Name"]; + MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:AllWhitespace + Whitespace;[ ]; + RazorMetaCode - [15..16)::1 - Gen - AutoCompleteEditHandler;Accepts:None,AutoComplete:[];AtEnd + LeftBrace;[{]; + CSharpCodeBlock - [16..31)::15 + CSharpStatementLiteral - [16..31)::15 - [ foo(); bar(); ] - Gen - CodeBlockEditHandler;Accepts:Any;CodeBlock + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RazorMetaCode - [31..32)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [32..32)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsMemberTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsMemberTokens.stree.txt index 8c7fd5cca..0fce66b21 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsMemberTokens.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsMemberTokens.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 19 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 19 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [Some_Member] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:1 - SyntaxKind.Identifier;[Some_Member]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..19)::19 - [@custom Some_Member] + MarkupBlock - [0..19)::19 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..19)::19 + RazorDirective - [0..19)::19 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..19)::18 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..19)::12 + CSharpStatementLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..19)::11 - [Some_Member] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[Some_Member]; + MarkupTextLiteral - [19..19)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsMultipleTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsMultipleTokens.stree.txt index c42a45462..efd14d61b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsMultipleTokens.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsMultipleTokens.stree.txt @@ -1,28 +1,32 @@ -Markup block - Gen - 64 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 64 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [System.Text.Encoding.ASCIIEncoding] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:7 - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Text]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Encoding]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[ASCIIEncoding]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (42:0,42) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [Some_Member] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (43:0,43) - Tokens:1 - SyntaxKind.Identifier;[Some_Member]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (54:0,54) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["AString"] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (55:0,55) - Tokens:1 - SyntaxKind.StringLiteral;["AString"]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (64:0,64) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..64)::64 - [@custom System.Text.Encoding.ASCIIEncoding Some_Member "AString"] + MarkupBlock - [0..64)::64 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..64)::64 + RazorDirective - [0..64)::64 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..64)::63 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..64)::57 + CSharpStatementLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..42)::34 - [System.Text.Encoding.ASCIIEncoding] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[System]; + Dot;[.]; + Identifier;[Text]; + Dot;[.]; + Identifier;[Encoding]; + Dot;[.]; + Identifier;[ASCIIEncoding]; + CSharpStatementLiteral - [42..43)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [43..54)::11 - [Some_Member] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[Some_Member]; + MarkupEphemeralTextLiteral - [54..55)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [55..64)::9 - ["AString"] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + StringLiteral;["AString"]; + MarkupTextLiteral - [64..64)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsRazorBlocks.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsRazorBlocks.stree.txt index 13a0b22a6..a99691162 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsRazorBlocks.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsRazorBlocks.stree.txt @@ -1,43 +1,46 @@ -Markup block - Gen - 33 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 33 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["Header"] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:1 - SyntaxKind.StringLiteral;["Header"]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:AllWhitespace - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - MetaCode span - Gen - [{] - AutoCompleteEditHandler;Accepts:None,AutoComplete:[];AtEnd - (17:0,17) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 14 - (18:0,18) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 3 - (19:0,19) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [F{o}o] - [22..27) - FullWidth: 5 - Slots: 1 - SyntaxKind.List - [F{o}o] - [22..27) - FullWidth: 5 - Slots: 5 - SyntaxKind.Text;[F]; - SyntaxKind.Text;[{]; - SyntaxKind.Text;[o]; - SyntaxKind.Text;[}]; - SyntaxKind.Text;[o]; - Tag block - Gen - 4 - (27:0,27) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (32:0,32) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (33:0,33) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..33)::33 - [@custom "Header" {

        F{o}o

        }] + MarkupBlock - [0..33)::33 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..33)::33 + RazorDirective - [0..33)::33 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..33)::32 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..33)::26 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..16)::8 - ["Header"] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + StringLiteral;["Header"]; + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:AllWhitespace + Whitespace;[ ]; + RazorMetaCode - [17..18)::1 - Gen - AutoCompleteEditHandler;Accepts:None,AutoComplete:[];AtEnd + LeftBrace;[{]; + MarkupBlock - [18..32)::14 + MarkupTextLiteral - [18..19)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [19..22)::3 - [

        ] + MarkupTextLiteral - [19..22)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [22..27)::5 - [F{o}o] - Gen - SpanEditHandler;Accepts:Any + Text;[F]; + Text;[{]; + Text;[o]; + Text;[}]; + Text;[o]; + MarkupTagBlock - [27..31)::4 - [

        ] + MarkupTextLiteral - [27..31)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [31..32)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RazorMetaCode - [32..33)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [33..33)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsStringTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsStringTokens.stree.txt index bef10a81c..6e20f9a78 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsStringTokens.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsStringTokens.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 17 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 17 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["AString"] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:1 - SyntaxKind.StringLiteral;["AString"]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..17)::17 - [@custom "AString"] + MarkupBlock - [0..17)::17 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..17)::17 + RazorDirective - [0..17)::17 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..17)::16 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..17)::10 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..17)::9 - ["AString"] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + StringLiteral;["AString"]; + MarkupTextLiteral - [17..17)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsTypeTokens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsTypeTokens.stree.txt index 0947eb9d4..d35c7daab 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsTypeTokens.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/DirectiveDescriptor_UnderstandsTypeTokens.stree.txt @@ -1,20 +1,24 @@ -Markup block - Gen - 42 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 42 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [System.Text.Encoding.ASCIIEncoding] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:7 - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Text]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Encoding]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[ASCIIEncoding]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (42:0,42) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..42)::42 - [@custom System.Text.Encoding.ASCIIEncoding] + MarkupBlock - [0..42)::42 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..42)::42 + RazorDirective - [0..42)::42 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..42)::41 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..42)::35 + CSharpStatementLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..42)::34 - [System.Text.Encoding.ASCIIEncoding] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[System]; + Dot;[.]; + Identifier;[Text]; + Dot;[.]; + Identifier;[Encoding]; + Dot;[.]; + Identifier;[ASCIIEncoding]; + MarkupTextLiteral - [42..42)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Directives_CanUseReservedWord_Class.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Directives_CanUseReservedWord_Class.stree.txt index 5c945ea75..074e73873 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Directives_CanUseReservedWord_Class.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Directives_CanUseReservedWord_Class.stree.txt @@ -1,10 +1,14 @@ -Markup block - Gen - 6 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 6 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [class] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Keyword;[class]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (6:0,6) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..6)::6 - [@class] + MarkupBlock - [0..6)::6 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..6)::6 + RazorDirective - [0..6)::6 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..6)::5 + RazorMetaCode - [1..6)::5 - Gen - SpanEditHandler;Accepts:None + Keyword;[class]; + CSharpCodeBlock - [6..6)::0 + MarkupTextLiteral - [6..6)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Directives_CanUseReservedWord_Namespace.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Directives_CanUseReservedWord_Namespace.stree.txt index 83ae36a2e..693eda73c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Directives_CanUseReservedWord_Namespace.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Directives_CanUseReservedWord_Namespace.stree.txt @@ -1,10 +1,14 @@ -Markup block - Gen - 10 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 10 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [namespace] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Keyword;[namespace]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..10)::10 - [@namespace] + MarkupBlock - [0..10)::10 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..10)::10 + RazorDirective - [0..10)::10 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..10)::9 + RazorMetaCode - [1..10)::9 - Gen - SpanEditHandler;Accepts:None + Keyword;[namespace]; + CSharpCodeBlock - [10..10)::0 + MarkupTextLiteral - [10..10)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/EmptyFunctionsDirective.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/EmptyFunctionsDirective.stree.txt index b35ade0d6..fe70c1e7f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/EmptyFunctionsDirective.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/EmptyFunctionsDirective.stree.txt @@ -1,18 +1,23 @@ -Markup block - Gen - 14 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 14 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [functions] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[functions]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:AllWhitespace - (10:0,10) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - MetaCode span - Gen - [{] - AutoCompleteEditHandler;Accepts:None,AutoComplete:[];AtEnd - (11:0,11) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [ ] - CodeBlockEditHandler;Accepts:Any;CodeBlock - (12:0,12) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (13:0,13) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..14)::14 - [@functions { }] + MarkupBlock - [0..14)::14 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..14)::14 + RazorDirective - [0..14)::14 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..14)::13 + RazorMetaCode - [1..10)::9 - Gen - SpanEditHandler;Accepts:None + Identifier;[functions]; + CSharpCodeBlock - [10..14)::4 + MarkupTextLiteral - [10..11)::1 - [ ] - Gen - SpanEditHandler;Accepts:AllWhitespace + Whitespace;[ ]; + RazorMetaCode - [11..12)::1 - Gen - AutoCompleteEditHandler;Accepts:None,AutoComplete:[];AtEnd + LeftBrace;[{]; + CSharpCodeBlock - [12..13)::1 + CSharpStatementLiteral - [12..13)::1 - [ ] - Gen - CodeBlockEditHandler;Accepts:Any;CodeBlock + Whitespace;[ ]; + RazorMetaCode - [13..14)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [14..14)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt index 212cedc07..80b5cd9e1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.cspans.txt @@ -1,7 +1,7 @@ Markup span at (0:0,0 [2] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [46] ) -Code span at (2:1,0 [2] ) (Accepts:Any) - Parent: Directive block at (2:1,0 [44] ) -Transition span at (4:1,2 [1] ) (Accepts:None) - Parent: Directive block at (2:1,0 [44] ) -MetaCode span at (5:1,3 [6] ) (Accepts:None) - Parent: Directive block at (2:1,0 [44] ) -Code span at (11:1,9 [1] ) (Accepts:Whitespace) - Parent: Directive block at (2:1,0 [44] ) -Code span at (12:1,10 [34] ) (Accepts:NonWhitespace) - Parent: Directive block at (2:1,0 [44] ) +Code span at (2:1,0 [2] ) (Accepts:Any) - Parent: Statement block at (2:1,0 [44] ) +Transition span at (4:1,2 [1] ) (Accepts:None) - Parent: Directive block at (4:1,2 [42] ) +MetaCode span at (5:1,3 [6] ) (Accepts:None) - Parent: Directive block at (4:1,2 [42] ) +Code span at (11:1,9 [1] ) (Accepts:Whitespace) - Parent: Directive block at (4:1,2 [42] ) +Code span at (12:1,10 [34] ) (Accepts:NonWhitespace) - Parent: Directive block at (4:1,2 [42] ) Markup span at (46:1,44 [0] ) (Accepts:Any) - Parent: Markup block at (0:0,0 [46] ) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt index 9800bcc8f..691ed9041 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveDoesNotErorrIfNotAtStartOfLineBecauseOfWhitespace.stree.txt @@ -1,22 +1,26 @@ -Markup block - Gen - 46 - (0:0,0) - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Directive block - Gen - 44 - (2:1,0) - Code span - Gen - [ ] - SpanEditHandler;Accepts:Any - (2:1,0) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (4:1,2) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (5:1,3) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (11:1,9) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [System.Text.Encoding.ASCIIEncoding] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (12:1,10) - Tokens:7 - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Text]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Encoding]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[ASCIIEncoding]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (46:1,44) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..46)::46 - [LF @custom System.Text.Encoding.ASCIIEncoding] + MarkupBlock - [0..46)::46 + MarkupTextLiteral - [0..2)::2 - [LF] - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + CSharpCodeBlock - [2..46)::44 + CSharpStatementLiteral - [2..4)::2 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RazorDirective - [4..46)::42 + CSharpTransition - [4..5)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [5..46)::41 + RazorMetaCode - [5..11)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [11..46)::35 + CSharpStatementLiteral - [11..12)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [12..46)::34 - [System.Text.Encoding.ASCIIEncoding] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[System]; + Dot;[.]; + Identifier;[Text]; + Dot;[.]; + Identifier;[Encoding]; + Dot;[.]; + Identifier;[ASCIIEncoding]; + MarkupTextLiteral - [46..46)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveErrorsIfNotAtStartOfLine.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveErrorsIfNotAtStartOfLine.stree.txt index 0921a9be4..31dcda995 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveErrorsIfNotAtStartOfLine.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/ExtensibleDirectiveErrorsIfNotAtStartOfLine.stree.txt @@ -1,23 +1,27 @@ -Markup block - Gen - 48 - (0:0,0) - Markup span - Gen - [{ ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:2 - SyntaxKind.Text;[{]; - SyntaxKind.Whitespace;[ ]; - Directive block - Gen - 44 - (3:0,3) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (10:0,10) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [System.Text.Encoding.ASCIIEncoding] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (11:0,11) - Tokens:7 - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Text]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Encoding]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[ASCIIEncoding]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Whitespace - (45:0,45) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (47:1,0) - Tokens:1 - SyntaxKind.Text;[}]; +RazorDocument - [0..48)::48 - [{ @custom System.Text.Encoding.ASCIIEncodingLF}] + MarkupBlock - [0..48)::48 + MarkupTextLiteral - [0..3)::3 - [{ ] - Gen - SpanEditHandler;Accepts:Any + Text;[{]; + Whitespace;[ ]; + CSharpCodeBlock - [3..47)::44 + RazorDirective - [3..47)::44 + CSharpTransition - [3..4)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [4..47)::43 + RazorMetaCode - [4..10)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [10..47)::37 + CSharpStatementLiteral - [10..11)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [11..45)::34 - [System.Text.Encoding.ASCIIEncoding] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[System]; + Dot;[.]; + Identifier;[Text]; + Dot;[.]; + Identifier;[Encoding]; + Dot;[.]; + Identifier;[ASCIIEncoding]; + MarkupEphemeralTextLiteral - [45..47)::2 - [LF] - Gen - SpanEditHandler;Accepts:Whitespace + NewLine;[LF]; + MarkupTextLiteral - [47..48)::1 - [}] - Gen - SpanEditHandler;Accepts:Any + Text;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsArrays.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsArrays.stree.txt index cb7c610d0..23a6ec42b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsArrays.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsArrays.stree.txt @@ -1,20 +1,24 @@ -Markup block - Gen - 22 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 22 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [inherits] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[inherits]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (9:0,9) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [string[[]][]] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (10:0,10) - Tokens:7 - SyntaxKind.Keyword;[string]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.RightBracket;[]]; - SyntaxKind.LeftBracket;[[]; - SyntaxKind.RightBracket;[]]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..22)::22 - [@inherits string[[]][]] + MarkupBlock - [0..22)::22 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..22)::22 + RazorDirective - [0..22)::22 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..22)::21 + RazorMetaCode - [1..9)::8 - Gen - SpanEditHandler;Accepts:None + Identifier;[inherits]; + CSharpCodeBlock - [9..22)::13 + CSharpStatementLiteral - [9..10)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [10..22)::12 - [string[[]][]] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Keyword;[string]; + LeftBracket;[[]; + LeftBracket;[[]; + RightBracket;[]]; + RightBracket;[]]; + LeftBracket;[[]; + RightBracket;[]]; + MarkupTextLiteral - [22..22)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsNestedGenerics.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsNestedGenerics.stree.txt index 9a883699e..740b68370 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsNestedGenerics.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsNestedGenerics.stree.txt @@ -1,30 +1,34 @@ -Markup block - Gen - 87 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 87 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [inherits] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[inherits]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (9:0,9) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [System.Web.Mvc.WebViewPage>] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (10:0,10) - Tokens:17 - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Web]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Mvc]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[WebViewPage]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Identifier;[IEnumerable]; - SyntaxKind.LessThan;[<]; - SyntaxKind.Identifier;[MvcApplication2]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Models]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[RegisterModel]; - SyntaxKind.GreaterThan;[>]; - SyntaxKind.GreaterThan;[>]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (87:0,87) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..87)::87 - [@inherits System.Web.Mvc.WebViewPage>] + MarkupBlock - [0..87)::87 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..87)::87 + RazorDirective - [0..87)::87 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..87)::86 + RazorMetaCode - [1..9)::8 - Gen - SpanEditHandler;Accepts:None + Identifier;[inherits]; + CSharpCodeBlock - [9..87)::78 + CSharpStatementLiteral - [9..10)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [10..87)::77 - [System.Web.Mvc.WebViewPage>] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[System]; + Dot;[.]; + Identifier;[Web]; + Dot;[.]; + Identifier;[Mvc]; + Dot;[.]; + Identifier;[WebViewPage]; + LessThan;[<]; + Identifier;[IEnumerable]; + LessThan;[<]; + Identifier;[MvcApplication2]; + Dot;[.]; + Identifier;[Models]; + Dot;[.]; + Identifier;[RegisterModel]; + GreaterThan;[>]; + GreaterThan;[>]; + MarkupTextLiteral - [87..87)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsTypeKeywords.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsTypeKeywords.stree.txt index 5a7bc55b5..8a0e9d307 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsTypeKeywords.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/InheritsDirectiveSupportsTypeKeywords.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 16 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 16 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [inherits] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[inherits]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (9:0,9) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [string] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (10:0,10) - Tokens:1 - SyntaxKind.Keyword;[string]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..16)::16 - [@inherits string] + MarkupBlock - [0..16)::16 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..16)::16 + RazorDirective - [0..16)::16 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..16)::15 + RazorMetaCode - [1..9)::8 - Gen - SpanEditHandler;Accepts:None + Identifier;[inherits]; + CSharpCodeBlock - [9..16)::7 + CSharpStatementLiteral - [9..10)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [10..16)::6 - [string] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Keyword;[string]; + MarkupTextLiteral - [16..16)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_AreSkipped.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_AreSkipped.stree.txt index 937267a11..c4aaa82fd 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_AreSkipped.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_AreSkipped.stree.txt @@ -1,12 +1,16 @@ -Markup block - Gen - 8 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 8 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..8)::8 - [@custom ] + MarkupBlock - [0..8)::8 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..8)::8 + RazorDirective - [0..8)::8 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..8)::7 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..8)::1 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + MarkupTextLiteral - [8..8)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithBraces_AreParsed.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithBraces_AreParsed.stree.txt index a08f88a74..9903cbeda 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithBraces_AreParsed.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithBraces_AreParsed.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 29 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 29 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["{formaction}?/{id}?"] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:1 - SyntaxKind.StringLiteral;["{formaction}?/{id}?"]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (29:0,29) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..29)::29 - [@custom "{formaction}?/{id}?"] + MarkupBlock - [0..29)::29 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..29)::29 + RazorDirective - [0..29)::29 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..29)::28 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..29)::22 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..29)::21 - ["{formaction}?/{id}?"] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + StringLiteral;["{formaction}?/{id}?"]; + MarkupTextLiteral - [29..29)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithMultipleOptionalTokens_AreParsed.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithMultipleOptionalTokens_AreParsed.stree.txt index 7cb6d46f4..8f8fbf977 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithMultipleOptionalTokens_AreParsed.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithMultipleOptionalTokens_AreParsed.stree.txt @@ -1,20 +1,24 @@ -Markup block - Gen - 43 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 43 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["{formaction}?/{id}?"] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:1 - SyntaxKind.StringLiteral;["{formaction}?/{id}?"]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (29:0,29) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [System.String] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (30:0,30) - Tokens:3 - SyntaxKind.Identifier;[System]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[String]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (43:0,43) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..43)::43 - [@custom "{formaction}?/{id}?" System.String] + MarkupBlock - [0..43)::43 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..43)::43 + RazorDirective - [0..43)::43 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..43)::42 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..43)::36 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..29)::21 - ["{formaction}?/{id}?"] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + StringLiteral;["{formaction}?/{id}?"]; + CSharpStatementLiteral - [29..30)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [30..43)::13 - [System.String] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[System]; + Dot;[.]; + Identifier;[String]; + MarkupTextLiteral - [43..43)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithSimpleTokens_AreParsed.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithSimpleTokens_AreParsed.stree.txt index 2709d6336..9f2cc69ca 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithSimpleTokens_AreParsed.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalDirectiveTokens_WithSimpleTokens_AreParsed.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 22 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 22 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["simple-value"] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:1 - SyntaxKind.StringLiteral;["simple-value"]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..22)::22 - [@custom "simple-value"] + MarkupBlock - [0..22)::22 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..22)::22 + RazorDirective - [0..22)::22 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..22)::21 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..22)::15 + MarkupEphemeralTextLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..22)::14 - ["simple-value"] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + StringLiteral;["simple-value"]; + MarkupTextLiteral - [22..22)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalMemberTokens_WithMemberSpecified_IsParsed.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalMemberTokens_WithMemberSpecified_IsParsed.stree.txt index f9f4020e3..706c08ef7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalMemberTokens_WithMemberSpecified_IsParsed.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalMemberTokens_WithMemberSpecified_IsParsed.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 27 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 27 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [TestDirective] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[TestDirective]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (14:0,14) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [PropertyName] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (15:0,15) - Tokens:1 - SyntaxKind.Identifier;[PropertyName]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..27)::27 - [@TestDirective PropertyName] + MarkupBlock - [0..27)::27 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..27)::27 + RazorDirective - [0..27)::27 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..27)::26 + RazorMetaCode - [1..14)::13 - Gen - SpanEditHandler;Accepts:None + Identifier;[TestDirective]; + CSharpCodeBlock - [14..27)::13 + CSharpStatementLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [15..27)::12 - [PropertyName] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[PropertyName]; + MarkupTextLiteral - [27..27)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalMemberTokens_WithMissingMember_IsParsed.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalMemberTokens_WithMissingMember_IsParsed.stree.txt index e7a4614bd..b77cf3774 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalMemberTokens_WithMissingMember_IsParsed.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/OptionalMemberTokens_WithMissingMember_IsParsed.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 15 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 15 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [TestDirective] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[TestDirective]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (14:0,14) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (15:0,15) - Tokens:1 - SyntaxKind.Unknown;[]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..15)::15 - [@TestDirective ] + MarkupBlock - [0..15)::15 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..15)::15 + RazorDirective - [0..15)::15 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..15)::14 + RazorMetaCode - [1..14)::13 - Gen - SpanEditHandler;Accepts:None + Identifier;[TestDirective]; + CSharpCodeBlock - [14..15)::1 + CSharpStatementLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [15..15)::0 - [] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Marker;[]; + MarkupTextLiteral - [15..15)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parse_FunctionsDirective.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parse_FunctionsDirective.stree.txt index d6b8dce29..67c1ec8de 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parse_FunctionsDirective.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parse_FunctionsDirective.stree.txt @@ -1,28 +1,33 @@ -Markup block - Gen - 28 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 28 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [functions] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[functions]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:AllWhitespace - (10:0,10) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - MetaCode span - Gen - [{] - AutoCompleteEditHandler;Accepts:None,AutoComplete:[];AtEnd - (11:0,11) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Code span - Gen - [ foo(); bar(); ] - CodeBlockEditHandler;Accepts:Any;CodeBlock - (12:0,12) - Tokens:11 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[foo]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[bar]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Semicolon;[;]; - SyntaxKind.Whitespace;[ ]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (27:0,27) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (28:0,28) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..28)::28 - [@functions { foo(); bar(); }] + MarkupBlock - [0..28)::28 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..28)::28 + RazorDirective - [0..28)::28 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..28)::27 + RazorMetaCode - [1..10)::9 - Gen - SpanEditHandler;Accepts:None + Identifier;[functions]; + CSharpCodeBlock - [10..28)::18 + MarkupTextLiteral - [10..11)::1 - [ ] - Gen - SpanEditHandler;Accepts:AllWhitespace + Whitespace;[ ]; + RazorMetaCode - [11..12)::1 - Gen - AutoCompleteEditHandler;Accepts:None,AutoComplete:[];AtEnd + LeftBrace;[{]; + CSharpCodeBlock - [12..27)::15 + CSharpStatementLiteral - [12..27)::15 - [ foo(); bar(); ] - Gen - CodeBlockEditHandler;Accepts:Any;CodeBlock + Whitespace;[ ]; + Identifier;[foo]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + Identifier;[bar]; + LeftParenthesis;[(]; + RightParenthesis;[)]; + Semicolon;[;]; + Whitespace;[ ]; + RazorMetaCode - [27..28)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [28..28)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parse_SectionDirective.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parse_SectionDirective.stree.txt index 3a6b35cf2..4a9687ae8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parse_SectionDirective.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parse_SectionDirective.stree.txt @@ -1,43 +1,46 @@ -Markup block - Gen - 32 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 32 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [section] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[section]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (8:0,8) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [Header] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (9:0,9) - Tokens:1 - SyntaxKind.Identifier;[Header]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:AllWhitespace - (15:0,15) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - MetaCode span - Gen - [{] - AutoCompleteEditHandler;Accepts:None,AutoComplete:[];AtEnd - (16:0,16) - Tokens:1 - SyntaxKind.LeftBrace;[{]; - Markup block - Gen - 14 - (17:0,17) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 3 - (18:0,18) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [F{o}o] - [21..26) - FullWidth: 5 - Slots: 1 - SyntaxKind.List - [F{o}o] - [21..26) - FullWidth: 5 - Slots: 5 - SyntaxKind.Text;[F]; - SyntaxKind.Text;[{]; - SyntaxKind.Text;[o]; - SyntaxKind.Text;[}]; - SyntaxKind.Text;[o]; - Tag block - Gen - 4 - (26:0,26) - Markup span - Gen - [

        ] - SpanEditHandler;Accepts:Any - (26:0,26) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (32:0,32) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..32)::32 - [@section Header {

        F{o}o

        }] + MarkupBlock - [0..32)::32 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..32)::32 + RazorDirective - [0..32)::32 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..32)::31 + RazorMetaCode - [1..8)::7 - Gen - SpanEditHandler;Accepts:None + Identifier;[section]; + CSharpCodeBlock - [8..32)::24 + CSharpStatementLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [9..15)::6 - [Header] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[Header]; + MarkupTextLiteral - [15..16)::1 - [ ] - Gen - SpanEditHandler;Accepts:AllWhitespace + Whitespace;[ ]; + RazorMetaCode - [16..17)::1 - Gen - AutoCompleteEditHandler;Accepts:None,AutoComplete:[];AtEnd + LeftBrace;[{]; + MarkupBlock - [17..31)::14 + MarkupTextLiteral - [17..18)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [18..21)::3 - [

        ] + MarkupTextLiteral - [18..21)::3 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [21..26)::5 - [F{o}o] - Gen - SpanEditHandler;Accepts:Any + Text;[F]; + Text;[{]; + Text;[o]; + Text;[}]; + Text;[o]; + MarkupTagBlock - [26..30)::4 - [

        ] + MarkupTextLiteral - [26..30)::4 - [

        ] - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [30..31)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + RazorMetaCode - [31..32)::1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [32..32)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithMultipleSegments.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithMultipleSegments.stree.txt index 0585c3609..1573ba8b6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithMultipleSegments.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithMultipleSegments.stree.txt @@ -1,18 +1,22 @@ -Markup block - Gen - 29 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 29 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [BaseNamespace.Foo.Bar] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:5 - SyntaxKind.Identifier;[BaseNamespace]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Bar]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (29:0,29) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..29)::29 - [@custom BaseNamespace.Foo.Bar] + MarkupBlock - [0..29)::29 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..29)::29 + RazorDirective - [0..29)::29 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..29)::28 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..29)::22 + CSharpStatementLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..29)::21 - [BaseNamespace.Foo.Bar] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[BaseNamespace]; + Dot;[.]; + Identifier;[Foo]; + Dot;[.]; + Identifier;[Bar]; + MarkupTextLiteral - [29..29)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithSingleSegment.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithSingleSegment.stree.txt index 446919afd..ec222fc56 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithSingleSegment.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/Parser_ParsesNamespaceDirectiveToken_WithSingleSegment.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 21 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 21 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[custom]; - Code span - Gen - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [BaseNamespace] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:1 - SyntaxKind.Identifier;[BaseNamespace]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..21)::21 - [@custom BaseNamespace] + MarkupBlock - [0..21)::21 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..21)::21 + RazorDirective - [0..21)::21 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..21)::20 + RazorMetaCode - [1..7)::6 - Gen - SpanEditHandler;Accepts:None + Identifier;[custom]; + CSharpCodeBlock - [7..21)::14 + CSharpStatementLiteral - [7..8)::1 - [ ] - Gen - SpanEditHandler;Accepts:Whitespace + Whitespace;[ ]; + CSharpStatementLiteral - [8..21)::13 - [BaseNamespace] - Gen - DirectiveTokenEditHandler;Accepts:NonWhitespace + Identifier;[BaseNamespace]; + MarkupTextLiteral - [21..21)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt index 8391cb3f4..9ea983ad5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt @@ -1,15 +1,19 @@ -Markup block - Gen - 21 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 21 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [removeTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[removeTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [Foo"] - SpanEditHandler;Accepts:AnyExceptNewline - (17:0,17) - Tokens:2 - SyntaxKind.Identifier;[Foo]; - SyntaxKind.StringLiteral;["];RZ1000(20:0,20 [1] ) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..21)::21 - [@removeTagHelper Foo"] + MarkupBlock - [0..21)::21 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..21)::21 + RazorDirective - [0..21)::21 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..21)::20 + RazorMetaCode - [1..16)::15 - Gen - SpanEditHandler;Accepts:None + Identifier;[removeTagHelper]; + CSharpCodeBlock - [16..21)::5 + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [17..21)::4 - [Foo"] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Identifier;[Foo]; + StringLiteral;["];RZ1000(20:0,20 [1] ) + MarkupTextLiteral - [21..21)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_InvalidLookupText_AddsError.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_InvalidLookupText_AddsError.stree.txt index c30421dcd..6ca3c0b46 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_InvalidLookupText_AddsError.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_InvalidLookupText_AddsError.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 20 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 20 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [removeTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[removeTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [Foo] - SpanEditHandler;Accepts:AnyExceptNewline - (17:0,17) - Tokens:1 - SyntaxKind.Identifier;[Foo]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..20)::20 - [@removeTagHelper Foo] + MarkupBlock - [0..20)::20 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..20)::20 + RazorDirective - [0..20)::20 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..20)::19 + RazorMetaCode - [1..16)::15 - Gen - SpanEditHandler;Accepts:None + Identifier;[removeTagHelper]; + CSharpCodeBlock - [16..20)::4 + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [17..20)::3 - [Foo] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Identifier;[Foo]; + MarkupTextLiteral - [20..20)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_NoValue_Invalid.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_NoValue_Invalid.stree.txt index 4d2ecdf2a..1fcd5587a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_NoValue_Invalid.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_NoValue_Invalid.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 19 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 19 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [removeTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[removeTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [""] - SpanEditHandler;Accepts:AnyExceptNewline - (17:0,17) - Tokens:1 - SyntaxKind.StringLiteral;[""]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..19)::19 - [@removeTagHelper ""] + MarkupBlock - [0..19)::19 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..19)::19 + RazorDirective - [0..19)::19 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..19)::18 + RazorMetaCode - [1..16)::15 - Gen - SpanEditHandler;Accepts:None + Identifier;[removeTagHelper]; + CSharpCodeBlock - [16..19)::3 + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [17..19)::2 - [""] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + StringLiteral;[""]; + MarkupTextLiteral - [19..19)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_RequiresValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_RequiresValue.stree.txt index b0b7c8cd3..20a0666a0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_RequiresValue.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_RequiresValue.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 17 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 17 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [removeTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[removeTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [] - SpanEditHandler;Accepts:AnyExceptNewline - (17:0,17) - Tokens:1 - SyntaxKind.Unknown;[]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..17)::17 - [@removeTagHelper ] + MarkupBlock - [0..17)::17 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..17)::17 + RazorDirective - [0..17)::17 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..17)::16 + RazorMetaCode - [1..16)::15 - Gen - SpanEditHandler;Accepts:None + Identifier;[removeTagHelper]; + CSharpCodeBlock - [16..17)::1 + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [17..17)::0 - [] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Marker;[]; + MarkupTextLiteral - [17..17)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_SingleQuotes_AddsError.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_SingleQuotes_AddsError.stree.txt index edc2c98e6..7584b6d08 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_SingleQuotes_AddsError.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_SingleQuotes_AddsError.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 25 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 25 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [removeTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[removeTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ['*, Foo'] - SpanEditHandler;Accepts:AnyExceptNewline - (17:0,17) - Tokens:1 - SyntaxKind.CharacterLiteral;['*, Foo']; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..25)::25 - [@removeTagHelper '*, Foo'] + MarkupBlock - [0..25)::25 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..25)::25 + RazorDirective - [0..25)::25 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..25)::24 + RazorMetaCode - [1..16)::15 - Gen - SpanEditHandler;Accepts:None + Identifier;[removeTagHelper]; + CSharpCodeBlock - [16..25)::9 + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [17..25)::8 - ['*, Foo'] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + CharacterLiteral;['*, Foo']; + MarkupTextLiteral - [25..25)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt index 870c348af..41c54a8e5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 21 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 21 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [removeTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[removeTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["Foo] - SpanEditHandler;Accepts:AnyExceptNewline - (17:0,17) - Tokens:1 - SyntaxKind.StringLiteral;["Foo];RZ1000(17:0,17 [1] ) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..21)::21 - [@removeTagHelper "Foo] + MarkupBlock - [0..21)::21 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..21)::21 + RazorDirective - [0..21)::21 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..21)::20 + RazorMetaCode - [1..16)::15 - Gen - SpanEditHandler;Accepts:None + Identifier;[removeTagHelper]; + CSharpCodeBlock - [16..21)::5 + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [17..21)::4 - ["Foo] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + StringLiteral;["Foo];RZ1000(17:0,17 [1] ) + MarkupTextLiteral - [21..21)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_SupportsSpaces.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_SupportsSpaces.stree.txt index fe72198ba..e3062d189 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_SupportsSpaces.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_SupportsSpaces.stree.txt @@ -1,18 +1,22 @@ -Markup block - Gen - 35 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 35 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [removeTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[removeTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [Foo, Bar ] - SpanEditHandler;Accepts:AnyExceptNewline - (21:0,21) - Tokens:5 - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Identifier;[Bar]; - SyntaxKind.Whitespace;[ ]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (35:0,35) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..35)::35 - [@removeTagHelper Foo, Bar ] + MarkupBlock - [0..35)::35 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..35)::35 + RazorDirective - [0..35)::35 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..35)::34 + RazorMetaCode - [1..16)::15 - Gen - SpanEditHandler;Accepts:None + Identifier;[removeTagHelper]; + CSharpCodeBlock - [16..35)::19 + MarkupTextLiteral - [16..21)::5 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [21..35)::14 - [Foo, Bar ] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Identifier;[Foo]; + Comma;[,]; + Whitespace;[ ]; + Identifier;[Bar]; + Whitespace;[ ]; + MarkupTextLiteral - [35..35)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt index 1f0666df2..92659f076 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/RemoveTagHelperDirective_WithQuotes_InvalidLookupText_AddsError.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 22 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 22 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [removeTagHelper] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[removeTagHelper]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["Foo"] - SpanEditHandler;Accepts:AnyExceptNewline - (17:0,17) - Tokens:1 - SyntaxKind.StringLiteral;["Foo"]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..22)::22 - [@removeTagHelper "Foo"] + MarkupBlock - [0..22)::22 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..22)::22 + RazorDirective - [0..22)::22 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..22)::21 + RazorMetaCode - [1..16)::15 - Gen - SpanEditHandler;Accepts:None + Identifier;[removeTagHelper]; + CSharpCodeBlock - [16..22)::6 + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [17..22)::5 - ["Foo"] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + StringLiteral;["Foo"]; + MarkupTextLiteral - [22..22)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt index 2dbb3eb56..757c8c81f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_EndQuoteRequiresDoubleQuotesAroundValue.stree.txt @@ -1,16 +1,20 @@ -Markup block - Gen - 24 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 24 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [tagHelperPrefix] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[tagHelperPrefix]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [Foo "] - SpanEditHandler;Accepts:AnyExceptNewline - (17:0,17) - Tokens:3 - SyntaxKind.Identifier;[Foo]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.StringLiteral;["];RZ1000(23:0,23 [1] ) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..24)::24 - [@tagHelperPrefix Foo "] + MarkupBlock - [0..24)::24 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..24)::24 + RazorDirective - [0..24)::24 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..24)::23 + RazorMetaCode - [1..16)::15 - Gen - SpanEditHandler;Accepts:None + Identifier;[tagHelperPrefix]; + CSharpCodeBlock - [16..24)::8 + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [17..24)::7 - [Foo "] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Identifier;[Foo]; + Whitespace;[ ]; + StringLiteral;["];RZ1000(23:0,23 [1] ) + MarkupTextLiteral - [24..24)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_NoValueSucceeds.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_NoValueSucceeds.stree.txt index d7a2dd3c6..ee06179c7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_NoValueSucceeds.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_NoValueSucceeds.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 19 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 19 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [tagHelperPrefix] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[tagHelperPrefix]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [""] - SpanEditHandler;Accepts:AnyExceptNewline - (17:0,17) - Tokens:1 - SyntaxKind.StringLiteral;[""]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..19)::19 - [@tagHelperPrefix ""] + MarkupBlock - [0..19)::19 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..19)::19 + RazorDirective - [0..19)::19 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..19)::18 + RazorMetaCode - [1..16)::15 - Gen - SpanEditHandler;Accepts:None + Identifier;[tagHelperPrefix]; + CSharpCodeBlock - [16..19)::3 + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [17..19)::2 - [""] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + StringLiteral;[""]; + MarkupTextLiteral - [19..19)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_RequiresValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_RequiresValue.stree.txt index b47f0135f..0e86bb2dc 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_RequiresValue.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_RequiresValue.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 17 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 17 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [tagHelperPrefix] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[tagHelperPrefix]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [] - SpanEditHandler;Accepts:AnyExceptNewline - (17:0,17) - Tokens:1 - SyntaxKind.Unknown;[]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..17)::17 - [@tagHelperPrefix ] + MarkupBlock - [0..17)::17 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..17)::17 + RazorDirective - [0..17)::17 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..17)::16 + RazorMetaCode - [1..16)::15 - Gen - SpanEditHandler;Accepts:None + Identifier;[tagHelperPrefix]; + CSharpCodeBlock - [16..17)::1 + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [17..17)::0 - [] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Marker;[]; + MarkupTextLiteral - [17..17)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt index ad7e95ee8..3e26d675c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_StartQuoteRequiresDoubleQuotesAroundValue.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 21 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 21 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [tagHelperPrefix] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[tagHelperPrefix]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["Foo] - SpanEditHandler;Accepts:AnyExceptNewline - (17:0,17) - Tokens:1 - SyntaxKind.StringLiteral;["Foo];RZ1000(17:0,17 [1] ) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..21)::21 - [@tagHelperPrefix "Foo] + MarkupBlock - [0..21)::21 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..21)::21 + RazorDirective - [0..21)::21 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..21)::20 + RazorMetaCode - [1..16)::15 - Gen - SpanEditHandler;Accepts:None + Identifier;[tagHelperPrefix]; + CSharpCodeBlock - [16..21)::5 + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [17..21)::4 - ["Foo] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + StringLiteral;["Foo];RZ1000(17:0,17 [1] ) + MarkupTextLiteral - [21..21)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_Succeeds.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_Succeeds.stree.txt index 8f4da6020..8b875e285 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_Succeeds.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_Succeeds.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 20 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 20 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [tagHelperPrefix] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[tagHelperPrefix]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [Foo] - SpanEditHandler;Accepts:AnyExceptNewline - (17:0,17) - Tokens:1 - SyntaxKind.Identifier;[Foo]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..20)::20 - [@tagHelperPrefix Foo] + MarkupBlock - [0..20)::20 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..20)::20 + RazorDirective - [0..20)::20 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..20)::19 + RazorMetaCode - [1..16)::15 - Gen - SpanEditHandler;Accepts:None + Identifier;[tagHelperPrefix]; + CSharpCodeBlock - [16..20)::4 + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [17..20)::3 - [Foo] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + Identifier;[Foo]; + MarkupTextLiteral - [20..20)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_WithQuotes_Succeeds.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_WithQuotes_Succeeds.stree.txt index 997e4fb95..1bbaa5ea0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_WithQuotes_Succeeds.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/RazorDirectivesTest/TagHelperPrefixDirective_WithQuotes_Succeeds.stree.txt @@ -1,14 +1,18 @@ -Markup block - Gen - 22 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Directive block - Gen - 22 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - MetaCode span - Gen - [tagHelperPrefix] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[tagHelperPrefix]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - ["Foo"] - SpanEditHandler;Accepts:AnyExceptNewline - (17:0,17) - Tokens:1 - SyntaxKind.StringLiteral;["Foo"]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..22)::22 - [@tagHelperPrefix "Foo"] + MarkupBlock - [0..22)::22 + MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + CSharpCodeBlock - [0..22)::22 + RazorDirective - [0..22)::22 + CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + RazorDirectiveBody - [1..22)::21 + RazorMetaCode - [1..16)::15 - Gen - SpanEditHandler;Accepts:None + Identifier;[tagHelperPrefix]; + CSharpCodeBlock - [16..22)::6 + MarkupTextLiteral - [16..17)::1 - [ ] - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [17..22)::5 - ["Foo"] - Gen - SpanEditHandler;Accepts:AnyExceptNewline + StringLiteral;["Foo"]; + MarkupTextLiteral - [22..22)::0 - [] - Gen - SpanEditHandler;Accepts:Any + Marker;[]; From ad9ff3c87df7d47ec138086653dadfbac16a76ec Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Fri, 2 Nov 2018 16:18:58 -0700 Subject: [PATCH 21/23] Fixes for RazorComments --- .../ClassifiedSpanVisitor.cs | 32 ++++++++----------- .../Legacy/TokenizerBackedParser.cs | 11 +++++-- .../Syntax.xml.Internal.Generated.cs | 20 ++++-------- .../Generated/Syntax.xml.Main.Generated.cs | 3 +- .../Syntax/Syntax.xml | 2 +- .../Language/SyntaxTreeVerifier.cs | 2 +- 6 files changed, 32 insertions(+), 38 deletions(-) diff --git a/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs b/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs index 86229709a..9c19dbe35 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs @@ -27,28 +27,24 @@ public ClassifiedSpanVisitor(RazorSourceDocument source) public override SyntaxNode VisitRazorCommentBlock(RazorCommentBlockSyntax node) { - return WriteBlock(node, BlockKindInternal.Comment, base.VisitRazorCommentBlock); - } - - public override SyntaxNode VisitToken(SyntaxToken token) - { - if (token.Parent is RazorCommentBlockSyntax) + return WriteBlock(node, BlockKindInternal.Comment, razorCommentSyntax => { - if (token.Kind == SyntaxKind.RazorCommentTransition) - { - WriteSpan(token, SpanKindInternal.Transition, AcceptedCharactersInternal.None); - } - else if (token.Kind == SyntaxKind.RazorCommentStar) - { - WriteSpan(token, SpanKindInternal.MetaCode, AcceptedCharactersInternal.None); - } - else if (token.Kind == SyntaxKind.RazorCommentLiteral) + WriteSpan(razorCommentSyntax.StartCommentTransition, SpanKindInternal.Transition, AcceptedCharactersInternal.None); + WriteSpan(razorCommentSyntax.StartCommentStar, SpanKindInternal.MetaCode, AcceptedCharactersInternal.None); + + var comment = razorCommentSyntax.Comment; + if (comment.IsMissing) { - WriteSpan(token, SpanKindInternal.Comment, AcceptedCharactersInternal.Any); + // We need to generate a classified span at this position. So insert a marker in its place. + comment = (SyntaxToken)SyntaxFactory.Token(SyntaxKind.Marker, string.Empty).Green.CreateRed(razorCommentSyntax, razorCommentSyntax.StartCommentStar.EndPosition); } - } + WriteSpan(comment, SpanKindInternal.Comment, AcceptedCharactersInternal.Any); - return base.VisitToken(token); + WriteSpan(razorCommentSyntax.EndCommentStar, SpanKindInternal.MetaCode, AcceptedCharactersInternal.None); + WriteSpan(razorCommentSyntax.EndCommentTransition, SpanKindInternal.Transition, AcceptedCharactersInternal.None); + + return razorCommentSyntax; + }); } public override SyntaxNode VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs index 295e26c57..6d011e576 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs @@ -715,6 +715,10 @@ protected RazorCommentBlockSyntax ParseRazorComment() var startTransition = GetExpectedToken(SyntaxKind.RazorCommentTransition); var startStar = GetExpectedToken(SyntaxKind.RazorCommentStar); var comment = GetOptionalToken(SyntaxKind.RazorCommentLiteral); + if (comment == null) + { + comment = SyntaxFactory.MissingToken(SyntaxKind.RazorCommentLiteral); + } var endStar = GetOptionalToken(SyntaxKind.RazorCommentStar); if (endStar == null) { @@ -726,7 +730,7 @@ protected RazorCommentBlockSyntax ParseRazorComment() var endTransition = GetOptionalToken(SyntaxKind.RazorCommentTransition); if (endTransition == null) { - if (endStar != null) + if (!endStar.IsMissing) { var diagnostic = RazorDiagnosticFactory.CreateParsing_RazorCommentNotTerminated( new SourceSpan(start, contentLength: 2 /* @* */)); @@ -740,7 +744,10 @@ protected RazorCommentBlockSyntax ParseRazorComment() commentBlock = SyntaxFactory.RazorCommentBlock(startTransition, startStar, comment, endStar, endTransition); // Make sure we generate a marker symbol after a comment if necessary. - Context.LastAcceptedCharacters = AcceptedCharactersInternal.None; + if (!comment.IsMissing || !endStar.IsMissing || !endTransition.IsMissing) + { + Context.LastAcceptedCharacters = AcceptedCharactersInternal.None; + } } InitializeContext(SpanContext); diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Internal.Generated.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Internal.Generated.cs index 0b671bd97..1849a7b41 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Internal.Generated.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Internal.Generated.cs @@ -113,11 +113,8 @@ internal RazorCommentBlockSyntax(SyntaxKind kind, SyntaxToken startCommentTransi _startCommentTransition = startCommentTransition; AdjustFlagsAndWidth(startCommentStar); _startCommentStar = startCommentStar; - if (comment != null) - { - AdjustFlagsAndWidth(comment); - _comment = comment; - } + AdjustFlagsAndWidth(comment); + _comment = comment; AdjustFlagsAndWidth(endCommentStar); _endCommentStar = endCommentStar; AdjustFlagsAndWidth(endCommentTransition); @@ -133,11 +130,8 @@ internal RazorCommentBlockSyntax(SyntaxKind kind, SyntaxToken startCommentTransi _startCommentTransition = startCommentTransition; AdjustFlagsAndWidth(startCommentStar); _startCommentStar = startCommentStar; - if (comment != null) - { - AdjustFlagsAndWidth(comment); - _comment = comment; - } + AdjustFlagsAndWidth(comment); + _comment = comment; AdjustFlagsAndWidth(endCommentStar); _endCommentStar = endCommentStar; AdjustFlagsAndWidth(endCommentTransition); @@ -3872,17 +3866,15 @@ public static RazorCommentBlockSyntax RazorCommentBlock(SyntaxToken startComment default: throw new ArgumentException("startCommentStar"); } - if (comment != null) - { + if (comment == null) + throw new ArgumentNullException(nameof(comment)); switch (comment.Kind) { case SyntaxKind.RazorCommentLiteral: - case SyntaxKind.None: break; default: throw new ArgumentException("comment"); } - } if (endCommentStar == null) throw new ArgumentNullException(nameof(endCommentStar)); switch (endCommentStar.Kind) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Main.Generated.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Main.Generated.cs index 6fe099007..b3c122bb0 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Main.Generated.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/Generated/Syntax.xml.Main.Generated.cs @@ -729,7 +729,6 @@ public static RazorCommentBlockSyntax RazorCommentBlock(SyntaxToken startComment switch (comment.Kind) { case SyntaxKind.RazorCommentLiteral: - case SyntaxKind.None: break; default: throw new ArgumentException("comment"); @@ -754,7 +753,7 @@ public static RazorCommentBlockSyntax RazorCommentBlock(SyntaxToken startComment /// Creates a new RazorCommentBlockSyntax instance. public static RazorCommentBlockSyntax RazorCommentBlock() { - return SyntaxFactory.RazorCommentBlock(SyntaxFactory.Token(SyntaxKind.RazorCommentTransition), SyntaxFactory.Token(SyntaxKind.RazorCommentStar), default(SyntaxToken), SyntaxFactory.Token(SyntaxKind.RazorCommentStar), SyntaxFactory.Token(SyntaxKind.RazorCommentTransition)); + return SyntaxFactory.RazorCommentBlock(SyntaxFactory.Token(SyntaxKind.RazorCommentTransition), SyntaxFactory.Token(SyntaxKind.RazorCommentStar), SyntaxFactory.Token(SyntaxKind.RazorCommentLiteral), SyntaxFactory.Token(SyntaxKind.RazorCommentStar), SyntaxFactory.Token(SyntaxKind.RazorCommentTransition)); } /// Creates a new RazorMetaCodeSyntax instance. diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/Syntax.xml b/src/Microsoft.AspNetCore.Razor.Language/Syntax/Syntax.xml index f7c018060..7880c4962 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/Syntax.xml +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/Syntax.xml @@ -20,7 +20,7 @@ - + diff --git a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/SyntaxTreeVerifier.cs b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/SyntaxTreeVerifier.cs index c165f36cd..a9e0e5276 100644 --- a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/SyntaxTreeVerifier.cs +++ b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/SyntaxTreeVerifier.cs @@ -44,7 +44,7 @@ public Verifier(RazorSourceDocument source) public override SyntaxNode VisitToken(SyntaxToken token) { - if (!token.IsMissing && token.Kind != SyntaxKind.Marker) + if (token != null && !token.IsMissing && token.Kind != SyntaxKind.Marker) { var start = token.GetSourceLocation(_source); if (!start.Equals(_tracker.CurrentLocation)) From bbad2f2659937b8a7d65effa3ec86247dac8c7a7 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Fri, 2 Nov 2018 17:26:36 -0700 Subject: [PATCH 22/23] Fix GetSourceLocation --- .../Syntax/SyntaxNodeExtensions.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNodeExtensions.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNodeExtensions.cs index 031691162..041ba056b 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNodeExtensions.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxNodeExtensions.cs @@ -97,12 +97,14 @@ public static SourceLocation GetSourceLocation(this SyntaxNode node, RazorSource if (node.Position >= source.Length) { // E.g. Marker symbol at the end of the document - var lastLocation = source.Lines.GetLocation(source.Length - 1); + var lastPosition = source.Length - 1; + var endsWithLineBreak = ParserHelpers.IsNewLine(source[lastPosition]); + var lastLocation = source.Lines.GetLocation(lastPosition); return new SourceLocation( source.FilePath, // GetLocation prefers RelativePath but we want FilePath. lastLocation.AbsoluteIndex + 1, - lastLocation.LineIndex, - lastLocation.CharacterIndex + 1); + lastLocation.LineIndex + (endsWithLineBreak ? 1 : 0), + endsWithLineBreak ? 0 : lastLocation.CharacterIndex + 1); } var location = source.Lines.GetLocation(node.Position); From f1c7a07a2c39d76ab427af3d8ab6a479474d3d7e Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Fri, 2 Nov 2018 17:33:45 -0700 Subject: [PATCH 23/23] New baselines for CSharpTemplateTest and CSharpVerbatimBlockTest --- .../Legacy/CSharpTemplateTest.cs | 5 + .../Legacy/CSharpVerbatimBlockTest.cs | 5 + ...mplateInExplicitExpressionParens.stree.txt | 86 +++++---- ...mplateInImplicitExpressionParens.stree.txt | 78 ++++---- ...mplateInStatementWithinCodeBlock.stree.txt | 103 ++++++----- ...eInStatementWithinStatementBlock.stree.txt | 110 +++++------ ...mmediatelyFollowingStatementChar.stree.txt | 43 +++-- .../HandlesSingleLineTemplate.stree.txt | 57 +++--- ...platesInImplicitExpressionParens.stree.txt | 135 +++++++------- ...platesInStatementWithinCodeBlock.stree.txt | 160 ++++++++-------- ...sInStatementWithinStatementBlock.stree.txt | 167 +++++++++-------- ...stedTemplateInImplicitExprParens.stree.txt | 141 +++++++------- ...tedTemplateInStmtWithinCodeBlock.stree.txt | 166 +++++++++-------- ...tedTemplateInStmtWithinStmtBlock.stree.txt | 173 ++++++++++-------- ...ithDoubleTransition_DoesNotThrow.stree.txt | 141 +++++++------- ...sTrailingNewlineInDesignTimeMode.stree.txt | 38 ++-- ...licitExprDoesNotAcceptDotAfterAt.stree.txt | 36 ++-- ...ceptTrailingNewlineInRunTimeMode.stree.txt | 38 ++-- ...SingleSpaceOrNewlineAtDesignTime.stree.txt | 38 ++-- ...ingleAtOutputsZeroLengthCodeSpan.stree.txt | 36 ++-- .../VerbatimBlock.stree.txt | 31 ++-- 21 files changed, 975 insertions(+), 812 deletions(-) diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpTemplateTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpTemplateTest.cs index b672bcff9..3a13b2be4 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpTemplateTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpTemplateTest.cs @@ -8,6 +8,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { public class CSharpTemplateTest : CsHtmlCodeParserTestBase { + public CSharpTemplateTest() + { + UseNewSyntaxTree = true; + } + [Fact] public void HandlesSingleLineTemplate() { diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpVerbatimBlockTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpVerbatimBlockTest.cs index f6e5085d9..ee0a6d9e2 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpVerbatimBlockTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpVerbatimBlockTest.cs @@ -10,6 +10,11 @@ public class CSharpVerbatimBlockTest : CsHtmlCodeParserTestBase { private const string TestExtraKeyword = "model"; + public CSharpVerbatimBlockTest() + { + UseNewSyntaxTree = true; + } + [Fact] public void VerbatimBlock() { diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpTemplateTest/HandlesSimpleTemplateInExplicitExpressionParens.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpTemplateTest/HandlesSimpleTemplateInExplicitExpressionParens.stree.txt index 497fa3ec8..bf9bec131 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpTemplateTest/HandlesSimpleTemplateInExplicitExpressionParens.stree.txt +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpTemplateTest/HandlesSimpleTemplateInExplicitExpressionParens.stree.txt @@ -1,39 +1,47 @@ -Expression block - Gen - 37 - (0:0,0) - MetaCode span - Gen - [(] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.LeftParenthesis;[(]; - Code span - Gen - [Html.Repeat(10, ] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:7 - SyntaxKind.Identifier;[Html]; - SyntaxKind.Dot;[.]; - SyntaxKind.Identifier;[Repeat]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.IntegerLiteral;[10]; - SyntaxKind.Comma;[,]; - SyntaxKind.Whitespace;[ ]; - Template block - Gen