diff --git a/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs b/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs index 463eae1ab..822beedc9 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/ClassifiedSpanVisitor.cs @@ -35,7 +35,7 @@ public override SyntaxNode VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) if (node.Parent is CSharpStatementBodySyntax || node.Parent is CSharpExpressionBodySyntax || node.Parent is CSharpImplicitExpressionBodySyntax || - node.Parent is CSharpDirectiveBodySyntax) + node.Parent is RazorDirectiveBodySyntax) { return base.VisitCSharpCodeBlock(node); } @@ -58,9 +58,9 @@ public override SyntaxNode VisitCSharpImplicitExpression(CSharpImplicitExpressio return WriteBlock(node, BlockKindInternal.Expression, base.VisitCSharpImplicitExpression); } - public override SyntaxNode VisitCSharpDirective(CSharpDirectiveSyntax node) + public override SyntaxNode VisitRazorDirective(RazorDirectiveSyntax node) { - return WriteBlock(node, BlockKindInternal.Directive, base.VisitCSharpDirective); + return WriteBlock(node, BlockKindInternal.Directive, base.VisitRazorDirective); } public override SyntaxNode VisitCSharpTemplateBlock(CSharpTemplateBlockSyntax node) @@ -68,21 +68,21 @@ public override SyntaxNode VisitCSharpTemplateBlock(CSharpTemplateBlockSyntax no return WriteBlock(node, BlockKindInternal.Template, base.VisitCSharpTemplateBlock); } - public override SyntaxNode VisitHtmlMarkupBlock(HtmlMarkupBlockSyntax node) + public override SyntaxNode VisitMarkupBlock(MarkupBlockSyntax node) { - return WriteBlock(node, BlockKindInternal.Markup, base.VisitHtmlMarkupBlock); + return WriteBlock(node, BlockKindInternal.Markup, base.VisitMarkupBlock); } - public override SyntaxNode VisitHtmlTagBlock(HtmlTagBlockSyntax node) + public override SyntaxNode VisitMarkupTagBlock(MarkupTagBlockSyntax node) { - return WriteBlock(node, BlockKindInternal.Tag, base.VisitHtmlTagBlock); + return WriteBlock(node, BlockKindInternal.Tag, base.VisitMarkupTagBlock); } - public override SyntaxNode VisitHtmlAttributeBlock(HtmlAttributeBlockSyntax node) + public override SyntaxNode VisitMarkupAttributeBlock(MarkupAttributeBlockSyntax node) { return WriteBlock(node, BlockKindInternal.Markup, n => { - var equalsSyntax = SyntaxFactory.HtmlTextLiteral(new SyntaxList(node.EqualsToken)); + var equalsSyntax = SyntaxFactory.MarkupTextLiteral(new SyntaxList(node.EqualsToken)); var mergedAttributePrefix = MergeTextLiteralSpans(node.NamePrefix, node.Name, node.NameSuffix, equalsSyntax, node.ValuePrefix); Visit(mergedAttributePrefix); Visit(node.Value); @@ -92,7 +92,7 @@ public override SyntaxNode VisitHtmlAttributeBlock(HtmlAttributeBlockSyntax node }); } - public override SyntaxNode VisitHtmlMinimizedAttributeBlock(HtmlMinimizedAttributeBlockSyntax node) + public override SyntaxNode VisitMarkupMinimizedAttributeBlock(MarkupMinimizedAttributeBlockSyntax node) { return WriteBlock(node, BlockKindInternal.Markup, n => { @@ -103,14 +103,14 @@ public override SyntaxNode VisitHtmlMinimizedAttributeBlock(HtmlMinimizedAttribu }); } - public override SyntaxNode VisitHtmlCommentBlock(HtmlCommentBlockSyntax node) + public override SyntaxNode VisitMarkupCommentBlock(MarkupCommentBlockSyntax node) { - return WriteBlock(node, BlockKindInternal.HtmlComment, base.VisitHtmlCommentBlock); + return WriteBlock(node, BlockKindInternal.HtmlComment, base.VisitMarkupCommentBlock); } - public override SyntaxNode VisitHtmlDynamicAttributeValue(HtmlDynamicAttributeValueSyntax node) + public override SyntaxNode VisitMarkupDynamicAttributeValue(MarkupDynamicAttributeValueSyntax node) { - return WriteBlock(node, BlockKindInternal.Markup, base.VisitHtmlDynamicAttributeValue); + return WriteBlock(node, BlockKindInternal.Markup, base.VisitMarkupDynamicAttributeValue); } public override SyntaxNode VisitRazorMetaCode(RazorMetaCodeSyntax node) @@ -125,10 +125,10 @@ public override SyntaxNode VisitCSharpTransition(CSharpTransitionSyntax node) return base.VisitCSharpTransition(node); } - public override SyntaxNode VisitHtmlTransition(HtmlTransitionSyntax node) + public override SyntaxNode VisitMarkupTransition(MarkupTransitionSyntax node) { WriteSpan(node, SpanKindInternal.Transition); - return base.VisitHtmlTransition(node); + return base.VisitMarkupTransition(node); } public override SyntaxNode VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) @@ -143,33 +143,39 @@ public override SyntaxNode VisitCSharpExpressionLiteral(CSharpExpressionLiteralS return base.VisitCSharpExpressionLiteral(node); } - public override SyntaxNode VisitCSharpHiddenLiteral(CSharpHiddenLiteralSyntax node) + public override SyntaxNode VisitCSharpEphemeralTextLiteral(CSharpEphemeralTextLiteralSyntax node) { WriteSpan(node, SpanKindInternal.Code); - return base.VisitCSharpHiddenLiteral(node); + return base.VisitCSharpEphemeralTextLiteral(node); } - public override SyntaxNode VisitCSharpNoneLiteral(CSharpNoneLiteralSyntax node) + public override SyntaxNode VisitUnclassifiedTextLiteral(UnclassifiedTextLiteralSyntax node) { WriteSpan(node, SpanKindInternal.None); - return base.VisitCSharpNoneLiteral(node); + return base.VisitUnclassifiedTextLiteral(node); } - public override SyntaxNode VisitHtmlLiteralAttributeValue(HtmlLiteralAttributeValueSyntax node) + public override SyntaxNode VisitMarkupLiteralAttributeValue(MarkupLiteralAttributeValueSyntax node) { WriteSpan(node, SpanKindInternal.Markup); - return base.VisitHtmlLiteralAttributeValue(node); + return base.VisitMarkupLiteralAttributeValue(node); } - public override SyntaxNode VisitHtmlTextLiteral(HtmlTextLiteralSyntax node) + public override SyntaxNode VisitMarkupTextLiteral(MarkupTextLiteralSyntax node) { - if (node.Parent is HtmlLiteralAttributeValueSyntax) + if (node.Parent is MarkupLiteralAttributeValueSyntax) { - return base.VisitHtmlTextLiteral(node); + return base.VisitMarkupTextLiteral(node); } WriteSpan(node, SpanKindInternal.Markup); - return base.VisitHtmlTextLiteral(node); + return base.VisitMarkupTextLiteral(node); + } + + public override SyntaxNode VisitMarkupEphemeralTextLiteral(MarkupEphemeralTextLiteralSyntax node) + { + WriteSpan(node, SpanKindInternal.Markup); + return base.VisitMarkupEphemeralTextLiteral(node); } private SyntaxNode WriteBlock(TNode node, BlockKindInternal kind, Func handler) where TNode : SyntaxNode @@ -208,7 +214,7 @@ private void WriteSpan(SyntaxNode node, SpanKindInternal kind) _spans.Add(span); } - private HtmlTextLiteralSyntax MergeTextLiteralSpans(params HtmlTextLiteralSyntax[] literalSyntaxes) + private MarkupTextLiteralSyntax MergeTextLiteralSpans(params MarkupTextLiteralSyntax[] literalSyntaxes) { if (literalSyntaxes == null || literalSyntaxes.Length == 0) { @@ -234,16 +240,16 @@ private HtmlTextLiteralSyntax MergeTextLiteralSpans(params HtmlTextLiteralSyntax seenFirstLiteral = true; } - foreach (var token in syntax.TextTokens) + foreach (var token in syntax.LiteralTokens) { builder.Add(token.Green); } } - var mergedLiteralSyntax = Syntax.InternalSyntax.SyntaxFactory.HtmlTextLiteral( + var mergedLiteralSyntax = Syntax.InternalSyntax.SyntaxFactory.MarkupTextLiteral( builder.ToList()); - return (HtmlTextLiteralSyntax)mergedLiteralSyntax.CreateRed(parent, position); + return (MarkupTextLiteralSyntax)mergedLiteralSyntax.CreateRed(parent, position); } private SourceSpan GetSourceSpanForNode(SyntaxNode node) diff --git a/src/Microsoft.AspNetCore.Razor.Language/DefaultDirectiveSyntaxTreePass.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultDirectiveSyntaxTreePass.cs index 17b6b9b9c..ced8b2ceb 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DefaultDirectiveSyntaxTreePass.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultDirectiveSyntaxTreePass.cs @@ -53,7 +53,7 @@ public RazorSyntaxTree Verify() return rewrittenTree; } - public override SyntaxNode VisitCSharpDirective(CSharpDirectiveSyntax node) + public override SyntaxNode VisitRazorDirective(RazorDirectiveSyntax node) { if (_nestedLevel > 0) { @@ -63,7 +63,7 @@ public override SyntaxNode VisitCSharpDirective(CSharpDirectiveSyntax node) node = node.AppendDiagnostic(error); } _nestedLevel++; - var result = base.VisitCSharpDirective(node); + var result = base.VisitRazorDirective(node); _nestedLevel--; return result; diff --git a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorIntermediateNodeLoweringPhase.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorIntermediateNodeLoweringPhase.cs index 762fd61d6..da68eb3de 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorIntermediateNodeLoweringPhase.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorIntermediateNodeLoweringPhase.cs @@ -597,7 +597,7 @@ public override void VisitMarkupSpan(MarkupChunkGenerator chunkGenerator, Span s { var token = span.Tokens[0]; if (token != null && - token.Kind == SyntaxKind.Unknown && + token.Kind == SyntaxKind.Marker && token.Content.Length == 0) { // We don't want to create IR nodes for marker tokens. diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpCodeParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpCodeParser.cs index 23fe7b0fe..6a08e68d8 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpCodeParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpCodeParser.cs @@ -643,7 +643,7 @@ private void ExplicitExpression() // If necessary, put an empty-content marker token here if (Span.Tokens.Count == 0) { - Accept(SyntaxFactory.Token(SyntaxKind.Unknown, string.Empty)); + Accept(SyntaxFactory.Token(SyntaxKind.Marker, string.Empty)); } // Output the content span and then capture the ")" diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpLanguageCharacteristics.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpLanguageCharacteristics.cs index 7af05bf56..3a017b54d 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpLanguageCharacteristics.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpLanguageCharacteristics.cs @@ -114,7 +114,7 @@ public override string GetSample(SyntaxKind kind) public override SyntaxToken CreateMarkerToken() { - return SyntaxFactory.Token(SyntaxKind.Unknown, string.Empty); + return SyntaxFactory.Token(SyntaxKind.Marker, string.Empty); } public override SyntaxKind GetKnownTokenType(KnownTokenType type) @@ -138,7 +138,7 @@ public override SyntaxKind GetKnownTokenType(KnownTokenType type) case KnownTokenType.CommentBody: return SyntaxKind.RazorCommentLiteral; default: - return SyntaxKind.Unknown; + return SyntaxKind.Marker; } } @@ -164,7 +164,7 @@ public override SyntaxKind FlipBracket(SyntaxKind bracket) return SyntaxKind.LessThan; default: Debug.Fail("FlipBracket must be called with a bracket character"); - return SyntaxKind.Unknown; + return SyntaxKind.Marker; } } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs index 76085f431..09816b890 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpParser.cs @@ -567,7 +567,7 @@ private void ParseEmbeddedExpression(in SyntaxListBuilder build // Output "@" as hidden span AcceptToken(transition); SpanContext.ChunkGenerator = SpanChunkGenerator.Null; - builder.Add(OutputTokensAsHiddenLiteral()); + builder.Add(OutputTokensAsEphemeralLiteral()); Assert(SyntaxKind.Transition); AcceptTokenAndMoveNext(); @@ -793,7 +793,7 @@ private void ParseTagHelperPrefixDirective(SyntaxListBuilder bu errors); }); - var directive = SyntaxFactory.CSharpDirective(transition, directiveBody); + var directive = SyntaxFactory.RazorDirective(transition, directiveBody); builder.Add(directive); } @@ -813,7 +813,7 @@ private void ParseAddTagHelperDirective(SyntaxListBuilder build errors); }); - var directive = SyntaxFactory.CSharpDirective(transition, directiveBody); + var directive = SyntaxFactory.RazorDirective(transition, directiveBody); builder.Add(directive); } @@ -833,11 +833,11 @@ private void ParseRemoveTagHelperDirective(SyntaxListBuilder bu errors); }); - var directive = SyntaxFactory.CSharpDirective(transition, directiveBody); + var directive = SyntaxFactory.RazorDirective(transition, directiveBody); builder.Add(directive); } - private CSharpDirectiveBodySyntax ParseTagHelperDirective( + private RazorDirectiveBodySyntax ParseTagHelperDirective( string keyword, Func, ISpanChunkGenerator> chunkGeneratorFactory) { @@ -873,7 +873,7 @@ private CSharpDirectiveBodySyntax ParseTagHelperDirective( AcceptTokenWhile(SyntaxKind.Whitespace); SpanContext.ChunkGenerator = SpanChunkGenerator.Null; SpanContext.EditHandler.AcceptedCharacters = acceptedCharacters; - directiveBuilder.Add(OutputTokensAsHtmlLiteral()); + directiveBuilder.Add(OutputTokensAsMarkupLiteral()); if (EndOfFile || At(SyntaxKind.NewLine)) { @@ -920,9 +920,8 @@ private CSharpDirectiveBodySyntax ParseTagHelperDirective( directiveBuilder.Add(OutputTokensAsStatementLiteral()); var directiveCodeBlock = SyntaxFactory.CSharpCodeBlock(directiveBuilder.ToList()); - return SyntaxFactory.CSharpDirectiveBody(keywordBlock, directiveCodeBlock); + return SyntaxFactory.RazorDirectiveBody(keywordBlock, directiveCodeBlock); } - } private ParsedDirective ParseDirective( @@ -1054,7 +1053,7 @@ private void ParseExtensibleDirective(in SyntaxListBuilder buil { SpanContext.ChunkGenerator = SpanChunkGenerator.Null; SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Whitespace; - directiveBuilder.Add(OutputTokensAsHtmlLiteral()); + directiveBuilder.Add(OutputTokensAsMarkupEphemeralLiteral()); } if (tokenDescriptor.Optional && (EndOfFile || At(SyntaxKind.NewLine))) @@ -1137,7 +1136,7 @@ private void ParseExtensibleDirective(in SyntaxListBuilder buil { case DirectiveKind.SingleLine: SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Whitespace; - directiveBuilder.Add(OutputTokensAsNoneLiteral()); + directiveBuilder.Add(OutputTokensAsUnclassifiedLiteral()); OptionalToken(SyntaxKind.Semicolon); directiveBuilder.Add(OutputAsMetaCode(OutputTokens(), AcceptedCharactersInternal.Whitespace)); @@ -1162,12 +1161,12 @@ private void ParseExtensibleDirective(in SyntaxListBuilder buil // Output as Markup as we want intellisense here. SpanContext.ChunkGenerator = SpanChunkGenerator.Null; SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Whitespace; - directiveBuilder.Add(OutputTokensAsHtmlLiteral()); + directiveBuilder.Add(OutputTokensAsMarkupEphemeralLiteral()); break; case DirectiveKind.RazorBlock: AcceptTokenWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.AllWhitespace; - directiveBuilder.Add(OutputTokensAsHtmlLiteral()); + directiveBuilder.Add(OutputTokensAsMarkupLiteral()); ParseDirectiveBlock(directiveBuilder, descriptor, parseChildren: (childBuilder, startingBraceLocation) => { @@ -1191,7 +1190,7 @@ private void ParseExtensibleDirective(in SyntaxListBuilder buil case DirectiveKind.CodeBlock: AcceptTokenWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.AllWhitespace; - directiveBuilder.Add(OutputTokensAsHtmlLiteral()); + directiveBuilder.Add(OutputTokensAsMarkupLiteral()); ParseDirectiveBlock(directiveBuilder, descriptor, parseChildren: (childBuilder, startingBraceLocation) => { @@ -1223,9 +1222,9 @@ private void ParseExtensibleDirective(in SyntaxListBuilder buil 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()); + var directiveBody = SyntaxFactory.RazorDirectiveBody(keywordBlock, directiveCodeBlock); + var directive = SyntaxFactory.RazorDirective(transition, directiveBody); + directive = (RazorDirectiveSyntax)directive.SetDiagnostics(directiveErrorSink.Errors.ToArray()); builder.Add(directive); } } @@ -1836,8 +1835,8 @@ private void ParseUsingDeclaration(in SyntaxListBuilder builder } directiveBuilder.Add(OutputTokensAsStatementLiteral()); - var directiveBody = SyntaxFactory.CSharpDirectiveBody(keywordTokens, SyntaxFactory.CSharpCodeBlock(directiveBuilder.ToList())); - builder.Add(SyntaxFactory.CSharpDirective(transition, directiveBody)); + var directiveBody = SyntaxFactory.RazorDirectiveBody(keywordTokens, SyntaxFactory.CSharpCodeBlock(directiveBuilder.ToList())); + builder.Add(SyntaxFactory.RazorDirective(transition, directiveBody)); } } @@ -1939,8 +1938,8 @@ private void ParseReservedDirective(SyntaxListBuilder builder, SpanContext.ChunkGenerator = SpanChunkGenerator.Null; CompleteBlock(); var keyword = OutputAsMetaCode(OutputTokens()); - var directiveBody = SyntaxFactory.CSharpDirectiveBody(keyword, cSharpCode: null); - var directive = SyntaxFactory.CSharpDirective(transition, directiveBody); + var directiveBody = SyntaxFactory.RazorDirectiveBody(keyword, cSharpCode: null); + var directive = SyntaxFactory.RazorDirective(transition, directiveBody); builder.Add(directive); } @@ -2076,7 +2075,7 @@ private CSharpExpressionLiteralSyntax OutputTokensAsExpressionLiteral() return GetNodeWithSpanContext(SyntaxFactory.CSharpExpressionLiteral(tokens)); } - private CSharpHiddenLiteralSyntax OutputTokensAsHiddenLiteral() + private CSharpEphemeralTextLiteralSyntax OutputTokensAsEphemeralLiteral() { var tokens = OutputTokens(); if (tokens.Count == 0) @@ -2084,10 +2083,10 @@ private CSharpHiddenLiteralSyntax OutputTokensAsHiddenLiteral() return null; } - return GetNodeWithSpanContext(SyntaxFactory.CSharpHiddenLiteral(tokens)); + return GetNodeWithSpanContext(SyntaxFactory.CSharpEphemeralTextLiteral(tokens)); } - private CSharpNoneLiteralSyntax OutputTokensAsNoneLiteral() + private UnclassifiedTextLiteralSyntax OutputTokensAsUnclassifiedLiteral() { var tokens = OutputTokens(); if (tokens.Count == 0) @@ -2096,7 +2095,7 @@ private CSharpNoneLiteralSyntax OutputTokensAsNoneLiteral() } - return GetNodeWithSpanContext(SyntaxFactory.CSharpNoneLiteral(tokens)); + return GetNodeWithSpanContext(SyntaxFactory.UnclassifiedTextLiteral(tokens)); } private void OtherParserBlock(in SyntaxListBuilder builder) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpTokenizer.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpTokenizer.cs index 8d29ab0fe..21cd0dc00 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpTokenizer.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpTokenizer.cs @@ -458,7 +458,7 @@ private SyntaxKind Operator() { return handler(); } - return SyntaxKind.Unknown; + return SyntaxKind.Marker; } private SyntaxKind LessThanOperator() diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlLanguageCharacteristics.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlLanguageCharacteristics.cs index a6a2c270e..5efd2b80a 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlLanguageCharacteristics.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlLanguageCharacteristics.cs @@ -86,13 +86,13 @@ public override SyntaxKind FlipBracket(SyntaxKind bracket) return SyntaxKind.OpenAngle; default: Debug.Fail("FlipBracket must be called with a bracket character"); - return SyntaxKind.Unknown; + return SyntaxKind.Marker; } } public override SyntaxToken CreateMarkerToken() { - return SyntaxFactory.Token(SyntaxKind.Unknown, string.Empty); + return SyntaxFactory.Token(SyntaxKind.Marker, string.Empty); } public override SyntaxKind GetKnownTokenType(KnownTokenType type) @@ -116,7 +116,7 @@ public override SyntaxKind GetKnownTokenType(KnownTokenType type) case KnownTokenType.Whitespace: return SyntaxKind.Whitespace; default: - return SyntaxKind.Unknown; + return SyntaxKind.Marker; } } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlMarkupParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlMarkupParser.cs index a1e86703a..4e325e41d 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlMarkupParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlMarkupParser.cs @@ -956,7 +956,7 @@ private void AttributePrefix( AcceptAndMoveNext(); var whitespaceAfterEquals = ReadWhile(token => token.Kind == SyntaxKind.Whitespace || token.Kind == SyntaxKind.NewLine); - var quote = SyntaxKind.Unknown; + var quote = SyntaxKind.Marker; if (At(SyntaxKind.SingleQuote) || At(SyntaxKind.DoubleQuote)) { // Found a quote, the whitespace belongs to this attribute. @@ -981,7 +981,7 @@ private void AttributePrefix( // 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()) + if (quote != SyntaxKind.Marker || !whitespaceAfterEquals.Any()) { // Read the attribute value. while (!EndOfFile && !IsEndOfAttributeValue(quote, CurrentToken)) @@ -992,7 +992,7 @@ private void AttributePrefix( // Capture the suffix var suffix = new LocationTagged(string.Empty, CurrentStart); - if (quote != SyntaxKind.Unknown && At(quote)) + if (quote != SyntaxKind.Marker && At(quote)) { suffix = new LocationTagged(CurrentToken.Content, CurrentStart); AcceptAndMoveNext(); @@ -1014,7 +1014,7 @@ private void AttributePrefix( // Output the attribute name, the equals and optional quote. Ex: foo=" Output(SpanKindInternal.Markup); - if (quote == SyntaxKind.Unknown && whitespaceAfterEquals.Any()) + if (quote == SyntaxKind.Marker && whitespaceAfterEquals.Any()) { return; } @@ -1025,7 +1025,7 @@ private void AttributePrefix( // Output the attribute value (will include everything in-between the attribute's quotes). Output(SpanKindInternal.Markup); - if (quote != SyntaxKind.Unknown) + if (quote != SyntaxKind.Marker) { Optional(quote); } @@ -1107,7 +1107,7 @@ private void AttributeValue(SyntaxKind quote) private bool IsEndOfAttributeValue(SyntaxKind quote, SyntaxToken token) { return EndOfFile || token == null || - (quote != SyntaxKind.Unknown + (quote != SyntaxKind.Marker ? token.Kind == quote // If quoted, just wait for the quote : IsUnquotedEndOfAttributeValue(token)); } @@ -1194,7 +1194,7 @@ private bool StartTag(Stack> tags, IDisposabl if (potentialTagNameToken == null || potentialTagNameToken.Kind != SyntaxKind.Text) { - tagName = SyntaxFactory.Token(SyntaxKind.Unknown, string.Empty); + tagName = SyntaxFactory.Token(SyntaxKind.Marker, string.Empty); } else if (bangToken != null) { @@ -1585,7 +1585,7 @@ internal static bool IsValidAttributeNameToken(SyntaxToken token) tokenType != SyntaxKind.DoubleQuote && tokenType != SyntaxKind.SingleQuote && tokenType != SyntaxKind.Equals && - tokenType != SyntaxKind.Unknown; + tokenType != SyntaxKind.Marker; } public void ParseDocument1() @@ -1650,7 +1650,7 @@ private void ScanTagInDocumentContext() if (ParserState == ParserState.Content) { - Output(SpanKindInternal.Markup, SyntaxKind.HtmlTextLiteral); + Output(SpanKindInternal.Markup, SyntaxKind.MarkupTextLiteral); } else { diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlParser.cs index 707f56334..40c27e0b4 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlParser.cs @@ -11,7 +11,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { internal partial class HtmlMarkupParser { - public HtmlDocumentSyntax ParseDocument() + public RazorDocumentSyntax ParseDocument() { if (Context == null) { @@ -29,11 +29,11 @@ public HtmlDocumentSyntax ParseDocument() ParseTagInDocumentContext(builder); } AcceptMarkerTokenIfNecessary(); - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupLiteral()); - var markup = SyntaxFactory.HtmlMarkupBlock(builder.ToList()); + var markup = SyntaxFactory.MarkupBlock(builder.ToList()); - return SyntaxFactory.HtmlDocument(markup); + return SyntaxFactory.RazorDocument(markup); } } @@ -58,7 +58,7 @@ private void SkipToAndParseCode(in SyntaxListBuilder builder, F AcceptTokenAndMoveNext(); } - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupEphemeralLiteral()); } else if (At(SyntaxKind.NewLine)) { @@ -83,10 +83,10 @@ private void SkipToAndParseCode(in SyntaxListBuilder builder, F AcceptToken(last); last = null; } - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupLiteral()); AcceptToken(transition); SpanContext.ChunkGenerator = SpanChunkGenerator.Null; - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupEphemeralLiteral()); AcceptTokenAndMoveNext(); continue; // while } @@ -121,6 +121,7 @@ private void SkipToAndParseCode(in SyntaxListBuilder builder, F } else if (At(SyntaxKind.RazorCommentTransition)) { + var shouldRenderWhitespace = true; if (last != null) { // Don't render the whitespace between the start of the line and the razor comment. @@ -128,9 +129,10 @@ private void SkipToAndParseCode(in SyntaxListBuilder builder, F { AcceptMarkerTokenIfNecessary(); // Output the tokens that may have been accepted prior to the whitespace. - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupLiteral()); SpanContext.ChunkGenerator = SpanChunkGenerator.Null; + shouldRenderWhitespace = false; } AcceptToken(last); @@ -138,7 +140,14 @@ private void SkipToAndParseCode(in SyntaxListBuilder builder, F } AcceptMarkerTokenIfNecessary(); - builder.Add(OutputTokensAsHtmlLiteral()); + if (shouldRenderWhitespace) + { + builder.Add(OutputTokensAsMarkupLiteral()); + } + else + { + builder.Add(OutputTokensAsMarkupEphemeralLiteral()); + } var comment = ParseRazorComment(); builder.Add(comment); @@ -151,7 +160,7 @@ private void SkipToAndParseCode(in SyntaxListBuilder builder, F AcceptTokenWhile(IsSpacingToken(includeNewLines: false)); AcceptTokenAndMoveNext(); SpanContext.ChunkGenerator = SpanChunkGenerator.Null; - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupEphemeralLiteral()); } } else @@ -193,7 +202,7 @@ private void ParseTagInDocumentContext(in SyntaxListBuilder bui { if (Lookahead(2)?.Kind == SyntaxKind.DoubleHyphen) { - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupLiteral()); } AcceptTokenAndMoveNext(); // Accept '<' @@ -212,7 +221,7 @@ private void ParseTagInDocumentContext(in SyntaxListBuilder bui return; } - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupLiteral()); // Start tag block using (var pooledResult = Pool.Allocate()) @@ -236,8 +245,8 @@ private void ParseTagInDocumentContext(in SyntaxListBuilder bui // 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()); + tagBuilder.Add(OutputTokensAsMarkupLiteral()); + var block = SyntaxFactory.MarkupTagBlock(tagBuilder.ToList()); builder.Add(block); SkipToEndScriptAndParseCode(builder); @@ -259,10 +268,10 @@ private void ParseTagInDocumentContext(in SyntaxListBuilder bui ParserState = ParserState.Content; } - tagBuilder.Add(OutputTokensAsHtmlLiteral()); + tagBuilder.Add(OutputTokensAsMarkupLiteral()); // End tag block - var tagBlock = SyntaxFactory.HtmlTagBlock(tagBuilder.ToList()); + var tagBlock = SyntaxFactory.MarkupTagBlock(tagBuilder.ToList()); builder.Add(tagBlock); } } @@ -352,14 +361,14 @@ private void BeforeAttribute(in SyntaxListBuilder builder) // 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()); + builder.Add(OutputTokensAsMarkupLiteral()); AcceptToken(whitespace); - var namePrefix = OutputTokensAsHtmlLiteral(); + var namePrefix = OutputTokensAsMarkupLiteral(); AcceptToken(nameTokens); - var name = OutputTokensAsHtmlLiteral(); + var name = OutputTokensAsMarkupLiteral(); - var minimizedAttributeBlock = SyntaxFactory.HtmlMinimizedAttributeBlock(namePrefix, name); + var minimizedAttributeBlock = SyntaxFactory.MarkupMinimizedAttributeBlock(namePrefix, name); builder.Add(minimizedAttributeBlock); return; @@ -367,14 +376,14 @@ private void BeforeAttribute(in SyntaxListBuilder builder) // 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()); + builder.Add(OutputTokensAsMarkupLiteral()); var attributeBlock = ParseAttributePrefix(whitespace, nameTokens, whitespaceAfterAttributeName); builder.Add(attributeBlock); } - private HtmlAttributeBlockSyntax ParseAttributePrefix( + private MarkupAttributeBlockSyntax ParseAttributePrefix( IEnumerable whitespace, IEnumerable nameTokens, IEnumerable whitespaceAfterAttributeName) @@ -387,18 +396,18 @@ private HtmlAttributeBlockSyntax ParseAttributePrefix( // Accept the whitespace and name AcceptToken(whitespace); - var namePrefix = OutputTokensAsHtmlLiteral(); + var namePrefix = OutputTokensAsMarkupLiteral(); AcceptToken(nameTokens); - var name = OutputTokensAsHtmlLiteral(); + var name = OutputTokensAsMarkupLiteral(); // Since this is not a minimized attribute, the whitespace after attribute name belongs to this attribute. AcceptToken(whitespaceAfterAttributeName); - var nameSuffix = OutputTokensAsHtmlLiteral(); + var nameSuffix = OutputTokensAsMarkupLiteral(); 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; + var quote = SyntaxKind.Marker; if (At(SyntaxKind.SingleQuote) || At(SyntaxKind.DoubleQuote)) { // Found a quote, the whitespace belongs to this attribute. @@ -413,20 +422,20 @@ private HtmlAttributeBlockSyntax ParseAttributePrefix( PutBack(whitespaceAfterEquals); } - HtmlTextLiteralSyntax valuePrefix = null; - HtmlBlockSyntax attributeValue = null; - HtmlTextLiteralSyntax valueSuffix = null; + MarkupTextLiteralSyntax valuePrefix = null; + RazorBlockSyntax attributeValue = null; + MarkupTextLiteralSyntax 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(); + valuePrefix = OutputTokensAsMarkupLiteral(); // 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()) + if (quote != SyntaxKind.Marker || !whitespaceAfterEquals.Any()) { using (var pooledResult = Pool.Allocate()) { @@ -437,22 +446,22 @@ private HtmlAttributeBlockSyntax ParseAttributePrefix( ParseAttributeValue(attributeValueBuilder, quote); } - attributeValue = SyntaxFactory.HtmlBlock(attributeValueBuilder.ToList()); + attributeValue = SyntaxFactory.GenericBlock(attributeValueBuilder.ToList()); } } // Capture the suffix - if (quote != SyntaxKind.Unknown && At(quote)) + if (quote != SyntaxKind.Marker && At(quote)) { AcceptTokenAndMoveNext(); // Again, block chunk generator will render the suffix SpanContext.ChunkGenerator = SpanChunkGenerator.Null; - valueSuffix = OutputTokensAsHtmlLiteral(); + valueSuffix = OutputTokensAsMarkupLiteral(); } } - else if (quote != SyntaxKind.Unknown || !whitespaceAfterEquals.Any()) + else if (quote != SyntaxKind.Marker || !whitespaceAfterEquals.Any()) { - valuePrefix = OutputTokensAsHtmlLiteral(); + valuePrefix = OutputTokensAsMarkupLiteral(); using (var pooledResult = Pool.Allocate()) { @@ -461,13 +470,13 @@ private HtmlAttributeBlockSyntax ParseAttributePrefix( SkipToAndParseCode(attributeValueBuilder, token => IsEndOfAttributeValue(quote, token)); // Capture the attribute value (will include everything in-between the attribute's quotes). - attributeValue = SyntaxFactory.HtmlBlock(attributeValueBuilder.ToList()); + attributeValue = SyntaxFactory.GenericBlock(attributeValueBuilder.ToList()); } - if (quote != SyntaxKind.Unknown) + if (quote != SyntaxKind.Marker) { OptionalToken(quote); - valueSuffix = OutputTokensAsHtmlLiteral(); + valueSuffix = OutputTokensAsMarkupLiteral(); } } else @@ -475,7 +484,7 @@ private HtmlAttributeBlockSyntax ParseAttributePrefix( // 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); + return SyntaxFactory.MarkupAttributeBlock(namePrefix, name, nameSuffix, equalsToken, valuePrefix, attributeValue, valueSuffix); } private void ParseAttributeValue(in SyntaxListBuilder builder, SyntaxKind quote) @@ -499,14 +508,14 @@ private void ParseAttributeValue(in SyntaxListBuilder builder, new LocationTagged(CurrentToken.Content, CurrentStart)); AcceptTokenAndMoveNext(); SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; - markupBuilder.Add(OutputTokensAsHtmlLiteral()); + markupBuilder.Add(OutputTokensAsMarkupLiteral()); SpanContext.ChunkGenerator = SpanChunkGenerator.Null; AcceptTokenAndMoveNext(); SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; - markupBuilder.Add(OutputTokensAsHtmlLiteral()); + markupBuilder.Add(OutputTokensAsMarkupEphemeralLiteral()); - var markupBlock = SyntaxFactory.HtmlMarkupBlock(markupBuilder.ToList()); + var markupBlock = SyntaxFactory.MarkupBlock(markupBuilder.ToList()); builder.Add(markupBlock); } } @@ -516,7 +525,7 @@ private void ParseAttributeValue(in SyntaxListBuilder builder, var valueStart = CurrentStart; PutCurrentBack(); - var prefix = OutputTokensAsHtmlLiteral(); + var prefix = OutputTokensAsMarkupLiteral(); // Dynamic value, start a new block and set the chunk generator using (var pooledResult = Pool.Allocate()) @@ -524,7 +533,7 @@ private void ParseAttributeValue(in SyntaxListBuilder builder, var dynamicAttributeValueBuilder = pooledResult.Builder; OtherParserBlock(dynamicAttributeValueBuilder); - var value = SyntaxFactory.HtmlDynamicAttributeValue(prefix, SyntaxFactory.HtmlBlock(dynamicAttributeValueBuilder.ToList())); + var value = SyntaxFactory.MarkupDynamicAttributeValue(prefix, SyntaxFactory.GenericBlock(dynamicAttributeValueBuilder.ToList())); builder.Add(value); } } @@ -532,7 +541,7 @@ private void ParseAttributeValue(in SyntaxListBuilder builder, else { AcceptToken(prefixTokens); - var prefix = OutputTokensAsHtmlLiteral(); + var prefix = OutputTokensAsMarkupLiteral(); // Literal value // 'quote' should be "Unknown" if not quoted and tokens coming from the tokenizer should never have @@ -546,9 +555,9 @@ private void ParseAttributeValue(in SyntaxListBuilder builder, // but for now that's ok) !IsEndOfAttributeValue(quote, token)); AcceptToken(valueTokens); - var value = OutputTokensAsHtmlLiteral(); + var value = OutputTokensAsMarkupLiteral(); - var literalAttributeValue = SyntaxFactory.HtmlLiteralAttributeValue(prefix, value); + var literalAttributeValue = SyntaxFactory.MarkupLiteralAttributeValue(prefix, value); builder.Add(literalAttributeValue); } } @@ -616,7 +625,7 @@ private bool ParseBangTag(in SyntaxListBuilder builder) // Accept the double-hyphen token at the beginning of the comment block. AcceptTokenAndMoveNext(); SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; - htmlCommentBuilder.Add(OutputTokensAsHtmlLiteral()); + htmlCommentBuilder.Add(OutputTokensAsMarkupLiteral()); SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Whitespace; while (!EndOfFile) @@ -628,14 +637,14 @@ private bool ParseBangTag(in SyntaxListBuilder builder) { // Output the content in the comment block as a separate markup SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Whitespace; - htmlCommentBuilder.Add(OutputTokensAsHtmlLiteral()); + htmlCommentBuilder.Add(OutputTokensAsMarkupLiteral()); // 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()); + htmlCommentBuilder.Add(OutputTokensAsMarkupLiteral()); + var commentBlock = SyntaxFactory.MarkupCommentBlock(htmlCommentBuilder.ToList()); builder.Add(commentBlock); return true; } @@ -691,7 +700,7 @@ private void ParseOptionalBangEscape(in SyntaxListBuilder build { if (IsBangEscape(lookahead: 0)) { - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupLiteral()); // Accept the parser escape character '!'. Assert(SyntaxKind.Bang); @@ -738,7 +747,7 @@ private void SkipToEndScriptAndParseCode(in SyntaxListBuilder b if (seenEndScript) { - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupLiteral()); using (var pooledResult = Pool.Allocate()) { @@ -757,8 +766,8 @@ private void SkipToEndScriptAndParseCode(in SyntaxListBuilder b var closeAngle = SyntaxFactory.MissingToken(SyntaxKind.CloseAngle); AcceptToken(closeAngle); } - tagBuilder.Add(OutputTokensAsHtmlLiteral()); - builder.Add(SyntaxFactory.HtmlTagBlock(tagBuilder.ToList())); + tagBuilder.Add(OutputTokensAsMarkupLiteral()); + builder.Add(SyntaxFactory.MarkupTagBlock(tagBuilder.ToList())); } } else @@ -772,7 +781,7 @@ private bool CurrentScriptTagExpectsHtml(in SyntaxListBuilder b { Debug.Assert(!builder.IsNull); - HtmlAttributeBlockSyntax typeAttribute = null; + MarkupAttributeBlockSyntax typeAttribute = null; for (var i = 0; i < builder.Count; i++) { var node = builder[i]; @@ -781,7 +790,7 @@ private bool CurrentScriptTagExpectsHtml(in SyntaxListBuilder b continue; } - if (node is HtmlAttributeBlockSyntax attributeBlock && + if (node is MarkupAttributeBlockSyntax attributeBlock && attributeBlock.Value.Children.Count > 0 && IsTypeAttribute(attributeBlock)) { @@ -792,7 +801,7 @@ private bool CurrentScriptTagExpectsHtml(in SyntaxListBuilder b if (typeAttribute != null) { var contentValues = typeAttribute.Value.Children.Nodes - .OfType() + .OfType() .Select(textLiteral => textLiteral.ToFullString()); var scriptType = string.Concat(contentValues).Trim(); @@ -804,9 +813,9 @@ private bool CurrentScriptTagExpectsHtml(in SyntaxListBuilder b return false; } - private static bool IsTypeAttribute(HtmlAttributeBlockSyntax attributeBlock) + private static bool IsTypeAttribute(MarkupAttributeBlockSyntax attributeBlock) { - if (attributeBlock.Name.TextTokens.Count == 0) + if (attributeBlock.Name.LiteralTokens.Count == 0) { return false; } @@ -868,7 +877,7 @@ private bool AcceptTokenUntilAll(in SyntaxListBuilder builder, return false; } - public HtmlMarkupBlockSyntax ParseBlock() + public MarkupBlockSyntax ParseBlock() { if (Context == null) { @@ -896,14 +905,14 @@ public HtmlMarkupBlockSyntax ParseBlock() // "@" => Explicit Tag/Single Line Block OR Template // Output whitespace - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupLiteral()); // Definitely have a transition span Assert(SyntaxKind.Transition); AcceptTokenAndMoveNext(); SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; SpanContext.ChunkGenerator = SpanChunkGenerator.Null; - var transition = GetNodeWithSpanContext(SyntaxFactory.HtmlTransition(OutputTokens())); + var transition = GetNodeWithSpanContext(SyntaxFactory.MarkupTransition(OutputTokens())); builder.Add(transition); if (At(SyntaxKind.Transition)) { @@ -919,11 +928,11 @@ public HtmlMarkupBlockSyntax ParseBlock() RazorDiagnosticFactory.CreateParsing_MarkupBlockMustStartWithTag( new SourceSpan(CurrentStart, CurrentToken.Content.Length))); } - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupLiteral()); var markupBlock = builder.ToList(); - return SyntaxFactory.HtmlMarkupBlock(markupBlock); + return SyntaxFactory.MarkupBlock(markupBlock); } } @@ -967,7 +976,7 @@ private void ParseSingleLineMarkup(in SyntaxListBuilder builder } PutCurrentBack(); Context.WhiteSpaceIsSignificantToAncestorBlock = old; - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupLiteral()); } private void ParseTagBlock(in SyntaxListBuilder builder, Stack> tags) @@ -980,7 +989,7 @@ private void ParseTagBlock(in SyntaxListBuilder builder, Stack< SkipToAndParseCode(builder, SyntaxKind.OpenAngle); // Output everything prior to the OpenAngle into a markup span - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupLiteral()); // Do not want to start a new tag block if we're at the end of the file. var tagBuilder = builder; @@ -1032,13 +1041,13 @@ private void ParseTagBlock(in SyntaxListBuilder builder, Stack< if (blockAlreadyBuilt) { // Output the contents of the tag into its own markup span. - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupLiteral()); } else { // Output the contents of the tag into its own markup span. - tagBuilder.Add(OutputTokensAsHtmlLiteral()); - var tagBlock = SyntaxFactory.HtmlTagBlock(tagBuilder.ToList()); + tagBuilder.Add(OutputTokensAsMarkupLiteral()); + var tagBlock = SyntaxFactory.MarkupTagBlock(tagBuilder.ToList()); builder.Add(tagBlock); } } @@ -1113,7 +1122,7 @@ private Tuple ParseStartTag( if (potentialTagNameToken == null || potentialTagNameToken.Kind != SyntaxKind.Text) { - tagName = SyntaxFactory.Token(SyntaxKind.Unknown, string.Empty); + tagName = SyntaxFactory.Token(SyntaxKind.Marker, string.Empty); } else if (bangToken != null) { @@ -1131,7 +1140,7 @@ private Tuple ParseStartTag( // tags are treated like any other escaped HTML start tag. string.Equals(tag.Item1.Content, SyntaxConstants.TextTagName, StringComparison.OrdinalIgnoreCase)) { - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupLiteral()); SpanContext.ChunkGenerator = SpanChunkGenerator.Null; AcceptToken(_bufferedOpenAngle); @@ -1173,9 +1182,9 @@ private Tuple ParseStartTag( tags.Push(tag); } - var transition = GetNodeWithSpanContext(SyntaxFactory.HtmlTransition(OutputTokens())); + var transition = GetNodeWithSpanContext(SyntaxFactory.MarkupTransition(OutputTokens())); builder.Add(transition); - var tagBlock = SyntaxFactory.HtmlTagBlock(builder.ToList()); + var tagBlock = SyntaxFactory.MarkupTagBlock(builder.ToList()); parentBuilder.Add(tagBlock); return Tuple.Create(true, true); @@ -1230,8 +1239,8 @@ private Tuple ParseRestOfTag( if (VoidElements.Contains(tagName)) { SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; - builder.Add(OutputTokensAsHtmlLiteral()); - var tagBlock = SyntaxFactory.HtmlTagBlock(builder.ToList()); + builder.Add(OutputTokensAsMarkupLiteral()); + var tagBlock = SyntaxFactory.MarkupTagBlock(builder.ToList()); parentBuilder.Add(tagBlock); blockAlreadyBuilt = true; @@ -1255,7 +1264,7 @@ private Tuple ParseRestOfTag( { // Accept up to here AcceptToken(whiteSpace); - parentBuilder.Add(OutputTokensAsHtmlLiteral()); // Output the whitespace + parentBuilder.Add(OutputTokensAsMarkupLiteral()); // Output the whitespace using (var pooledResult = Pool.Allocate()) { @@ -1275,8 +1284,8 @@ private Tuple ParseRestOfTag( } // Output the closing void element - tagBuilder.Add(OutputTokensAsHtmlLiteral()); - parentBuilder.Add(SyntaxFactory.HtmlTagBlock(tagBuilder.ToList())); + tagBuilder.Add(OutputTokensAsMarkupLiteral()); + parentBuilder.Add(SyntaxFactory.MarkupTagBlock(tagBuilder.ToList())); return Tuple.Create(complete, blockAlreadyBuilt); } @@ -1292,8 +1301,8 @@ private Tuple ParseRestOfTag( if (!CurrentScriptTagExpectsHtml(builder)) { SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; - builder.Add(OutputTokensAsHtmlLiteral()); - var tagBlock = SyntaxFactory.HtmlTagBlock(builder.ToList()); + builder.Add(OutputTokensAsMarkupLiteral()); + var tagBlock = SyntaxFactory.MarkupTagBlock(builder.ToList()); parentBuilder.Add(tagBlock); blockAlreadyBuilt = true; @@ -1403,9 +1412,9 @@ private Tuple EndTextTag( SpanContext.ChunkGenerator = SpanChunkGenerator.Null; - var transition = GetNodeWithSpanContext(SyntaxFactory.HtmlTransition(OutputTokens())); + var transition = GetNodeWithSpanContext(SyntaxFactory.MarkupTransition(OutputTokens())); builder.Add(transition); - var tagBlock = SyntaxFactory.HtmlTagBlock(builder.ToList()); + var tagBlock = SyntaxFactory.MarkupTagBlock(builder.ToList()); parentBuilder.Add(tagBlock); return Tuple.Create(seenCloseAngle, true); @@ -1481,7 +1490,7 @@ private void EndTagBlock( // Check if the previous span was a transition. var previousSpan = GetLastSpan(builder[builder.Count - 1]); - if (previousSpan != null && previousSpan.Kind == SyntaxKind.HtmlTransition) + if (previousSpan != null && previousSpan.Kind == SyntaxKind.MarkupTransition) { var tokens = ReadWhile( f => (f.Kind == SyntaxKind.Whitespace) || (f.Kind == SyntaxKind.NewLine)); @@ -1518,10 +1527,10 @@ private void EndTagBlock( AddMarkerTokenIfNecessary(); } - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupLiteral()); } - public HtmlMarkupBlockSyntax ParseRazorBlock(Tuple nestingSequences, bool caseSensitive) + public MarkupBlockSyntax ParseRazorBlock(Tuple nestingSequences, bool caseSensitive) { if (Context == null) { @@ -1544,9 +1553,9 @@ public HtmlMarkupBlockSyntax ParseRazorBlock(Tuple nestingSequen NestingSection(builder, nestingSequences); } AcceptMarkerTokenIfNecessary(); - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupLiteral()); - return SyntaxFactory.HtmlMarkupBlock(builder.ToList()); + return SyntaxFactory.MarkupBlock(builder.ToList()); } } @@ -1725,7 +1734,7 @@ private void DefaultMarkupSpanContext(SpanContextBuilder spanContext) private void OtherParserBlock(in SyntaxListBuilder builder) { AcceptMarkerTokenIfNecessary(); - builder.Add(OutputTokensAsHtmlLiteral()); + builder.Add(OutputTokensAsMarkupLiteral()); RazorSyntaxNode codeBlock; using (PushSpanContextConfig()) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlTokenizer.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlTokenizer.cs index bc55f991a..b06f49f9e 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlTokenizer.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlTokenizer.cs @@ -227,7 +227,7 @@ private SyntaxToken Token() return EndToken(SyntaxKind.DoubleHyphen); default: Debug.Fail("Unexpected token!"); - return EndToken(SyntaxKind.Unknown); + return EndToken(SyntaxKind.Marker); } } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/SpanBuilder.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/SpanBuilder.cs index ad2b08b61..8c7c086ed 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/SpanBuilder.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/SpanBuilder.cs @@ -80,7 +80,7 @@ public void Reset() Start = SourceLocation.Undefined; } - public Span Build(SyntaxKind syntaxKind = SyntaxKind.Unknown) + public Span Build(SyntaxKind syntaxKind = SyntaxKind.Marker) { SyntaxNode = GetSyntaxNode(syntaxKind); @@ -112,12 +112,12 @@ public void Accept(SyntaxToken token) private Syntax.GreenNode GetSyntaxNode(SyntaxKind syntaxKind) { - if (syntaxKind == SyntaxKind.HtmlTextLiteral) + if (syntaxKind == SyntaxKind.MarkupTextLiteral) { var textTokens = new SyntaxListBuilder(SyntaxListBuilder.Create()); foreach (var token in Tokens) { - if (token.Kind == SyntaxKind.Unknown) + if (token.Kind == SyntaxKind.Marker) { Debug.Assert(false, $"Unexpected token {token.Kind}"); continue; @@ -126,7 +126,7 @@ private Syntax.GreenNode GetSyntaxNode(SyntaxKind syntaxKind) textTokens.Add(token); } var textResult = textTokens.ToList(); - return SyntaxFactory.HtmlTextLiteral(new SyntaxList(textResult.Node)); + return SyntaxFactory.MarkupTextLiteral(new SyntaxList(textResult.Node)); } return null; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs index 6c5f473c5..a6df72914 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/TokenizerBackedParser.cs @@ -409,19 +409,19 @@ protected internal void AddMarkerTokenIfNecessary() } } - protected internal void Output(SpanKindInternal kind, SyntaxKind syntaxKind = SyntaxKind.Unknown) + protected internal void Output(SpanKindInternal kind, SyntaxKind syntaxKind = SyntaxKind.Marker) { Configure(kind, null); Output(syntaxKind); } - protected internal void Output(SpanKindInternal kind, AcceptedCharactersInternal accepts, SyntaxKind syntaxKind = SyntaxKind.Unknown) + protected internal void Output(SpanKindInternal kind, AcceptedCharactersInternal accepts, SyntaxKind syntaxKind = SyntaxKind.Marker) { Configure(kind, accepts); Output(syntaxKind); } - protected internal void Output(AcceptedCharactersInternal accepts, SyntaxKind syntaxKind = SyntaxKind.Unknown) + protected internal void Output(AcceptedCharactersInternal accepts, SyntaxKind syntaxKind = SyntaxKind.Marker) { Configure(null, accepts); Output(syntaxKind); @@ -1000,7 +1000,7 @@ protected internal void AcceptMarkerTokenIfNecessary() } } - protected HtmlTextLiteralSyntax OutputTokensAsHtmlLiteral() + protected MarkupTextLiteralSyntax OutputTokensAsMarkupLiteral() { var tokens = OutputTokens(); if (tokens.Count == 0) @@ -1008,7 +1008,18 @@ protected HtmlTextLiteralSyntax OutputTokensAsHtmlLiteral() return null; } - return GetNodeWithSpanContext(SyntaxFactory.HtmlTextLiteral(tokens)); + return GetNodeWithSpanContext(SyntaxFactory.MarkupTextLiteral(tokens)); + } + + protected MarkupEphemeralTextLiteralSyntax OutputTokensAsMarkupEphemeralLiteral() + { + var tokens = OutputTokens(); + if (tokens.Count == 0) + { + return null; + } + + return GetNodeWithSpanContext(SyntaxFactory.MarkupEphemeralTextLiteral(tokens)); } protected RazorMetaCodeSyntax OutputAsMetaCode(SyntaxList tokens, AcceptedCharactersInternal? accepted = null) 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 aa3c28aa6..81578e974 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 @@ -20,6 +20,95 @@ internal RazorSyntaxNode(SyntaxKind kind) } } + internal abstract partial class RazorBlockSyntax : RazorSyntaxNode + { + internal RazorBlockSyntax(SyntaxKind kind, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + : base(kind, diagnostics, annotations) + { + } + internal RazorBlockSyntax(SyntaxKind kind) + : base(kind) + { + } + + public abstract SyntaxList Children { get; } + } + + internal sealed partial class RazorDocumentSyntax : RazorSyntaxNode + { + private readonly RazorBlockSyntax _document; + + internal RazorDocumentSyntax(SyntaxKind kind, RazorBlockSyntax document, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + : base(kind, diagnostics, annotations) + { + SlotCount = 1; + AdjustFlagsAndWidth(document); + _document = document; + } + + + internal RazorDocumentSyntax(SyntaxKind kind, RazorBlockSyntax document) + : base(kind) + { + SlotCount = 1; + AdjustFlagsAndWidth(document); + _document = document; + } + + public RazorBlockSyntax Document { get { return _document; } } + + internal override GreenNode GetSlot(int index) + { + switch (index) + { + case 0: return _document; + default: return null; + } + } + + internal override SyntaxNode CreateRed(SyntaxNode parent, int position) + { + return new Syntax.RazorDocumentSyntax(this, parent, position); + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitRazorDocument(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitRazorDocument(this); + } + + public RazorDocumentSyntax Update(RazorBlockSyntax document) + { + if (document != Document) + { + var newNode = SyntaxFactory.RazorDocument(document); + 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 RazorDocumentSyntax(Kind, _document, diagnostics, GetAnnotations()); + } + + internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) + { + return new RazorDocumentSyntax(Kind, _document, GetDiagnostics(), annotations); + } + } + internal sealed partial class RazorCommentBlockSyntax : RazorSyntaxNode { private readonly SyntaxToken _startCommentTransition; @@ -210,76 +299,145 @@ internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) } } - internal abstract partial class HtmlSyntaxNode : RazorSyntaxNode + internal sealed partial class GenericBlockSyntax : RazorBlockSyntax { - internal HtmlSyntaxNode(SyntaxKind kind, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) - : base(kind, diagnostics, annotations) + private readonly GreenNode _children; + + internal GenericBlockSyntax(SyntaxKind kind, GreenNode children, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + : base(kind, diagnostics, annotations) { + SlotCount = 1; + if (children != null) + { + AdjustFlagsAndWidth(children); + _children = children; + } } - internal HtmlSyntaxNode(SyntaxKind kind) - : base(kind) + + + internal GenericBlockSyntax(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.GenericBlockSyntax(this, parent, position); + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitGenericBlock(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitGenericBlock(this); + } + + public GenericBlockSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) + { + if (children != Children) + { + var newNode = SyntaxFactory.GenericBlock(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 GenericBlockSyntax(Kind, _children, diagnostics, GetAnnotations()); + } + + internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) + { + return new GenericBlockSyntax(Kind, _children, GetDiagnostics(), annotations); } } - internal sealed partial class HtmlTransitionSyntax : HtmlSyntaxNode + internal sealed partial class UnclassifiedTextLiteralSyntax : RazorSyntaxNode { - private readonly GreenNode _transitionTokens; + private readonly GreenNode _literalTokens; - internal HtmlTransitionSyntax(SyntaxKind kind, GreenNode transitionTokens, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal UnclassifiedTextLiteralSyntax(SyntaxKind kind, GreenNode literalTokens, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 1; - if (transitionTokens != null) + if (literalTokens != null) { - AdjustFlagsAndWidth(transitionTokens); - _transitionTokens = transitionTokens; + AdjustFlagsAndWidth(literalTokens); + _literalTokens = literalTokens; } } - internal HtmlTransitionSyntax(SyntaxKind kind, GreenNode transitionTokens) + internal UnclassifiedTextLiteralSyntax(SyntaxKind kind, GreenNode literalTokens) : base(kind) { SlotCount = 1; - if (transitionTokens != null) + if (literalTokens != null) { - AdjustFlagsAndWidth(transitionTokens); - _transitionTokens = transitionTokens; + AdjustFlagsAndWidth(literalTokens); + _literalTokens = literalTokens; } } - public SyntaxList TransitionTokens { get { return new SyntaxList(_transitionTokens); } } + public SyntaxList LiteralTokens { get { return new SyntaxList(_literalTokens); } } internal override GreenNode GetSlot(int index) { switch (index) { - case 0: return _transitionTokens; + case 0: return _literalTokens; default: return null; } } internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.HtmlTransitionSyntax(this, parent, position); + return new Syntax.UnclassifiedTextLiteralSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlTransition(this); + return visitor.VisitUnclassifiedTextLiteral(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlTransition(this); + visitor.VisitUnclassifiedTextLiteral(this); } - public HtmlTransitionSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList transitionTokens) + public UnclassifiedTextLiteralSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList literalTokens) { - if (transitionTokens != TransitionTokens) + if (literalTokens != LiteralTokens) { - var newNode = SyntaxFactory.HtmlTransition(transitionTokens); + var newNode = SyntaxFactory.UnclassifiedTextLiteral(literalTokens); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -294,73 +452,85 @@ public HtmlTransitionSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.In internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new HtmlTransitionSyntax(Kind, _transitionTokens, diagnostics, GetAnnotations()); + return new UnclassifiedTextLiteralSyntax(Kind, _literalTokens, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new HtmlTransitionSyntax(Kind, _transitionTokens, GetDiagnostics(), annotations); + return new UnclassifiedTextLiteralSyntax(Kind, _literalTokens, GetDiagnostics(), annotations); + } + } + + internal abstract partial class MarkupSyntaxNode : RazorSyntaxNode + { + internal MarkupSyntaxNode(SyntaxKind kind, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + : base(kind, diagnostics, annotations) + { + } + internal MarkupSyntaxNode(SyntaxKind kind) + : base(kind) + { } } - internal sealed partial class HtmlTextLiteralSyntax : HtmlSyntaxNode + internal sealed partial class MarkupBlockSyntax : RazorBlockSyntax { - private readonly GreenNode _textTokens; + private readonly GreenNode _children; - internal HtmlTextLiteralSyntax(SyntaxKind kind, GreenNode textTokens, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal MarkupBlockSyntax(SyntaxKind kind, GreenNode children, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 1; - if (textTokens != null) + if (children != null) { - AdjustFlagsAndWidth(textTokens); - _textTokens = textTokens; + AdjustFlagsAndWidth(children); + _children = children; } } - internal HtmlTextLiteralSyntax(SyntaxKind kind, GreenNode textTokens) + internal MarkupBlockSyntax(SyntaxKind kind, GreenNode children) : base(kind) { SlotCount = 1; - if (textTokens != null) + if (children != null) { - AdjustFlagsAndWidth(textTokens); - _textTokens = textTokens; + AdjustFlagsAndWidth(children); + _children = children; } } - public SyntaxList TextTokens { get { return new SyntaxList(_textTokens); } } + public override SyntaxList Children { get { return new SyntaxList(_children); } } internal override GreenNode GetSlot(int index) { switch (index) { - case 0: return _textTokens; + case 0: return _children; default: return null; } } internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.HtmlTextLiteralSyntax(this, parent, position); + return new Syntax.MarkupBlockSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlTextLiteral(this); + return visitor.VisitMarkupBlock(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlTextLiteral(this); + visitor.VisitMarkupBlock(this); } - public HtmlTextLiteralSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList textTokens) + public MarkupBlockSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) { - if (textTokens != TextTokens) + if (children != Children) { - var newNode = SyntaxFactory.HtmlTextLiteral(textTokens); + var newNode = SyntaxFactory.MarkupBlock(children); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -375,67 +545,73 @@ public HtmlTextLiteralSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.I internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new HtmlTextLiteralSyntax(Kind, _textTokens, diagnostics, GetAnnotations()); + return new MarkupBlockSyntax(Kind, _children, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new HtmlTextLiteralSyntax(Kind, _textTokens, GetDiagnostics(), annotations); + return new MarkupBlockSyntax(Kind, _children, GetDiagnostics(), annotations); } } - internal sealed partial class HtmlDocumentSyntax : HtmlSyntaxNode + internal sealed partial class MarkupTransitionSyntax : MarkupSyntaxNode { - private readonly HtmlMarkupBlockSyntax _document; + private readonly GreenNode _transitionTokens; - internal HtmlDocumentSyntax(SyntaxKind kind, HtmlMarkupBlockSyntax document, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal MarkupTransitionSyntax(SyntaxKind kind, GreenNode transitionTokens, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 1; - AdjustFlagsAndWidth(document); - _document = document; + if (transitionTokens != null) + { + AdjustFlagsAndWidth(transitionTokens); + _transitionTokens = transitionTokens; + } } - internal HtmlDocumentSyntax(SyntaxKind kind, HtmlMarkupBlockSyntax document) + internal MarkupTransitionSyntax(SyntaxKind kind, GreenNode transitionTokens) : base(kind) { SlotCount = 1; - AdjustFlagsAndWidth(document); - _document = document; + if (transitionTokens != null) + { + AdjustFlagsAndWidth(transitionTokens); + _transitionTokens = transitionTokens; + } } - public HtmlMarkupBlockSyntax Document { get { return _document; } } + public SyntaxList TransitionTokens { get { return new SyntaxList(_transitionTokens); } } internal override GreenNode GetSlot(int index) { switch (index) { - case 0: return _document; + case 0: return _transitionTokens; default: return null; } } internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.HtmlDocumentSyntax(this, parent, position); + return new Syntax.MarkupTransitionSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlDocument(this); + return visitor.VisitMarkupTransition(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlDocument(this); + visitor.VisitMarkupTransition(this); } - public HtmlDocumentSyntax Update(HtmlMarkupBlockSyntax document) + public MarkupTransitionSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList transitionTokens) { - if (document != Document) + if (transitionTokens != TransitionTokens) { - var newNode = SyntaxFactory.HtmlDocument(document); + var newNode = SyntaxFactory.MarkupTransition(transitionTokens); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -450,73 +626,73 @@ public HtmlDocumentSyntax Update(HtmlMarkupBlockSyntax document) internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new HtmlDocumentSyntax(Kind, _document, diagnostics, GetAnnotations()); + return new MarkupTransitionSyntax(Kind, _transitionTokens, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new HtmlDocumentSyntax(Kind, _document, GetDiagnostics(), annotations); + return new MarkupTransitionSyntax(Kind, _transitionTokens, GetDiagnostics(), annotations); } } - internal sealed partial class HtmlBlockSyntax : HtmlSyntaxNode + internal sealed partial class MarkupTextLiteralSyntax : MarkupSyntaxNode { - private readonly GreenNode _children; + private readonly GreenNode _literalTokens; - internal HtmlBlockSyntax(SyntaxKind kind, GreenNode children, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal MarkupTextLiteralSyntax(SyntaxKind kind, GreenNode literalTokens, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 1; - if (children != null) + if (literalTokens != null) { - AdjustFlagsAndWidth(children); - _children = children; + AdjustFlagsAndWidth(literalTokens); + _literalTokens = literalTokens; } } - internal HtmlBlockSyntax(SyntaxKind kind, GreenNode children) + internal MarkupTextLiteralSyntax(SyntaxKind kind, GreenNode literalTokens) : base(kind) { SlotCount = 1; - if (children != null) + if (literalTokens != null) { - AdjustFlagsAndWidth(children); - _children = children; + AdjustFlagsAndWidth(literalTokens); + _literalTokens = literalTokens; } } - public SyntaxList Children { get { return new SyntaxList(_children); } } + public SyntaxList LiteralTokens { get { return new SyntaxList(_literalTokens); } } internal override GreenNode GetSlot(int index) { switch (index) { - case 0: return _children; + case 0: return _literalTokens; default: return null; } } internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.HtmlBlockSyntax(this, parent, position); + return new Syntax.MarkupTextLiteralSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlBlock(this); + return visitor.VisitMarkupTextLiteral(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlBlock(this); + visitor.VisitMarkupTextLiteral(this); } - public HtmlBlockSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) + public MarkupTextLiteralSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList literalTokens) { - if (children != Children) + if (literalTokens != LiteralTokens) { - var newNode = SyntaxFactory.HtmlBlock(children); + var newNode = SyntaxFactory.MarkupTextLiteral(literalTokens); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -531,73 +707,73 @@ public HtmlBlockSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.Interna internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new HtmlBlockSyntax(Kind, _children, diagnostics, GetAnnotations()); + return new MarkupTextLiteralSyntax(Kind, _literalTokens, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new HtmlBlockSyntax(Kind, _children, GetDiagnostics(), annotations); + return new MarkupTextLiteralSyntax(Kind, _literalTokens, GetDiagnostics(), annotations); } } - internal sealed partial class HtmlMarkupBlockSyntax : HtmlSyntaxNode + internal sealed partial class MarkupEphemeralTextLiteralSyntax : MarkupSyntaxNode { - private readonly GreenNode _children; + private readonly GreenNode _literalTokens; - internal HtmlMarkupBlockSyntax(SyntaxKind kind, GreenNode children, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal MarkupEphemeralTextLiteralSyntax(SyntaxKind kind, GreenNode literalTokens, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 1; - if (children != null) + if (literalTokens != null) { - AdjustFlagsAndWidth(children); - _children = children; + AdjustFlagsAndWidth(literalTokens); + _literalTokens = literalTokens; } } - internal HtmlMarkupBlockSyntax(SyntaxKind kind, GreenNode children) + internal MarkupEphemeralTextLiteralSyntax(SyntaxKind kind, GreenNode literalTokens) : base(kind) { SlotCount = 1; - if (children != null) + if (literalTokens != null) { - AdjustFlagsAndWidth(children); - _children = children; + AdjustFlagsAndWidth(literalTokens); + _literalTokens = literalTokens; } } - public SyntaxList Children { get { return new SyntaxList(_children); } } + public SyntaxList LiteralTokens { get { return new SyntaxList(_literalTokens); } } internal override GreenNode GetSlot(int index) { switch (index) { - case 0: return _children; + case 0: return _literalTokens; default: return null; } } internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.HtmlMarkupBlockSyntax(this, parent, position); + return new Syntax.MarkupEphemeralTextLiteralSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlMarkupBlock(this); + return visitor.VisitMarkupEphemeralTextLiteral(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlMarkupBlock(this); + visitor.VisitMarkupEphemeralTextLiteral(this); } - public HtmlMarkupBlockSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) + public MarkupEphemeralTextLiteralSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList literalTokens) { - if (children != Children) + if (literalTokens != LiteralTokens) { - var newNode = SyntaxFactory.HtmlMarkupBlock(children); + var newNode = SyntaxFactory.MarkupEphemeralTextLiteral(literalTokens); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -612,20 +788,20 @@ public HtmlMarkupBlockSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.I internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new HtmlMarkupBlockSyntax(Kind, _children, diagnostics, GetAnnotations()); + return new MarkupEphemeralTextLiteralSyntax(Kind, _literalTokens, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new HtmlMarkupBlockSyntax(Kind, _children, GetDiagnostics(), annotations); + return new MarkupEphemeralTextLiteralSyntax(Kind, _literalTokens, GetDiagnostics(), annotations); } } - internal sealed partial class HtmlCommentBlockSyntax : HtmlSyntaxNode + internal sealed partial class MarkupCommentBlockSyntax : RazorBlockSyntax { private readonly GreenNode _children; - internal HtmlCommentBlockSyntax(SyntaxKind kind, GreenNode children, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal MarkupCommentBlockSyntax(SyntaxKind kind, GreenNode children, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 1; @@ -637,7 +813,7 @@ internal HtmlCommentBlockSyntax(SyntaxKind kind, GreenNode children, RazorDiagno } - internal HtmlCommentBlockSyntax(SyntaxKind kind, GreenNode children) + internal MarkupCommentBlockSyntax(SyntaxKind kind, GreenNode children) : base(kind) { SlotCount = 1; @@ -648,7 +824,7 @@ internal HtmlCommentBlockSyntax(SyntaxKind kind, GreenNode children) } } - public SyntaxList Children { get { return new SyntaxList(_children); } } + public override SyntaxList Children { get { return new SyntaxList(_children); } } internal override GreenNode GetSlot(int index) { @@ -661,24 +837,24 @@ internal override GreenNode GetSlot(int index) internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.HtmlCommentBlockSyntax(this, parent, position); + return new Syntax.MarkupCommentBlockSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlCommentBlock(this); + return visitor.VisitMarkupCommentBlock(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlCommentBlock(this); + visitor.VisitMarkupCommentBlock(this); } - public HtmlCommentBlockSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) + public MarkupCommentBlockSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) { if (children != Children) { - var newNode = SyntaxFactory.HtmlCommentBlock(children); + var newNode = SyntaxFactory.MarkupCommentBlock(children); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -693,20 +869,20 @@ public HtmlCommentBlockSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax. internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new HtmlCommentBlockSyntax(Kind, _children, diagnostics, GetAnnotations()); + return new MarkupCommentBlockSyntax(Kind, _children, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new HtmlCommentBlockSyntax(Kind, _children, GetDiagnostics(), annotations); + return new MarkupCommentBlockSyntax(Kind, _children, GetDiagnostics(), annotations); } } - internal sealed partial class HtmlTagBlockSyntax : HtmlSyntaxNode + internal sealed partial class MarkupTagBlockSyntax : RazorBlockSyntax { private readonly GreenNode _children; - internal HtmlTagBlockSyntax(SyntaxKind kind, GreenNode children, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal MarkupTagBlockSyntax(SyntaxKind kind, GreenNode children, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 1; @@ -718,7 +894,7 @@ internal HtmlTagBlockSyntax(SyntaxKind kind, GreenNode children, RazorDiagnostic } - internal HtmlTagBlockSyntax(SyntaxKind kind, GreenNode children) + internal MarkupTagBlockSyntax(SyntaxKind kind, GreenNode children) : base(kind) { SlotCount = 1; @@ -729,7 +905,7 @@ internal HtmlTagBlockSyntax(SyntaxKind kind, GreenNode children) } } - public SyntaxList Children { get { return new SyntaxList(_children); } } + public override SyntaxList Children { get { return new SyntaxList(_children); } } internal override GreenNode GetSlot(int index) { @@ -742,24 +918,24 @@ internal override GreenNode GetSlot(int index) internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.HtmlTagBlockSyntax(this, parent, position); + return new Syntax.MarkupTagBlockSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlTagBlock(this); + return visitor.VisitMarkupTagBlock(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlTagBlock(this); + visitor.VisitMarkupTagBlock(this); } - public HtmlTagBlockSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) + public MarkupTagBlockSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) { if (children != Children) { - var newNode = SyntaxFactory.HtmlTagBlock(children); + var newNode = SyntaxFactory.MarkupTagBlock(children); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -774,21 +950,21 @@ public HtmlTagBlockSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.Inte internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new HtmlTagBlockSyntax(Kind, _children, diagnostics, GetAnnotations()); + return new MarkupTagBlockSyntax(Kind, _children, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new HtmlTagBlockSyntax(Kind, _children, GetDiagnostics(), annotations); + return new MarkupTagBlockSyntax(Kind, _children, GetDiagnostics(), annotations); } } - internal sealed partial class HtmlMinimizedAttributeBlockSyntax : HtmlSyntaxNode + internal sealed partial class MarkupMinimizedAttributeBlockSyntax : MarkupSyntaxNode { - private readonly HtmlTextLiteralSyntax _namePrefix; - private readonly HtmlTextLiteralSyntax _name; + private readonly MarkupTextLiteralSyntax _namePrefix; + private readonly MarkupTextLiteralSyntax _name; - internal HtmlMinimizedAttributeBlockSyntax(SyntaxKind kind, HtmlTextLiteralSyntax namePrefix, HtmlTextLiteralSyntax name, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal MarkupMinimizedAttributeBlockSyntax(SyntaxKind kind, MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 2; @@ -802,7 +978,7 @@ internal HtmlMinimizedAttributeBlockSyntax(SyntaxKind kind, HtmlTextLiteralSynta } - internal HtmlMinimizedAttributeBlockSyntax(SyntaxKind kind, HtmlTextLiteralSyntax namePrefix, HtmlTextLiteralSyntax name) + internal MarkupMinimizedAttributeBlockSyntax(SyntaxKind kind, MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name) : base(kind) { SlotCount = 2; @@ -815,8 +991,8 @@ internal HtmlMinimizedAttributeBlockSyntax(SyntaxKind kind, HtmlTextLiteralSynta _name = name; } - public HtmlTextLiteralSyntax NamePrefix { get { return _namePrefix; } } - public HtmlTextLiteralSyntax Name { get { return _name; } } + public MarkupTextLiteralSyntax NamePrefix { get { return _namePrefix; } } + public MarkupTextLiteralSyntax Name { get { return _name; } } internal override GreenNode GetSlot(int index) { @@ -830,24 +1006,24 @@ internal override GreenNode GetSlot(int index) internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.HtmlMinimizedAttributeBlockSyntax(this, parent, position); + return new Syntax.MarkupMinimizedAttributeBlockSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlMinimizedAttributeBlock(this); + return visitor.VisitMarkupMinimizedAttributeBlock(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlMinimizedAttributeBlock(this); + visitor.VisitMarkupMinimizedAttributeBlock(this); } - public HtmlMinimizedAttributeBlockSyntax Update(HtmlTextLiteralSyntax namePrefix, HtmlTextLiteralSyntax name) + public MarkupMinimizedAttributeBlockSyntax Update(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name) { if (namePrefix != NamePrefix || name != Name) { - var newNode = SyntaxFactory.HtmlMinimizedAttributeBlock(namePrefix, name); + var newNode = SyntaxFactory.MarkupMinimizedAttributeBlock(namePrefix, name); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -862,26 +1038,26 @@ public HtmlMinimizedAttributeBlockSyntax Update(HtmlTextLiteralSyntax namePrefix internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new HtmlMinimizedAttributeBlockSyntax(Kind, _namePrefix, _name, diagnostics, GetAnnotations()); + return new MarkupMinimizedAttributeBlockSyntax(Kind, _namePrefix, _name, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new HtmlMinimizedAttributeBlockSyntax(Kind, _namePrefix, _name, GetDiagnostics(), annotations); + return new MarkupMinimizedAttributeBlockSyntax(Kind, _namePrefix, _name, GetDiagnostics(), annotations); } } - internal sealed partial class HtmlAttributeBlockSyntax : HtmlSyntaxNode + internal sealed partial class MarkupAttributeBlockSyntax : MarkupSyntaxNode { - private readonly HtmlTextLiteralSyntax _namePrefix; - private readonly HtmlTextLiteralSyntax _name; - private readonly HtmlTextLiteralSyntax _nameSuffix; + private readonly MarkupTextLiteralSyntax _namePrefix; + private readonly MarkupTextLiteralSyntax _name; + private readonly MarkupTextLiteralSyntax _nameSuffix; private readonly SyntaxToken _equalsToken; - private readonly HtmlTextLiteralSyntax _valuePrefix; - private readonly HtmlBlockSyntax _value; - private readonly HtmlTextLiteralSyntax _valueSuffix; + private readonly MarkupTextLiteralSyntax _valuePrefix; + private readonly RazorBlockSyntax _value; + private readonly MarkupTextLiteralSyntax _valueSuffix; - internal HtmlAttributeBlockSyntax(SyntaxKind kind, HtmlTextLiteralSyntax namePrefix, HtmlTextLiteralSyntax name, HtmlTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, HtmlTextLiteralSyntax valuePrefix, HtmlBlockSyntax value, HtmlTextLiteralSyntax valueSuffix, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + 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; @@ -914,7 +1090,7 @@ internal HtmlAttributeBlockSyntax(SyntaxKind kind, HtmlTextLiteralSyntax namePre } - internal HtmlAttributeBlockSyntax(SyntaxKind kind, HtmlTextLiteralSyntax namePrefix, HtmlTextLiteralSyntax name, HtmlTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, HtmlTextLiteralSyntax valuePrefix, HtmlBlockSyntax value, HtmlTextLiteralSyntax valueSuffix) + internal MarkupAttributeBlockSyntax(SyntaxKind kind, MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, MarkupTextLiteralSyntax valuePrefix, RazorBlockSyntax value, MarkupTextLiteralSyntax valueSuffix) : base(kind) { SlotCount = 7; @@ -946,13 +1122,13 @@ internal HtmlAttributeBlockSyntax(SyntaxKind kind, HtmlTextLiteralSyntax namePre } } - public HtmlTextLiteralSyntax NamePrefix { get { return _namePrefix; } } - public HtmlTextLiteralSyntax Name { get { return _name; } } - public HtmlTextLiteralSyntax NameSuffix { get { return _nameSuffix; } } + 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 HtmlTextLiteralSyntax ValuePrefix { get { return _valuePrefix; } } - public HtmlBlockSyntax Value { get { return _value; } } - public HtmlTextLiteralSyntax ValueSuffix { get { return _valueSuffix; } } + public MarkupTextLiteralSyntax ValuePrefix { get { return _valuePrefix; } } + public RazorBlockSyntax Value { get { return _value; } } + public MarkupTextLiteralSyntax ValueSuffix { get { return _valueSuffix; } } internal override GreenNode GetSlot(int index) { @@ -971,24 +1147,24 @@ internal override GreenNode GetSlot(int index) internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.HtmlAttributeBlockSyntax(this, parent, position); + return new Syntax.MarkupAttributeBlockSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlAttributeBlock(this); + return visitor.VisitMarkupAttributeBlock(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlAttributeBlock(this); + visitor.VisitMarkupAttributeBlock(this); } - public HtmlAttributeBlockSyntax Update(HtmlTextLiteralSyntax namePrefix, HtmlTextLiteralSyntax name, HtmlTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, HtmlTextLiteralSyntax valuePrefix, HtmlBlockSyntax value, HtmlTextLiteralSyntax valueSuffix) + 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.HtmlAttributeBlock(namePrefix, name, nameSuffix, equalsToken, valuePrefix, value, 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); @@ -1003,21 +1179,21 @@ public HtmlAttributeBlockSyntax Update(HtmlTextLiteralSyntax namePrefix, HtmlTex internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new HtmlAttributeBlockSyntax(Kind, _namePrefix, _name, _nameSuffix, _equalsToken, _valuePrefix, _value, _valueSuffix, diagnostics, GetAnnotations()); + return new MarkupAttributeBlockSyntax(Kind, _namePrefix, _name, _nameSuffix, _equalsToken, _valuePrefix, _value, _valueSuffix, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new HtmlAttributeBlockSyntax(Kind, _namePrefix, _name, _nameSuffix, _equalsToken, _valuePrefix, _value, _valueSuffix, GetDiagnostics(), annotations); + return new MarkupAttributeBlockSyntax(Kind, _namePrefix, _name, _nameSuffix, _equalsToken, _valuePrefix, _value, _valueSuffix, GetDiagnostics(), annotations); } } - internal sealed partial class HtmlLiteralAttributeValueSyntax : HtmlSyntaxNode + internal sealed partial class MarkupLiteralAttributeValueSyntax : MarkupSyntaxNode { - private readonly HtmlTextLiteralSyntax _prefix; - private readonly HtmlTextLiteralSyntax _value; + private readonly MarkupTextLiteralSyntax _prefix; + private readonly MarkupTextLiteralSyntax _value; - internal HtmlLiteralAttributeValueSyntax(SyntaxKind kind, HtmlTextLiteralSyntax prefix, HtmlTextLiteralSyntax value, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal MarkupLiteralAttributeValueSyntax(SyntaxKind kind, MarkupTextLiteralSyntax prefix, MarkupTextLiteralSyntax value, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 2; @@ -1031,7 +1207,7 @@ internal HtmlLiteralAttributeValueSyntax(SyntaxKind kind, HtmlTextLiteralSyntax } - internal HtmlLiteralAttributeValueSyntax(SyntaxKind kind, HtmlTextLiteralSyntax prefix, HtmlTextLiteralSyntax value) + internal MarkupLiteralAttributeValueSyntax(SyntaxKind kind, MarkupTextLiteralSyntax prefix, MarkupTextLiteralSyntax value) : base(kind) { SlotCount = 2; @@ -1044,8 +1220,8 @@ internal HtmlLiteralAttributeValueSyntax(SyntaxKind kind, HtmlTextLiteralSyntax _value = value; } - public HtmlTextLiteralSyntax Prefix { get { return _prefix; } } - public HtmlTextLiteralSyntax Value { get { return _value; } } + public MarkupTextLiteralSyntax Prefix { get { return _prefix; } } + public MarkupTextLiteralSyntax Value { get { return _value; } } internal override GreenNode GetSlot(int index) { @@ -1059,24 +1235,24 @@ internal override GreenNode GetSlot(int index) internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.HtmlLiteralAttributeValueSyntax(this, parent, position); + return new Syntax.MarkupLiteralAttributeValueSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlLiteralAttributeValue(this); + return visitor.VisitMarkupLiteralAttributeValue(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlLiteralAttributeValue(this); + visitor.VisitMarkupLiteralAttributeValue(this); } - public HtmlLiteralAttributeValueSyntax Update(HtmlTextLiteralSyntax prefix, HtmlTextLiteralSyntax value) + public MarkupLiteralAttributeValueSyntax Update(MarkupTextLiteralSyntax prefix, MarkupTextLiteralSyntax value) { if (prefix != Prefix || value != Value) { - var newNode = SyntaxFactory.HtmlLiteralAttributeValue(prefix, value); + var newNode = SyntaxFactory.MarkupLiteralAttributeValue(prefix, value); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -1091,21 +1267,21 @@ public HtmlLiteralAttributeValueSyntax Update(HtmlTextLiteralSyntax prefix, Html internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new HtmlLiteralAttributeValueSyntax(Kind, _prefix, _value, diagnostics, GetAnnotations()); + return new MarkupLiteralAttributeValueSyntax(Kind, _prefix, _value, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new HtmlLiteralAttributeValueSyntax(Kind, _prefix, _value, GetDiagnostics(), annotations); + return new MarkupLiteralAttributeValueSyntax(Kind, _prefix, _value, GetDiagnostics(), annotations); } } - internal sealed partial class HtmlDynamicAttributeValueSyntax : HtmlSyntaxNode + internal sealed partial class MarkupDynamicAttributeValueSyntax : MarkupSyntaxNode { - private readonly HtmlTextLiteralSyntax _prefix; - private readonly HtmlBlockSyntax _value; + private readonly MarkupTextLiteralSyntax _prefix; + private readonly RazorBlockSyntax _value; - internal HtmlDynamicAttributeValueSyntax(SyntaxKind kind, HtmlTextLiteralSyntax prefix, HtmlBlockSyntax value, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal MarkupDynamicAttributeValueSyntax(SyntaxKind kind, MarkupTextLiteralSyntax prefix, RazorBlockSyntax value, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 2; @@ -1119,7 +1295,7 @@ internal HtmlDynamicAttributeValueSyntax(SyntaxKind kind, HtmlTextLiteralSyntax } - internal HtmlDynamicAttributeValueSyntax(SyntaxKind kind, HtmlTextLiteralSyntax prefix, HtmlBlockSyntax value) + internal MarkupDynamicAttributeValueSyntax(SyntaxKind kind, MarkupTextLiteralSyntax prefix, RazorBlockSyntax value) : base(kind) { SlotCount = 2; @@ -1132,8 +1308,8 @@ internal HtmlDynamicAttributeValueSyntax(SyntaxKind kind, HtmlTextLiteralSyntax _value = value; } - public HtmlTextLiteralSyntax Prefix { get { return _prefix; } } - public HtmlBlockSyntax Value { get { return _value; } } + public MarkupTextLiteralSyntax Prefix { get { return _prefix; } } + public RazorBlockSyntax Value { get { return _value; } } internal override GreenNode GetSlot(int index) { @@ -1147,24 +1323,24 @@ internal override GreenNode GetSlot(int index) internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.HtmlDynamicAttributeValueSyntax(this, parent, position); + return new Syntax.MarkupDynamicAttributeValueSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlDynamicAttributeValue(this); + return visitor.VisitMarkupDynamicAttributeValue(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlDynamicAttributeValue(this); + visitor.VisitMarkupDynamicAttributeValue(this); } - public HtmlDynamicAttributeValueSyntax Update(HtmlTextLiteralSyntax prefix, HtmlBlockSyntax value) + public MarkupDynamicAttributeValueSyntax Update(MarkupTextLiteralSyntax prefix, RazorBlockSyntax value) { if (prefix != Prefix || value != Value) { - var newNode = SyntaxFactory.HtmlDynamicAttributeValue(prefix, value); + var newNode = SyntaxFactory.MarkupDynamicAttributeValue(prefix, value); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -1179,12 +1355,12 @@ public HtmlDynamicAttributeValueSyntax Update(HtmlTextLiteralSyntax prefix, Html internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new HtmlDynamicAttributeValueSyntax(Kind, _prefix, _value, diagnostics, GetAnnotations()); + return new MarkupDynamicAttributeValueSyntax(Kind, _prefix, _value, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new HtmlDynamicAttributeValueSyntax(Kind, _prefix, _value, GetDiagnostics(), annotations); + return new MarkupDynamicAttributeValueSyntax(Kind, _prefix, _value, GetDiagnostics(), annotations); } } @@ -1200,139 +1376,64 @@ internal CSharpSyntaxNode(SyntaxKind kind) } } - internal sealed partial class CSharpTransitionSyntax : CSharpSyntaxNode + internal sealed partial class CSharpCodeBlockSyntax : RazorBlockSyntax { - private readonly SyntaxToken _transition; - - internal CSharpTransitionSyntax(SyntaxKind kind, SyntaxToken transition, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) - : base(kind, diagnostics, annotations) - { - SlotCount = 1; - AdjustFlagsAndWidth(transition); - _transition = transition; - } - - - internal CSharpTransitionSyntax(SyntaxKind kind, SyntaxToken transition) - : base(kind) - { - SlotCount = 1; - AdjustFlagsAndWidth(transition); - _transition = transition; - } - - public SyntaxToken Transition { get { return _transition; } } - - internal override GreenNode GetSlot(int index) - { - switch (index) - { - case 0: return _transition; - default: return null; - } - } - - internal override SyntaxNode CreateRed(SyntaxNode parent, int position) - { - return new Syntax.CSharpTransitionSyntax(this, parent, position); - } - - public override TResult Accept(SyntaxVisitor visitor) - { - return visitor.VisitCSharpTransition(this); - } - - public override void Accept(SyntaxVisitor visitor) - { - visitor.VisitCSharpTransition(this); - } - - public CSharpTransitionSyntax Update(SyntaxToken transition) - { - if (transition != Transition) - { - var newNode = SyntaxFactory.CSharpTransition(transition); - 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 CSharpTransitionSyntax(Kind, _transition, diagnostics, GetAnnotations()); - } - - internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) - { - return new CSharpTransitionSyntax(Kind, _transition, GetDiagnostics(), annotations); - } - } - - internal sealed partial class CSharpStatementLiteralSyntax : CSharpSyntaxNode - { - private readonly GreenNode _cSharpTokens; + private readonly GreenNode _children; - internal CSharpStatementLiteralSyntax(SyntaxKind kind, GreenNode cSharpTokens, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal CSharpCodeBlockSyntax(SyntaxKind kind, GreenNode children, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 1; - if (cSharpTokens != null) + if (children != null) { - AdjustFlagsAndWidth(cSharpTokens); - _cSharpTokens = cSharpTokens; + AdjustFlagsAndWidth(children); + _children = children; } } - internal CSharpStatementLiteralSyntax(SyntaxKind kind, GreenNode cSharpTokens) + internal CSharpCodeBlockSyntax(SyntaxKind kind, GreenNode children) : base(kind) { SlotCount = 1; - if (cSharpTokens != null) + if (children != null) { - AdjustFlagsAndWidth(cSharpTokens); - _cSharpTokens = cSharpTokens; + AdjustFlagsAndWidth(children); + _children = children; } } - public SyntaxList CSharpTokens { get { return new SyntaxList(_cSharpTokens); } } + public override SyntaxList Children { get { return new SyntaxList(_children); } } internal override GreenNode GetSlot(int index) { switch (index) { - case 0: return _cSharpTokens; + case 0: return _children; default: return null; } } internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.CSharpStatementLiteralSyntax(this, parent, position); + return new Syntax.CSharpCodeBlockSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitCSharpStatementLiteral(this); + return visitor.VisitCSharpCodeBlock(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitCSharpStatementLiteral(this); + visitor.VisitCSharpCodeBlock(this); } - public CSharpStatementLiteralSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList cSharpTokens) + public CSharpCodeBlockSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) { - if (cSharpTokens != CSharpTokens) + if (children != Children) { - var newNode = SyntaxFactory.CSharpStatementLiteral(cSharpTokens); + var newNode = SyntaxFactory.CSharpCodeBlock(children); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -1347,73 +1448,67 @@ public CSharpStatementLiteralSyntax Update(Microsoft.AspNetCore.Razor.Language.S internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new CSharpStatementLiteralSyntax(Kind, _cSharpTokens, diagnostics, GetAnnotations()); + return new CSharpCodeBlockSyntax(Kind, _children, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new CSharpStatementLiteralSyntax(Kind, _cSharpTokens, GetDiagnostics(), annotations); + return new CSharpCodeBlockSyntax(Kind, _children, GetDiagnostics(), annotations); } } - internal sealed partial class CSharpExpressionLiteralSyntax : CSharpSyntaxNode + internal sealed partial class CSharpTransitionSyntax : CSharpSyntaxNode { - private readonly GreenNode _cSharpTokens; + private readonly SyntaxToken _transition; - internal CSharpExpressionLiteralSyntax(SyntaxKind kind, GreenNode cSharpTokens, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal CSharpTransitionSyntax(SyntaxKind kind, SyntaxToken transition, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 1; - if (cSharpTokens != null) - { - AdjustFlagsAndWidth(cSharpTokens); - _cSharpTokens = cSharpTokens; - } + AdjustFlagsAndWidth(transition); + _transition = transition; } - internal CSharpExpressionLiteralSyntax(SyntaxKind kind, GreenNode cSharpTokens) + internal CSharpTransitionSyntax(SyntaxKind kind, SyntaxToken transition) : base(kind) { SlotCount = 1; - if (cSharpTokens != null) - { - AdjustFlagsAndWidth(cSharpTokens); - _cSharpTokens = cSharpTokens; - } + AdjustFlagsAndWidth(transition); + _transition = transition; } - public SyntaxList CSharpTokens { get { return new SyntaxList(_cSharpTokens); } } + public SyntaxToken Transition { get { return _transition; } } internal override GreenNode GetSlot(int index) { switch (index) { - case 0: return _cSharpTokens; + case 0: return _transition; default: return null; } } internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.CSharpExpressionLiteralSyntax(this, parent, position); + return new Syntax.CSharpTransitionSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitCSharpExpressionLiteral(this); + return visitor.VisitCSharpTransition(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitCSharpExpressionLiteral(this); + visitor.VisitCSharpTransition(this); } - public CSharpExpressionLiteralSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList cSharpTokens) + public CSharpTransitionSyntax Update(SyntaxToken transition) { - if (cSharpTokens != CSharpTokens) + if (transition != Transition) { - var newNode = SyntaxFactory.CSharpExpressionLiteral(cSharpTokens); + var newNode = SyntaxFactory.CSharpTransition(transition); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -1428,73 +1523,73 @@ public CSharpExpressionLiteralSyntax Update(Microsoft.AspNetCore.Razor.Language. internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new CSharpExpressionLiteralSyntax(Kind, _cSharpTokens, diagnostics, GetAnnotations()); + return new CSharpTransitionSyntax(Kind, _transition, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new CSharpExpressionLiteralSyntax(Kind, _cSharpTokens, GetDiagnostics(), annotations); + return new CSharpTransitionSyntax(Kind, _transition, GetDiagnostics(), annotations); } } - internal sealed partial class CSharpHiddenLiteralSyntax : CSharpSyntaxNode + internal sealed partial class CSharpStatementLiteralSyntax : CSharpSyntaxNode { - private readonly GreenNode _cSharpTokens; + private readonly GreenNode _literalTokens; - internal CSharpHiddenLiteralSyntax(SyntaxKind kind, GreenNode cSharpTokens, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal CSharpStatementLiteralSyntax(SyntaxKind kind, GreenNode literalTokens, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 1; - if (cSharpTokens != null) + if (literalTokens != null) { - AdjustFlagsAndWidth(cSharpTokens); - _cSharpTokens = cSharpTokens; + AdjustFlagsAndWidth(literalTokens); + _literalTokens = literalTokens; } } - internal CSharpHiddenLiteralSyntax(SyntaxKind kind, GreenNode cSharpTokens) + internal CSharpStatementLiteralSyntax(SyntaxKind kind, GreenNode literalTokens) : base(kind) { SlotCount = 1; - if (cSharpTokens != null) + if (literalTokens != null) { - AdjustFlagsAndWidth(cSharpTokens); - _cSharpTokens = cSharpTokens; + AdjustFlagsAndWidth(literalTokens); + _literalTokens = literalTokens; } } - public SyntaxList CSharpTokens { get { return new SyntaxList(_cSharpTokens); } } + public SyntaxList LiteralTokens { get { return new SyntaxList(_literalTokens); } } internal override GreenNode GetSlot(int index) { switch (index) { - case 0: return _cSharpTokens; + case 0: return _literalTokens; default: return null; } } internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.CSharpHiddenLiteralSyntax(this, parent, position); + return new Syntax.CSharpStatementLiteralSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitCSharpHiddenLiteral(this); + return visitor.VisitCSharpStatementLiteral(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitCSharpHiddenLiteral(this); + visitor.VisitCSharpStatementLiteral(this); } - public CSharpHiddenLiteralSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList cSharpTokens) + public CSharpStatementLiteralSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList literalTokens) { - if (cSharpTokens != CSharpTokens) + if (literalTokens != LiteralTokens) { - var newNode = SyntaxFactory.CSharpHiddenLiteral(cSharpTokens); + var newNode = SyntaxFactory.CSharpStatementLiteral(literalTokens); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -1509,73 +1604,73 @@ public CSharpHiddenLiteralSyntax Update(Microsoft.AspNetCore.Razor.Language.Synt internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new CSharpHiddenLiteralSyntax(Kind, _cSharpTokens, diagnostics, GetAnnotations()); + return new CSharpStatementLiteralSyntax(Kind, _literalTokens, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new CSharpHiddenLiteralSyntax(Kind, _cSharpTokens, GetDiagnostics(), annotations); + return new CSharpStatementLiteralSyntax(Kind, _literalTokens, GetDiagnostics(), annotations); } } - internal sealed partial class CSharpNoneLiteralSyntax : CSharpSyntaxNode + internal sealed partial class CSharpExpressionLiteralSyntax : CSharpSyntaxNode { - private readonly GreenNode _cSharpTokens; + private readonly GreenNode _literalTokens; - internal CSharpNoneLiteralSyntax(SyntaxKind kind, GreenNode cSharpTokens, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal CSharpExpressionLiteralSyntax(SyntaxKind kind, GreenNode literalTokens, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 1; - if (cSharpTokens != null) + if (literalTokens != null) { - AdjustFlagsAndWidth(cSharpTokens); - _cSharpTokens = cSharpTokens; + AdjustFlagsAndWidth(literalTokens); + _literalTokens = literalTokens; } } - internal CSharpNoneLiteralSyntax(SyntaxKind kind, GreenNode cSharpTokens) + internal CSharpExpressionLiteralSyntax(SyntaxKind kind, GreenNode literalTokens) : base(kind) { SlotCount = 1; - if (cSharpTokens != null) + if (literalTokens != null) { - AdjustFlagsAndWidth(cSharpTokens); - _cSharpTokens = cSharpTokens; + AdjustFlagsAndWidth(literalTokens); + _literalTokens = literalTokens; } } - public SyntaxList CSharpTokens { get { return new SyntaxList(_cSharpTokens); } } + public SyntaxList LiteralTokens { get { return new SyntaxList(_literalTokens); } } internal override GreenNode GetSlot(int index) { switch (index) { - case 0: return _cSharpTokens; + case 0: return _literalTokens; default: return null; } } internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.CSharpNoneLiteralSyntax(this, parent, position); + return new Syntax.CSharpExpressionLiteralSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitCSharpNoneLiteral(this); + return visitor.VisitCSharpExpressionLiteral(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitCSharpNoneLiteral(this); + visitor.VisitCSharpExpressionLiteral(this); } - public CSharpNoneLiteralSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList cSharpTokens) + public CSharpExpressionLiteralSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList literalTokens) { - if (cSharpTokens != CSharpTokens) + if (literalTokens != LiteralTokens) { - var newNode = SyntaxFactory.CSharpNoneLiteral(cSharpTokens); + var newNode = SyntaxFactory.CSharpExpressionLiteral(literalTokens); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -1590,73 +1685,73 @@ public CSharpNoneLiteralSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new CSharpNoneLiteralSyntax(Kind, _cSharpTokens, diagnostics, GetAnnotations()); + return new CSharpExpressionLiteralSyntax(Kind, _literalTokens, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new CSharpNoneLiteralSyntax(Kind, _cSharpTokens, GetDiagnostics(), annotations); + return new CSharpExpressionLiteralSyntax(Kind, _literalTokens, GetDiagnostics(), annotations); } } - internal sealed partial class CSharpCodeBlockSyntax : CSharpSyntaxNode + internal sealed partial class CSharpEphemeralTextLiteralSyntax : CSharpSyntaxNode { - private readonly GreenNode _children; + private readonly GreenNode _literalTokens; - internal CSharpCodeBlockSyntax(SyntaxKind kind, GreenNode children, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal CSharpEphemeralTextLiteralSyntax(SyntaxKind kind, GreenNode literalTokens, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 1; - if (children != null) + if (literalTokens != null) { - AdjustFlagsAndWidth(children); - _children = children; + AdjustFlagsAndWidth(literalTokens); + _literalTokens = literalTokens; } } - internal CSharpCodeBlockSyntax(SyntaxKind kind, GreenNode children) + internal CSharpEphemeralTextLiteralSyntax(SyntaxKind kind, GreenNode literalTokens) : base(kind) { SlotCount = 1; - if (children != null) + if (literalTokens != null) { - AdjustFlagsAndWidth(children); - _children = children; + AdjustFlagsAndWidth(literalTokens); + _literalTokens = literalTokens; } } - public SyntaxList Children { get { return new SyntaxList(_children); } } + public SyntaxList LiteralTokens { get { return new SyntaxList(_literalTokens); } } internal override GreenNode GetSlot(int index) { switch (index) { - case 0: return _children; + case 0: return _literalTokens; default: return null; } } internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.CSharpCodeBlockSyntax(this, parent, position); + return new Syntax.CSharpEphemeralTextLiteralSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitCSharpCodeBlock(this); + return visitor.VisitCSharpEphemeralTextLiteral(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitCSharpCodeBlock(this); + visitor.VisitCSharpEphemeralTextLiteral(this); } - public CSharpCodeBlockSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) + public CSharpEphemeralTextLiteralSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList literalTokens) { - if (children != Children) + if (literalTokens != LiteralTokens) { - var newNode = SyntaxFactory.CSharpCodeBlock(children); + var newNode = SyntaxFactory.CSharpEphemeralTextLiteral(literalTokens); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -1671,16 +1766,16 @@ public CSharpCodeBlockSyntax Update(Microsoft.AspNetCore.Razor.Language.Syntax.I internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new CSharpCodeBlockSyntax(Kind, _children, diagnostics, GetAnnotations()); + return new CSharpEphemeralTextLiteralSyntax(Kind, _literalTokens, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new CSharpCodeBlockSyntax(Kind, _children, GetDiagnostics(), annotations); + return new CSharpEphemeralTextLiteralSyntax(Kind, _literalTokens, GetDiagnostics(), annotations); } } - internal sealed partial class CSharpTemplateBlockSyntax : CSharpSyntaxNode + internal sealed partial class CSharpTemplateBlockSyntax : RazorBlockSyntax { private readonly GreenNode _children; @@ -1707,7 +1802,7 @@ internal CSharpTemplateBlockSyntax(SyntaxKind kind, GreenNode children) } } - public SyntaxList Children { get { return new SyntaxList(_children); } } + public override SyntaxList Children { get { return new SyntaxList(_children); } } internal override GreenNode GetSlot(int index) { @@ -1761,13 +1856,13 @@ internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) } } - internal abstract partial class CSharpBlockSyntax : CSharpSyntaxNode + internal abstract partial class CSharpRazorBlockSyntax : CSharpSyntaxNode { - internal CSharpBlockSyntax(SyntaxKind kind, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal CSharpRazorBlockSyntax(SyntaxKind kind, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { } - internal CSharpBlockSyntax(SyntaxKind kind) + internal CSharpRazorBlockSyntax(SyntaxKind kind) : base(kind) { } @@ -1777,7 +1872,7 @@ internal CSharpBlockSyntax(SyntaxKind kind) public abstract CSharpSyntaxNode Body { get; } } - internal sealed partial class CSharpStatement : CSharpBlockSyntax + internal sealed partial class CSharpStatement : CSharpRazorBlockSyntax { private readonly CSharpTransitionSyntax _transition; private readonly CSharpSyntaxNode _body; @@ -1948,7 +2043,7 @@ internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) } } - internal sealed partial class CSharpExpression : CSharpBlockSyntax + internal sealed partial class CSharpExpression : CSharpRazorBlockSyntax { private readonly CSharpTransitionSyntax _transition; private readonly CSharpSyntaxNode _body; @@ -2119,7 +2214,7 @@ internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) } } - internal sealed partial class CSharpImplicitExpression : CSharpBlockSyntax + internal sealed partial class CSharpImplicitExpression : CSharpRazorBlockSyntax { private readonly CSharpTransitionSyntax _transition; private readonly CSharpSyntaxNode _body; @@ -2276,12 +2371,12 @@ internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) } } - internal sealed partial class CSharpDirectiveSyntax : CSharpBlockSyntax + internal sealed partial class RazorDirectiveSyntax : CSharpRazorBlockSyntax { private readonly CSharpTransitionSyntax _transition; private readonly CSharpSyntaxNode _body; - internal CSharpDirectiveSyntax(SyntaxKind kind, CSharpTransitionSyntax transition, CSharpSyntaxNode body, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal RazorDirectiveSyntax(SyntaxKind kind, CSharpTransitionSyntax transition, CSharpSyntaxNode body, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 2; @@ -2292,7 +2387,7 @@ internal CSharpDirectiveSyntax(SyntaxKind kind, CSharpTransitionSyntax transitio } - internal CSharpDirectiveSyntax(SyntaxKind kind, CSharpTransitionSyntax transition, CSharpSyntaxNode body) + internal RazorDirectiveSyntax(SyntaxKind kind, CSharpTransitionSyntax transition, CSharpSyntaxNode body) : base(kind) { SlotCount = 2; @@ -2317,24 +2412,24 @@ internal override GreenNode GetSlot(int index) internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.CSharpDirectiveSyntax(this, parent, position); + return new Syntax.RazorDirectiveSyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitCSharpDirective(this); + return visitor.VisitRazorDirective(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitCSharpDirective(this); + visitor.VisitRazorDirective(this); } - public CSharpDirectiveSyntax Update(CSharpTransitionSyntax transition, CSharpSyntaxNode body) + public RazorDirectiveSyntax Update(CSharpTransitionSyntax transition, CSharpSyntaxNode body) { if (transition != Transition || body != Body) { - var newNode = SyntaxFactory.CSharpDirective(transition, body); + var newNode = SyntaxFactory.RazorDirective(transition, body); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -2349,21 +2444,21 @@ public CSharpDirectiveSyntax Update(CSharpTransitionSyntax transition, CSharpSyn internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new CSharpDirectiveSyntax(Kind, _transition, _body, diagnostics, GetAnnotations()); + return new RazorDirectiveSyntax(Kind, _transition, _body, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new CSharpDirectiveSyntax(Kind, _transition, _body, GetDiagnostics(), annotations); + return new RazorDirectiveSyntax(Kind, _transition, _body, GetDiagnostics(), annotations); } } - internal sealed partial class CSharpDirectiveBodySyntax : CSharpSyntaxNode + internal sealed partial class RazorDirectiveBodySyntax : CSharpSyntaxNode { private readonly RazorSyntaxNode _keyword; private readonly CSharpCodeBlockSyntax _cSharpCode; - internal CSharpDirectiveBodySyntax(SyntaxKind kind, RazorSyntaxNode keyword, CSharpCodeBlockSyntax cSharpCode, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) + internal RazorDirectiveBodySyntax(SyntaxKind kind, RazorSyntaxNode keyword, CSharpCodeBlockSyntax cSharpCode, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations) : base(kind, diagnostics, annotations) { SlotCount = 2; @@ -2377,7 +2472,7 @@ internal CSharpDirectiveBodySyntax(SyntaxKind kind, RazorSyntaxNode keyword, CSh } - internal CSharpDirectiveBodySyntax(SyntaxKind kind, RazorSyntaxNode keyword, CSharpCodeBlockSyntax cSharpCode) + internal RazorDirectiveBodySyntax(SyntaxKind kind, RazorSyntaxNode keyword, CSharpCodeBlockSyntax cSharpCode) : base(kind) { SlotCount = 2; @@ -2405,24 +2500,24 @@ internal override GreenNode GetSlot(int index) internal override SyntaxNode CreateRed(SyntaxNode parent, int position) { - return new Syntax.CSharpDirectiveBodySyntax(this, parent, position); + return new Syntax.RazorDirectiveBodySyntax(this, parent, position); } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitCSharpDirectiveBody(this); + return visitor.VisitRazorDirectiveBody(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitCSharpDirectiveBody(this); + visitor.VisitRazorDirectiveBody(this); } - public CSharpDirectiveBodySyntax Update(RazorSyntaxNode keyword, CSharpCodeBlockSyntax cSharpCode) + public RazorDirectiveBodySyntax Update(RazorSyntaxNode keyword, CSharpCodeBlockSyntax cSharpCode) { if (keyword != Keyword || cSharpCode != CSharpCode) { - var newNode = SyntaxFactory.CSharpDirectiveBody(keyword, cSharpCode); + var newNode = SyntaxFactory.RazorDirectiveBody(keyword, cSharpCode); var diags = GetDiagnostics(); if (diags != null && diags.Length > 0) newNode = newNode.WithDiagnosticsGreen(diags); @@ -2437,17 +2532,22 @@ public CSharpDirectiveBodySyntax Update(RazorSyntaxNode keyword, CSharpCodeBlock internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics) { - return new CSharpDirectiveBodySyntax(Kind, _keyword, _cSharpCode, diagnostics, GetAnnotations()); + return new RazorDirectiveBodySyntax(Kind, _keyword, _cSharpCode, diagnostics, GetAnnotations()); } internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations) { - return new CSharpDirectiveBodySyntax(Kind, _keyword, _cSharpCode, GetDiagnostics(), annotations); + return new RazorDirectiveBodySyntax(Kind, _keyword, _cSharpCode, GetDiagnostics(), annotations); } } internal partial class SyntaxVisitor { + public virtual TResult VisitRazorDocument(RazorDocumentSyntax node) + { + return DefaultVisit(node); + } + public virtual TResult VisitRazorCommentBlock(RazorCommentBlockSyntax node) { return DefaultVisit(node); @@ -2458,87 +2558,87 @@ public virtual TResult VisitRazorMetaCode(RazorMetaCodeSyntax node) return DefaultVisit(node); } - public virtual TResult VisitHtmlTransition(HtmlTransitionSyntax node) + public virtual TResult VisitGenericBlock(GenericBlockSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitHtmlTextLiteral(HtmlTextLiteralSyntax node) + public virtual TResult VisitUnclassifiedTextLiteral(UnclassifiedTextLiteralSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitHtmlDocument(HtmlDocumentSyntax node) + public virtual TResult VisitMarkupBlock(MarkupBlockSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitHtmlBlock(HtmlBlockSyntax node) + public virtual TResult VisitMarkupTransition(MarkupTransitionSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitHtmlMarkupBlock(HtmlMarkupBlockSyntax node) + public virtual TResult VisitMarkupTextLiteral(MarkupTextLiteralSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitHtmlCommentBlock(HtmlCommentBlockSyntax node) + public virtual TResult VisitMarkupEphemeralTextLiteral(MarkupEphemeralTextLiteralSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitHtmlTagBlock(HtmlTagBlockSyntax node) + public virtual TResult VisitMarkupCommentBlock(MarkupCommentBlockSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitHtmlMinimizedAttributeBlock(HtmlMinimizedAttributeBlockSyntax node) + public virtual TResult VisitMarkupTagBlock(MarkupTagBlockSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitHtmlAttributeBlock(HtmlAttributeBlockSyntax node) + public virtual TResult VisitMarkupMinimizedAttributeBlock(MarkupMinimizedAttributeBlockSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitHtmlLiteralAttributeValue(HtmlLiteralAttributeValueSyntax node) + public virtual TResult VisitMarkupAttributeBlock(MarkupAttributeBlockSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitHtmlDynamicAttributeValue(HtmlDynamicAttributeValueSyntax node) + public virtual TResult VisitMarkupLiteralAttributeValue(MarkupLiteralAttributeValueSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitCSharpTransition(CSharpTransitionSyntax node) + public virtual TResult VisitMarkupDynamicAttributeValue(MarkupDynamicAttributeValueSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) + public virtual TResult VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitCSharpExpressionLiteral(CSharpExpressionLiteralSyntax node) + public virtual TResult VisitCSharpTransition(CSharpTransitionSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitCSharpHiddenLiteral(CSharpHiddenLiteralSyntax node) + public virtual TResult VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitCSharpNoneLiteral(CSharpNoneLiteralSyntax node) + public virtual TResult VisitCSharpExpressionLiteral(CSharpExpressionLiteralSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) + public virtual TResult VisitCSharpEphemeralTextLiteral(CSharpEphemeralTextLiteralSyntax node) { return DefaultVisit(node); } @@ -2578,12 +2678,12 @@ public virtual TResult VisitCSharpImplicitExpressionBody(CSharpImplicitExpressio return DefaultVisit(node); } - public virtual TResult VisitCSharpDirective(CSharpDirectiveSyntax node) + public virtual TResult VisitRazorDirective(RazorDirectiveSyntax node) { return DefaultVisit(node); } - public virtual TResult VisitCSharpDirectiveBody(CSharpDirectiveBodySyntax node) + public virtual TResult VisitRazorDirectiveBody(RazorDirectiveBodySyntax node) { return DefaultVisit(node); } @@ -2592,6 +2692,11 @@ public virtual TResult VisitCSharpDirectiveBody(CSharpDirectiveBodySyntax node) internal partial class SyntaxVisitor { + public virtual void VisitRazorDocument(RazorDocumentSyntax node) + { + DefaultVisit(node); + } + public virtual void VisitRazorCommentBlock(RazorCommentBlockSyntax node) { DefaultVisit(node); @@ -2602,87 +2707,87 @@ public virtual void VisitRazorMetaCode(RazorMetaCodeSyntax node) DefaultVisit(node); } - public virtual void VisitHtmlTransition(HtmlTransitionSyntax node) + public virtual void VisitGenericBlock(GenericBlockSyntax node) { DefaultVisit(node); } - public virtual void VisitHtmlTextLiteral(HtmlTextLiteralSyntax node) + public virtual void VisitUnclassifiedTextLiteral(UnclassifiedTextLiteralSyntax node) { DefaultVisit(node); } - public virtual void VisitHtmlDocument(HtmlDocumentSyntax node) + public virtual void VisitMarkupBlock(MarkupBlockSyntax node) { DefaultVisit(node); } - public virtual void VisitHtmlBlock(HtmlBlockSyntax node) + public virtual void VisitMarkupTransition(MarkupTransitionSyntax node) { DefaultVisit(node); } - public virtual void VisitHtmlMarkupBlock(HtmlMarkupBlockSyntax node) + public virtual void VisitMarkupTextLiteral(MarkupTextLiteralSyntax node) { DefaultVisit(node); } - public virtual void VisitHtmlCommentBlock(HtmlCommentBlockSyntax node) + public virtual void VisitMarkupEphemeralTextLiteral(MarkupEphemeralTextLiteralSyntax node) { DefaultVisit(node); } - public virtual void VisitHtmlTagBlock(HtmlTagBlockSyntax node) + public virtual void VisitMarkupCommentBlock(MarkupCommentBlockSyntax node) { DefaultVisit(node); } - public virtual void VisitHtmlMinimizedAttributeBlock(HtmlMinimizedAttributeBlockSyntax node) + public virtual void VisitMarkupTagBlock(MarkupTagBlockSyntax node) { DefaultVisit(node); } - public virtual void VisitHtmlAttributeBlock(HtmlAttributeBlockSyntax node) + public virtual void VisitMarkupMinimizedAttributeBlock(MarkupMinimizedAttributeBlockSyntax node) { DefaultVisit(node); } - public virtual void VisitHtmlLiteralAttributeValue(HtmlLiteralAttributeValueSyntax node) + public virtual void VisitMarkupAttributeBlock(MarkupAttributeBlockSyntax node) { DefaultVisit(node); } - public virtual void VisitHtmlDynamicAttributeValue(HtmlDynamicAttributeValueSyntax node) + public virtual void VisitMarkupLiteralAttributeValue(MarkupLiteralAttributeValueSyntax node) { DefaultVisit(node); } - public virtual void VisitCSharpTransition(CSharpTransitionSyntax node) + public virtual void VisitMarkupDynamicAttributeValue(MarkupDynamicAttributeValueSyntax node) { DefaultVisit(node); } - public virtual void VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) + public virtual void VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) { DefaultVisit(node); } - public virtual void VisitCSharpExpressionLiteral(CSharpExpressionLiteralSyntax node) + public virtual void VisitCSharpTransition(CSharpTransitionSyntax node) { DefaultVisit(node); } - public virtual void VisitCSharpHiddenLiteral(CSharpHiddenLiteralSyntax node) + public virtual void VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) { DefaultVisit(node); } - public virtual void VisitCSharpNoneLiteral(CSharpNoneLiteralSyntax node) + public virtual void VisitCSharpExpressionLiteral(CSharpExpressionLiteralSyntax node) { DefaultVisit(node); } - public virtual void VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) + public virtual void VisitCSharpEphemeralTextLiteral(CSharpEphemeralTextLiteralSyntax node) { DefaultVisit(node); } @@ -2722,12 +2827,12 @@ public virtual void VisitCSharpImplicitExpressionBody(CSharpImplicitExpressionBo DefaultVisit(node); } - public virtual void VisitCSharpDirective(CSharpDirectiveSyntax node) + public virtual void VisitRazorDirective(RazorDirectiveSyntax node) { DefaultVisit(node); } - public virtual void VisitCSharpDirectiveBody(CSharpDirectiveBodySyntax node) + public virtual void VisitRazorDirectiveBody(RazorDirectiveBodySyntax node) { DefaultVisit(node); } @@ -2735,6 +2840,12 @@ public virtual void VisitCSharpDirectiveBody(CSharpDirectiveBodySyntax node) internal partial class SyntaxRewriter : SyntaxVisitor { + public override GreenNode VisitRazorDocument(RazorDocumentSyntax node) + { + var document = (RazorBlockSyntax)Visit(node.Document); + return node.Update(document); + } + public override GreenNode VisitRazorCommentBlock(RazorCommentBlockSyntax node) { var startCommentTransition = (SyntaxToken)Visit(node.StartCommentTransition); @@ -2751,81 +2862,93 @@ public override GreenNode VisitRazorMetaCode(RazorMetaCodeSyntax node) return node.Update(metaCode); } - public override GreenNode VisitHtmlTransition(HtmlTransitionSyntax node) + public override GreenNode VisitGenericBlock(GenericBlockSyntax node) { - var transitionTokens = VisitList(node.TransitionTokens); - return node.Update(transitionTokens); + var children = VisitList(node.Children); + return node.Update(children); } - public override GreenNode VisitHtmlTextLiteral(HtmlTextLiteralSyntax node) + public override GreenNode VisitUnclassifiedTextLiteral(UnclassifiedTextLiteralSyntax node) { - var textTokens = VisitList(node.TextTokens); - return node.Update(textTokens); + var literalTokens = VisitList(node.LiteralTokens); + return node.Update(literalTokens); } - public override GreenNode VisitHtmlDocument(HtmlDocumentSyntax node) + public override GreenNode VisitMarkupBlock(MarkupBlockSyntax node) { - var document = (HtmlMarkupBlockSyntax)Visit(node.Document); - return node.Update(document); + var children = VisitList(node.Children); + return node.Update(children); } - public override GreenNode VisitHtmlBlock(HtmlBlockSyntax node) + public override GreenNode VisitMarkupTransition(MarkupTransitionSyntax node) { - var children = VisitList(node.Children); - return node.Update(children); + var transitionTokens = VisitList(node.TransitionTokens); + return node.Update(transitionTokens); } - public override GreenNode VisitHtmlMarkupBlock(HtmlMarkupBlockSyntax node) + public override GreenNode VisitMarkupTextLiteral(MarkupTextLiteralSyntax node) { - var children = VisitList(node.Children); - return node.Update(children); + var literalTokens = VisitList(node.LiteralTokens); + return node.Update(literalTokens); } - public override GreenNode VisitHtmlCommentBlock(HtmlCommentBlockSyntax node) + public override GreenNode VisitMarkupEphemeralTextLiteral(MarkupEphemeralTextLiteralSyntax node) + { + var literalTokens = VisitList(node.LiteralTokens); + return node.Update(literalTokens); + } + + public override GreenNode VisitMarkupCommentBlock(MarkupCommentBlockSyntax node) { var children = VisitList(node.Children); return node.Update(children); } - public override GreenNode VisitHtmlTagBlock(HtmlTagBlockSyntax node) + public override GreenNode VisitMarkupTagBlock(MarkupTagBlockSyntax node) { var children = VisitList(node.Children); return node.Update(children); } - public override GreenNode VisitHtmlMinimizedAttributeBlock(HtmlMinimizedAttributeBlockSyntax node) + public override GreenNode VisitMarkupMinimizedAttributeBlock(MarkupMinimizedAttributeBlockSyntax node) { - var namePrefix = (HtmlTextLiteralSyntax)Visit(node.NamePrefix); - var name = (HtmlTextLiteralSyntax)Visit(node.Name); + var namePrefix = (MarkupTextLiteralSyntax)Visit(node.NamePrefix); + var name = (MarkupTextLiteralSyntax)Visit(node.Name); return node.Update(namePrefix, name); } - public override GreenNode VisitHtmlAttributeBlock(HtmlAttributeBlockSyntax node) + public override GreenNode VisitMarkupAttributeBlock(MarkupAttributeBlockSyntax node) { - var namePrefix = (HtmlTextLiteralSyntax)Visit(node.NamePrefix); - var name = (HtmlTextLiteralSyntax)Visit(node.Name); - var nameSuffix = (HtmlTextLiteralSyntax)Visit(node.NameSuffix); + 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 = (HtmlTextLiteralSyntax)Visit(node.ValuePrefix); - var value = (HtmlBlockSyntax)Visit(node.Value); - var valueSuffix = (HtmlTextLiteralSyntax)Visit(node.ValueSuffix); + var valuePrefix = (MarkupTextLiteralSyntax)Visit(node.ValuePrefix); + var value = (RazorBlockSyntax)Visit(node.Value); + var valueSuffix = (MarkupTextLiteralSyntax)Visit(node.ValueSuffix); return node.Update(namePrefix, name, nameSuffix, equalsToken, valuePrefix, value, valueSuffix); } - public override GreenNode VisitHtmlLiteralAttributeValue(HtmlLiteralAttributeValueSyntax node) + public override GreenNode VisitMarkupLiteralAttributeValue(MarkupLiteralAttributeValueSyntax node) { - var prefix = (HtmlTextLiteralSyntax)Visit(node.Prefix); - var value = (HtmlTextLiteralSyntax)Visit(node.Value); + var prefix = (MarkupTextLiteralSyntax)Visit(node.Prefix); + var value = (MarkupTextLiteralSyntax)Visit(node.Value); return node.Update(prefix, value); } - public override GreenNode VisitHtmlDynamicAttributeValue(HtmlDynamicAttributeValueSyntax node) + public override GreenNode VisitMarkupDynamicAttributeValue(MarkupDynamicAttributeValueSyntax node) { - var prefix = (HtmlTextLiteralSyntax)Visit(node.Prefix); - var value = (HtmlBlockSyntax)Visit(node.Value); + var prefix = (MarkupTextLiteralSyntax)Visit(node.Prefix); + var value = (RazorBlockSyntax)Visit(node.Value); return node.Update(prefix, value); } + public override GreenNode VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) + { + var children = VisitList(node.Children); + return node.Update(children); + } + public override GreenNode VisitCSharpTransition(CSharpTransitionSyntax node) { var transition = (SyntaxToken)Visit(node.Transition); @@ -2834,32 +2957,20 @@ public override GreenNode VisitCSharpTransition(CSharpTransitionSyntax node) public override GreenNode VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) { - var cSharpTokens = VisitList(node.CSharpTokens); - return node.Update(cSharpTokens); + var literalTokens = VisitList(node.LiteralTokens); + return node.Update(literalTokens); } public override GreenNode VisitCSharpExpressionLiteral(CSharpExpressionLiteralSyntax node) { - var cSharpTokens = VisitList(node.CSharpTokens); - return node.Update(cSharpTokens); - } - - public override GreenNode VisitCSharpHiddenLiteral(CSharpHiddenLiteralSyntax node) - { - var cSharpTokens = VisitList(node.CSharpTokens); - return node.Update(cSharpTokens); + var literalTokens = VisitList(node.LiteralTokens); + return node.Update(literalTokens); } - public override GreenNode VisitCSharpNoneLiteral(CSharpNoneLiteralSyntax node) + public override GreenNode VisitCSharpEphemeralTextLiteral(CSharpEphemeralTextLiteralSyntax node) { - var cSharpTokens = VisitList(node.CSharpTokens); - return node.Update(cSharpTokens); - } - - public override GreenNode VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) - { - var children = VisitList(node.Children); - return node.Update(children); + var literalTokens = VisitList(node.LiteralTokens); + return node.Update(literalTokens); } public override GreenNode VisitCSharpTemplateBlock(CSharpTemplateBlockSyntax node) @@ -2911,14 +3022,14 @@ public override GreenNode VisitCSharpImplicitExpressionBody(CSharpImplicitExpres return node.Update(cSharpCode); } - public override GreenNode VisitCSharpDirective(CSharpDirectiveSyntax node) + public override GreenNode VisitRazorDirective(RazorDirectiveSyntax node) { var transition = (CSharpTransitionSyntax)Visit(node.Transition); var body = (CSharpSyntaxNode)Visit(node.Body); return node.Update(transition, body); } - public override GreenNode VisitCSharpDirectiveBody(CSharpDirectiveBodySyntax node) + public override GreenNode VisitRazorDirectiveBody(RazorDirectiveBodySyntax node) { var keyword = (RazorSyntaxNode)Visit(node.Keyword); var cSharpCode = (CSharpCodeBlockSyntax)Visit(node.CSharpCode); @@ -2928,6 +3039,16 @@ public override GreenNode VisitCSharpDirectiveBody(CSharpDirectiveBodySyntax nod internal static partial class SyntaxFactory { + public static RazorDocumentSyntax RazorDocument(RazorBlockSyntax document) + { + if (document == null) + throw new ArgumentNullException(nameof(document)); + + var result = new RazorDocumentSyntax(SyntaxKind.RazorDocument, document); + + return result; + } + public static RazorCommentBlockSyntax RazorCommentBlock(SyntaxToken startCommentTransition, SyntaxToken startCommentStar, SyntaxToken comment, SyntaxToken endCommentStar, SyntaxToken endCommentTransition) { if (startCommentTransition == null) @@ -2953,7 +3074,7 @@ public static RazorCommentBlockSyntax RazorCommentBlock(SyntaxToken startComment switch (comment.Kind) { case SyntaxKind.RazorCommentLiteral: - case SyntaxKind.Unknown: + case SyntaxKind.None: break; default: throw new ArgumentException("comment"); @@ -2988,69 +3109,73 @@ public static RazorMetaCodeSyntax RazorMetaCode(Microsoft.AspNetCore.Razor.Langu return result; } - public static HtmlTransitionSyntax HtmlTransition(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList transitionTokens) + public static GenericBlockSyntax GenericBlock(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) { - var result = new HtmlTransitionSyntax(SyntaxKind.HtmlTransition, transitionTokens.Node); + var result = new GenericBlockSyntax(SyntaxKind.GenericBlock, children.Node); return result; } - public static HtmlTextLiteralSyntax HtmlTextLiteral(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList textTokens) + public static UnclassifiedTextLiteralSyntax UnclassifiedTextLiteral(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList literalTokens) { - var result = new HtmlTextLiteralSyntax(SyntaxKind.HtmlTextLiteral, textTokens.Node); + var result = new UnclassifiedTextLiteralSyntax(SyntaxKind.UnclassifiedTextLiteral, literalTokens.Node); return result; } - public static HtmlDocumentSyntax HtmlDocument(HtmlMarkupBlockSyntax document) + public static MarkupBlockSyntax MarkupBlock(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) { - if (document == null) - throw new ArgumentNullException(nameof(document)); + var result = new MarkupBlockSyntax(SyntaxKind.MarkupBlock, children.Node); - var result = new HtmlDocumentSyntax(SyntaxKind.HtmlDocument, document); + return result; + } + + public static MarkupTransitionSyntax MarkupTransition(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList transitionTokens) + { + var result = new MarkupTransitionSyntax(SyntaxKind.MarkupTransition, transitionTokens.Node); return result; } - public static HtmlBlockSyntax HtmlBlock(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) + public static MarkupTextLiteralSyntax MarkupTextLiteral(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList literalTokens) { - var result = new HtmlBlockSyntax(SyntaxKind.HtmlBlock, children.Node); + var result = new MarkupTextLiteralSyntax(SyntaxKind.MarkupTextLiteral, literalTokens.Node); return result; } - public static HtmlMarkupBlockSyntax HtmlMarkupBlock(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) + public static MarkupEphemeralTextLiteralSyntax MarkupEphemeralTextLiteral(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList literalTokens) { - var result = new HtmlMarkupBlockSyntax(SyntaxKind.HtmlMarkupBlock, children.Node); + var result = new MarkupEphemeralTextLiteralSyntax(SyntaxKind.MarkupEphemeralTextLiteral, literalTokens.Node); return result; } - public static HtmlCommentBlockSyntax HtmlCommentBlock(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) + public static MarkupCommentBlockSyntax MarkupCommentBlock(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) { - var result = new HtmlCommentBlockSyntax(SyntaxKind.HtmlCommentBlock, children.Node); + var result = new MarkupCommentBlockSyntax(SyntaxKind.MarkupCommentBlock, children.Node); return result; } - public static HtmlTagBlockSyntax HtmlTagBlock(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) + public static MarkupTagBlockSyntax MarkupTagBlock(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) { - var result = new HtmlTagBlockSyntax(SyntaxKind.HtmlTagBlock, children.Node); + var result = new MarkupTagBlockSyntax(SyntaxKind.MarkupTagBlock, children.Node); return result; } - public static HtmlMinimizedAttributeBlockSyntax HtmlMinimizedAttributeBlock(HtmlTextLiteralSyntax namePrefix, HtmlTextLiteralSyntax name) + public static MarkupMinimizedAttributeBlockSyntax MarkupMinimizedAttributeBlock(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name) { if (name == null) throw new ArgumentNullException(nameof(name)); - var result = new HtmlMinimizedAttributeBlockSyntax(SyntaxKind.HtmlMinimizedAttributeBlock, namePrefix, name); + var result = new MarkupMinimizedAttributeBlockSyntax(SyntaxKind.MarkupMinimizedAttributeBlock, namePrefix, name); return result; } - public static HtmlAttributeBlockSyntax HtmlAttributeBlock(HtmlTextLiteralSyntax namePrefix, HtmlTextLiteralSyntax name, HtmlTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, HtmlTextLiteralSyntax valuePrefix, HtmlBlockSyntax value, HtmlTextLiteralSyntax valueSuffix) + public static MarkupAttributeBlockSyntax MarkupAttributeBlock(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, MarkupTextLiteralSyntax valuePrefix, RazorBlockSyntax value, MarkupTextLiteralSyntax valueSuffix) { if (name == null) throw new ArgumentNullException(nameof(name)); @@ -3066,25 +3191,32 @@ public static HtmlAttributeBlockSyntax HtmlAttributeBlock(HtmlTextLiteralSyntax if (value == null) throw new ArgumentNullException(nameof(value)); - return new HtmlAttributeBlockSyntax(SyntaxKind.HtmlAttributeBlock, namePrefix, name, nameSuffix, equalsToken, valuePrefix, value, valueSuffix); + return new MarkupAttributeBlockSyntax(SyntaxKind.MarkupAttributeBlock, namePrefix, name, nameSuffix, equalsToken, valuePrefix, value, valueSuffix); } - public static HtmlLiteralAttributeValueSyntax HtmlLiteralAttributeValue(HtmlTextLiteralSyntax prefix, HtmlTextLiteralSyntax value) + public static MarkupLiteralAttributeValueSyntax MarkupLiteralAttributeValue(MarkupTextLiteralSyntax prefix, MarkupTextLiteralSyntax value) { if (value == null) throw new ArgumentNullException(nameof(value)); - var result = new HtmlLiteralAttributeValueSyntax(SyntaxKind.HtmlLiteralAttributeValue, prefix, value); + var result = new MarkupLiteralAttributeValueSyntax(SyntaxKind.MarkupLiteralAttributeValue, prefix, value); return result; } - public static HtmlDynamicAttributeValueSyntax HtmlDynamicAttributeValue(HtmlTextLiteralSyntax prefix, HtmlBlockSyntax value) + public static MarkupDynamicAttributeValueSyntax MarkupDynamicAttributeValue(MarkupTextLiteralSyntax prefix, RazorBlockSyntax value) { if (value == null) throw new ArgumentNullException(nameof(value)); - var result = new HtmlDynamicAttributeValueSyntax(SyntaxKind.HtmlDynamicAttributeValue, prefix, value); + var result = new MarkupDynamicAttributeValueSyntax(SyntaxKind.MarkupDynamicAttributeValue, prefix, value); + + return result; + } + + public static CSharpCodeBlockSyntax CSharpCodeBlock(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) + { + var result = new CSharpCodeBlockSyntax(SyntaxKind.CSharpCodeBlock, children.Node); return result; } @@ -3106,37 +3238,23 @@ public static CSharpTransitionSyntax CSharpTransition(SyntaxToken transition) return result; } - public static CSharpStatementLiteralSyntax CSharpStatementLiteral(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList cSharpTokens) + public static CSharpStatementLiteralSyntax CSharpStatementLiteral(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList literalTokens) { - var result = new CSharpStatementLiteralSyntax(SyntaxKind.CSharpStatementLiteral, cSharpTokens.Node); + var result = new CSharpStatementLiteralSyntax(SyntaxKind.CSharpStatementLiteral, literalTokens.Node); return result; } - public static CSharpExpressionLiteralSyntax CSharpExpressionLiteral(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList cSharpTokens) + public static CSharpExpressionLiteralSyntax CSharpExpressionLiteral(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList literalTokens) { - var result = new CSharpExpressionLiteralSyntax(SyntaxKind.CSharpExpressionLiteral, cSharpTokens.Node); + var result = new CSharpExpressionLiteralSyntax(SyntaxKind.CSharpExpressionLiteral, literalTokens.Node); return result; } - public static CSharpHiddenLiteralSyntax CSharpHiddenLiteral(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList cSharpTokens) + public static CSharpEphemeralTextLiteralSyntax CSharpEphemeralTextLiteral(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList literalTokens) { - var result = new CSharpHiddenLiteralSyntax(SyntaxKind.CSharpHiddenLiteral, cSharpTokens.Node); - - return result; - } - - public static CSharpNoneLiteralSyntax CSharpNoneLiteral(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList cSharpTokens) - { - var result = new CSharpNoneLiteralSyntax(SyntaxKind.CSharpNoneLiteral, cSharpTokens.Node); - - return result; - } - - public static CSharpCodeBlockSyntax CSharpCodeBlock(Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax.SyntaxList children) - { - var result = new CSharpCodeBlockSyntax(SyntaxKind.CSharpCodeBlock, children.Node); + var result = new CSharpEphemeralTextLiteralSyntax(SyntaxKind.CSharpEphemeralTextLiteral, literalTokens.Node); return result; } @@ -3222,24 +3340,24 @@ public static CSharpImplicitExpressionBodySyntax CSharpImplicitExpressionBody(CS return result; } - public static CSharpDirectiveSyntax CSharpDirective(CSharpTransitionSyntax transition, CSharpSyntaxNode body) + public static RazorDirectiveSyntax RazorDirective(CSharpTransitionSyntax transition, CSharpSyntaxNode body) { if (transition == null) throw new ArgumentNullException(nameof(transition)); if (body == null) throw new ArgumentNullException(nameof(body)); - var result = new CSharpDirectiveSyntax(SyntaxKind.CSharpDirective, transition, body); + var result = new RazorDirectiveSyntax(SyntaxKind.RazorDirective, transition, body); return result; } - public static CSharpDirectiveBodySyntax CSharpDirectiveBody(RazorSyntaxNode keyword, CSharpCodeBlockSyntax cSharpCode) + public static RazorDirectiveBodySyntax RazorDirectiveBody(RazorSyntaxNode keyword, CSharpCodeBlockSyntax cSharpCode) { if (keyword == null) throw new ArgumentNullException(nameof(keyword)); - var result = new CSharpDirectiveBodySyntax(SyntaxKind.CSharpDirectiveBody, keyword, cSharpCode); + var result = new RazorDirectiveBodySyntax(SyntaxKind.RazorDirectiveBody, keyword, cSharpCode); return result; } @@ -3247,25 +3365,26 @@ public static CSharpDirectiveBodySyntax CSharpDirectiveBody(RazorSyntaxNode keyw internal static IEnumerable GetNodeTypes() { return new Type[] { + typeof(RazorDocumentSyntax), typeof(RazorCommentBlockSyntax), typeof(RazorMetaCodeSyntax), - typeof(HtmlTransitionSyntax), - typeof(HtmlTextLiteralSyntax), - typeof(HtmlDocumentSyntax), - typeof(HtmlBlockSyntax), - typeof(HtmlMarkupBlockSyntax), - typeof(HtmlCommentBlockSyntax), - typeof(HtmlTagBlockSyntax), - typeof(HtmlMinimizedAttributeBlockSyntax), - typeof(HtmlAttributeBlockSyntax), - typeof(HtmlLiteralAttributeValueSyntax), - typeof(HtmlDynamicAttributeValueSyntax), + typeof(GenericBlockSyntax), + typeof(UnclassifiedTextLiteralSyntax), + typeof(MarkupBlockSyntax), + typeof(MarkupTransitionSyntax), + typeof(MarkupTextLiteralSyntax), + typeof(MarkupEphemeralTextLiteralSyntax), + typeof(MarkupCommentBlockSyntax), + typeof(MarkupTagBlockSyntax), + typeof(MarkupMinimizedAttributeBlockSyntax), + typeof(MarkupAttributeBlockSyntax), + typeof(MarkupLiteralAttributeValueSyntax), + typeof(MarkupDynamicAttributeValueSyntax), + typeof(CSharpCodeBlockSyntax), typeof(CSharpTransitionSyntax), typeof(CSharpStatementLiteralSyntax), typeof(CSharpExpressionLiteralSyntax), - typeof(CSharpHiddenLiteralSyntax), - typeof(CSharpNoneLiteralSyntax), - typeof(CSharpCodeBlockSyntax), + typeof(CSharpEphemeralTextLiteralSyntax), typeof(CSharpTemplateBlockSyntax), typeof(CSharpStatement), typeof(CSharpStatementBodySyntax), @@ -3273,8 +3392,8 @@ internal static IEnumerable GetNodeTypes() typeof(CSharpExpressionBodySyntax), typeof(CSharpImplicitExpression), typeof(CSharpImplicitExpressionBodySyntax), - typeof(CSharpDirectiveSyntax), - typeof(CSharpDirectiveBodySyntax) + typeof(RazorDirectiveSyntax), + typeof(RazorDirectiveBodySyntax) }; } } 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 e377eb15f..d2bb9a9d9 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 @@ -11,6 +11,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax { internal partial class SyntaxVisitor { + /// Called when the visitor visits a RazorDocumentSyntax node. + public virtual TResult VisitRazorDocument(RazorDocumentSyntax node) + { + return DefaultVisit(node); + } + /// Called when the visitor visits a RazorCommentBlockSyntax node. public virtual TResult VisitRazorCommentBlock(RazorCommentBlockSyntax node) { @@ -23,104 +29,104 @@ public virtual TResult VisitRazorMetaCode(RazorMetaCodeSyntax node) return DefaultVisit(node); } - /// Called when the visitor visits a HtmlTransitionSyntax node. - public virtual TResult VisitHtmlTransition(HtmlTransitionSyntax node) + /// Called when the visitor visits a GenericBlockSyntax node. + public virtual TResult VisitGenericBlock(GenericBlockSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a HtmlTextLiteralSyntax node. - public virtual TResult VisitHtmlTextLiteral(HtmlTextLiteralSyntax node) + /// Called when the visitor visits a UnclassifiedTextLiteralSyntax node. + public virtual TResult VisitUnclassifiedTextLiteral(UnclassifiedTextLiteralSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a HtmlDocumentSyntax node. - public virtual TResult VisitHtmlDocument(HtmlDocumentSyntax node) + /// Called when the visitor visits a MarkupBlockSyntax node. + public virtual TResult VisitMarkupBlock(MarkupBlockSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a HtmlBlockSyntax node. - public virtual TResult VisitHtmlBlock(HtmlBlockSyntax node) + /// Called when the visitor visits a MarkupTransitionSyntax node. + public virtual TResult VisitMarkupTransition(MarkupTransitionSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a HtmlMarkupBlockSyntax node. - public virtual TResult VisitHtmlMarkupBlock(HtmlMarkupBlockSyntax node) + /// Called when the visitor visits a MarkupTextLiteralSyntax node. + public virtual TResult VisitMarkupTextLiteral(MarkupTextLiteralSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a HtmlCommentBlockSyntax node. - public virtual TResult VisitHtmlCommentBlock(HtmlCommentBlockSyntax node) + /// Called when the visitor visits a MarkupEphemeralTextLiteralSyntax node. + public virtual TResult VisitMarkupEphemeralTextLiteral(MarkupEphemeralTextLiteralSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a HtmlTagBlockSyntax node. - public virtual TResult VisitHtmlTagBlock(HtmlTagBlockSyntax node) + /// Called when the visitor visits a MarkupCommentBlockSyntax node. + public virtual TResult VisitMarkupCommentBlock(MarkupCommentBlockSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a HtmlMinimizedAttributeBlockSyntax node. - public virtual TResult VisitHtmlMinimizedAttributeBlock(HtmlMinimizedAttributeBlockSyntax node) + /// Called when the visitor visits a MarkupTagBlockSyntax node. + public virtual TResult VisitMarkupTagBlock(MarkupTagBlockSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a HtmlAttributeBlockSyntax node. - public virtual TResult VisitHtmlAttributeBlock(HtmlAttributeBlockSyntax node) + /// Called when the visitor visits a MarkupMinimizedAttributeBlockSyntax node. + public virtual TResult VisitMarkupMinimizedAttributeBlock(MarkupMinimizedAttributeBlockSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a HtmlLiteralAttributeValueSyntax node. - public virtual TResult VisitHtmlLiteralAttributeValue(HtmlLiteralAttributeValueSyntax node) + /// Called when the visitor visits a MarkupAttributeBlockSyntax node. + public virtual TResult VisitMarkupAttributeBlock(MarkupAttributeBlockSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a HtmlDynamicAttributeValueSyntax node. - public virtual TResult VisitHtmlDynamicAttributeValue(HtmlDynamicAttributeValueSyntax node) + /// Called when the visitor visits a MarkupLiteralAttributeValueSyntax node. + public virtual TResult VisitMarkupLiteralAttributeValue(MarkupLiteralAttributeValueSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a CSharpTransitionSyntax node. - public virtual TResult VisitCSharpTransition(CSharpTransitionSyntax node) + /// Called when the visitor visits a MarkupDynamicAttributeValueSyntax node. + public virtual TResult VisitMarkupDynamicAttributeValue(MarkupDynamicAttributeValueSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a CSharpStatementLiteralSyntax node. - public virtual TResult VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) + /// Called when the visitor visits a CSharpCodeBlockSyntax node. + public virtual TResult VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a CSharpExpressionLiteralSyntax node. - public virtual TResult VisitCSharpExpressionLiteral(CSharpExpressionLiteralSyntax node) + /// Called when the visitor visits a CSharpTransitionSyntax node. + public virtual TResult VisitCSharpTransition(CSharpTransitionSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a CSharpHiddenLiteralSyntax node. - public virtual TResult VisitCSharpHiddenLiteral(CSharpHiddenLiteralSyntax node) + /// Called when the visitor visits a CSharpStatementLiteralSyntax node. + public virtual TResult VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a CSharpNoneLiteralSyntax node. - public virtual TResult VisitCSharpNoneLiteral(CSharpNoneLiteralSyntax node) + /// Called when the visitor visits a CSharpExpressionLiteralSyntax node. + public virtual TResult VisitCSharpExpressionLiteral(CSharpExpressionLiteralSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a CSharpCodeBlockSyntax node. - public virtual TResult VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) + /// Called when the visitor visits a CSharpEphemeralTextLiteralSyntax node. + public virtual TResult VisitCSharpEphemeralTextLiteral(CSharpEphemeralTextLiteralSyntax node) { return DefaultVisit(node); } @@ -167,14 +173,14 @@ public virtual TResult VisitCSharpImplicitExpressionBody(CSharpImplicitExpressio return DefaultVisit(node); } - /// Called when the visitor visits a CSharpDirectiveSyntax node. - public virtual TResult VisitCSharpDirective(CSharpDirectiveSyntax node) + /// Called when the visitor visits a RazorDirectiveSyntax node. + public virtual TResult VisitRazorDirective(RazorDirectiveSyntax node) { return DefaultVisit(node); } - /// Called when the visitor visits a CSharpDirectiveBodySyntax node. - public virtual TResult VisitCSharpDirectiveBody(CSharpDirectiveBodySyntax node) + /// Called when the visitor visits a RazorDirectiveBodySyntax node. + public virtual TResult VisitRazorDirectiveBody(RazorDirectiveBodySyntax node) { return DefaultVisit(node); } @@ -182,6 +188,12 @@ public virtual TResult VisitCSharpDirectiveBody(CSharpDirectiveBodySyntax node) internal partial class SyntaxVisitor { + /// Called when the visitor visits a RazorDocumentSyntax node. + public virtual void VisitRazorDocument(RazorDocumentSyntax node) + { + DefaultVisit(node); + } + /// Called when the visitor visits a RazorCommentBlockSyntax node. public virtual void VisitRazorCommentBlock(RazorCommentBlockSyntax node) { @@ -194,104 +206,104 @@ public virtual void VisitRazorMetaCode(RazorMetaCodeSyntax node) DefaultVisit(node); } - /// Called when the visitor visits a HtmlTransitionSyntax node. - public virtual void VisitHtmlTransition(HtmlTransitionSyntax node) + /// Called when the visitor visits a GenericBlockSyntax node. + public virtual void VisitGenericBlock(GenericBlockSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a HtmlTextLiteralSyntax node. - public virtual void VisitHtmlTextLiteral(HtmlTextLiteralSyntax node) + /// Called when the visitor visits a UnclassifiedTextLiteralSyntax node. + public virtual void VisitUnclassifiedTextLiteral(UnclassifiedTextLiteralSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a HtmlDocumentSyntax node. - public virtual void VisitHtmlDocument(HtmlDocumentSyntax node) + /// Called when the visitor visits a MarkupBlockSyntax node. + public virtual void VisitMarkupBlock(MarkupBlockSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a HtmlBlockSyntax node. - public virtual void VisitHtmlBlock(HtmlBlockSyntax node) + /// Called when the visitor visits a MarkupTransitionSyntax node. + public virtual void VisitMarkupTransition(MarkupTransitionSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a HtmlMarkupBlockSyntax node. - public virtual void VisitHtmlMarkupBlock(HtmlMarkupBlockSyntax node) + /// Called when the visitor visits a MarkupTextLiteralSyntax node. + public virtual void VisitMarkupTextLiteral(MarkupTextLiteralSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a HtmlCommentBlockSyntax node. - public virtual void VisitHtmlCommentBlock(HtmlCommentBlockSyntax node) + /// Called when the visitor visits a MarkupEphemeralTextLiteralSyntax node. + public virtual void VisitMarkupEphemeralTextLiteral(MarkupEphemeralTextLiteralSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a HtmlTagBlockSyntax node. - public virtual void VisitHtmlTagBlock(HtmlTagBlockSyntax node) + /// Called when the visitor visits a MarkupCommentBlockSyntax node. + public virtual void VisitMarkupCommentBlock(MarkupCommentBlockSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a HtmlMinimizedAttributeBlockSyntax node. - public virtual void VisitHtmlMinimizedAttributeBlock(HtmlMinimizedAttributeBlockSyntax node) + /// Called when the visitor visits a MarkupTagBlockSyntax node. + public virtual void VisitMarkupTagBlock(MarkupTagBlockSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a HtmlAttributeBlockSyntax node. - public virtual void VisitHtmlAttributeBlock(HtmlAttributeBlockSyntax node) + /// Called when the visitor visits a MarkupMinimizedAttributeBlockSyntax node. + public virtual void VisitMarkupMinimizedAttributeBlock(MarkupMinimizedAttributeBlockSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a HtmlLiteralAttributeValueSyntax node. - public virtual void VisitHtmlLiteralAttributeValue(HtmlLiteralAttributeValueSyntax node) + /// Called when the visitor visits a MarkupAttributeBlockSyntax node. + public virtual void VisitMarkupAttributeBlock(MarkupAttributeBlockSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a HtmlDynamicAttributeValueSyntax node. - public virtual void VisitHtmlDynamicAttributeValue(HtmlDynamicAttributeValueSyntax node) + /// Called when the visitor visits a MarkupLiteralAttributeValueSyntax node. + public virtual void VisitMarkupLiteralAttributeValue(MarkupLiteralAttributeValueSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a CSharpTransitionSyntax node. - public virtual void VisitCSharpTransition(CSharpTransitionSyntax node) + /// Called when the visitor visits a MarkupDynamicAttributeValueSyntax node. + public virtual void VisitMarkupDynamicAttributeValue(MarkupDynamicAttributeValueSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a CSharpStatementLiteralSyntax node. - public virtual void VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) + /// Called when the visitor visits a CSharpCodeBlockSyntax node. + public virtual void VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a CSharpExpressionLiteralSyntax node. - public virtual void VisitCSharpExpressionLiteral(CSharpExpressionLiteralSyntax node) + /// Called when the visitor visits a CSharpTransitionSyntax node. + public virtual void VisitCSharpTransition(CSharpTransitionSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a CSharpHiddenLiteralSyntax node. - public virtual void VisitCSharpHiddenLiteral(CSharpHiddenLiteralSyntax node) + /// Called when the visitor visits a CSharpStatementLiteralSyntax node. + public virtual void VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a CSharpNoneLiteralSyntax node. - public virtual void VisitCSharpNoneLiteral(CSharpNoneLiteralSyntax node) + /// Called when the visitor visits a CSharpExpressionLiteralSyntax node. + public virtual void VisitCSharpExpressionLiteral(CSharpExpressionLiteralSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a CSharpCodeBlockSyntax node. - public virtual void VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) + /// Called when the visitor visits a CSharpEphemeralTextLiteralSyntax node. + public virtual void VisitCSharpEphemeralTextLiteral(CSharpEphemeralTextLiteralSyntax node) { DefaultVisit(node); } @@ -338,14 +350,14 @@ public virtual void VisitCSharpImplicitExpressionBody(CSharpImplicitExpressionBo DefaultVisit(node); } - /// Called when the visitor visits a CSharpDirectiveSyntax node. - public virtual void VisitCSharpDirective(CSharpDirectiveSyntax node) + /// Called when the visitor visits a RazorDirectiveSyntax node. + public virtual void VisitRazorDirective(RazorDirectiveSyntax node) { DefaultVisit(node); } - /// Called when the visitor visits a CSharpDirectiveBodySyntax node. - public virtual void VisitCSharpDirectiveBody(CSharpDirectiveBodySyntax node) + /// Called when the visitor visits a RazorDirectiveBodySyntax node. + public virtual void VisitRazorDirectiveBody(RazorDirectiveBodySyntax node) { DefaultVisit(node); } @@ -353,6 +365,12 @@ public virtual void VisitCSharpDirectiveBody(CSharpDirectiveBodySyntax node) internal partial class SyntaxRewriter : SyntaxVisitor { + public override SyntaxNode VisitRazorDocument(RazorDocumentSyntax node) + { + var document = (RazorBlockSyntax)Visit(node.Document); + return node.Update(document); + } + public override SyntaxNode VisitRazorCommentBlock(RazorCommentBlockSyntax node) { var startCommentTransition = (SyntaxToken)VisitToken(node.StartCommentTransition); @@ -369,81 +387,93 @@ public override SyntaxNode VisitRazorMetaCode(RazorMetaCodeSyntax node) return node.Update(metaCode); } - public override SyntaxNode VisitHtmlTransition(HtmlTransitionSyntax node) + public override SyntaxNode VisitGenericBlock(GenericBlockSyntax node) { - var transitionTokens = VisitList(node.TransitionTokens); - return node.Update(transitionTokens); + var children = VisitList(node.Children); + return node.Update(children); } - public override SyntaxNode VisitHtmlTextLiteral(HtmlTextLiteralSyntax node) + public override SyntaxNode VisitUnclassifiedTextLiteral(UnclassifiedTextLiteralSyntax node) { - var textTokens = VisitList(node.TextTokens); - return node.Update(textTokens); + var literalTokens = VisitList(node.LiteralTokens); + return node.Update(literalTokens); } - public override SyntaxNode VisitHtmlDocument(HtmlDocumentSyntax node) + public override SyntaxNode VisitMarkupBlock(MarkupBlockSyntax node) { - var document = (HtmlMarkupBlockSyntax)Visit(node.Document); - return node.Update(document); + var children = VisitList(node.Children); + return node.Update(children); } - public override SyntaxNode VisitHtmlBlock(HtmlBlockSyntax node) + public override SyntaxNode VisitMarkupTransition(MarkupTransitionSyntax node) { - var children = VisitList(node.Children); - return node.Update(children); + var transitionTokens = VisitList(node.TransitionTokens); + return node.Update(transitionTokens); } - public override SyntaxNode VisitHtmlMarkupBlock(HtmlMarkupBlockSyntax node) + public override SyntaxNode VisitMarkupTextLiteral(MarkupTextLiteralSyntax node) { - var children = VisitList(node.Children); - return node.Update(children); + var literalTokens = VisitList(node.LiteralTokens); + return node.Update(literalTokens); + } + + public override SyntaxNode VisitMarkupEphemeralTextLiteral(MarkupEphemeralTextLiteralSyntax node) + { + var literalTokens = VisitList(node.LiteralTokens); + return node.Update(literalTokens); } - public override SyntaxNode VisitHtmlCommentBlock(HtmlCommentBlockSyntax node) + public override SyntaxNode VisitMarkupCommentBlock(MarkupCommentBlockSyntax node) { var children = VisitList(node.Children); return node.Update(children); } - public override SyntaxNode VisitHtmlTagBlock(HtmlTagBlockSyntax node) + public override SyntaxNode VisitMarkupTagBlock(MarkupTagBlockSyntax node) { var children = VisitList(node.Children); return node.Update(children); } - public override SyntaxNode VisitHtmlMinimizedAttributeBlock(HtmlMinimizedAttributeBlockSyntax node) + public override SyntaxNode VisitMarkupMinimizedAttributeBlock(MarkupMinimizedAttributeBlockSyntax node) { - var namePrefix = (HtmlTextLiteralSyntax)Visit(node.NamePrefix); - var name = (HtmlTextLiteralSyntax)Visit(node.Name); + var namePrefix = (MarkupTextLiteralSyntax)Visit(node.NamePrefix); + var name = (MarkupTextLiteralSyntax)Visit(node.Name); return node.Update(namePrefix, name); } - public override SyntaxNode VisitHtmlAttributeBlock(HtmlAttributeBlockSyntax node) + public override SyntaxNode VisitMarkupAttributeBlock(MarkupAttributeBlockSyntax node) { - var namePrefix = (HtmlTextLiteralSyntax)Visit(node.NamePrefix); - var name = (HtmlTextLiteralSyntax)Visit(node.Name); - var nameSuffix = (HtmlTextLiteralSyntax)Visit(node.NameSuffix); + 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 = (HtmlTextLiteralSyntax)Visit(node.ValuePrefix); - var value = (HtmlBlockSyntax)Visit(node.Value); - var valueSuffix = (HtmlTextLiteralSyntax)Visit(node.ValueSuffix); + var valuePrefix = (MarkupTextLiteralSyntax)Visit(node.ValuePrefix); + var value = (RazorBlockSyntax)Visit(node.Value); + var valueSuffix = (MarkupTextLiteralSyntax)Visit(node.ValueSuffix); return node.Update(namePrefix, name, nameSuffix, equalsToken, valuePrefix, value, valueSuffix); } - public override SyntaxNode VisitHtmlLiteralAttributeValue(HtmlLiteralAttributeValueSyntax node) + public override SyntaxNode VisitMarkupLiteralAttributeValue(MarkupLiteralAttributeValueSyntax node) { - var prefix = (HtmlTextLiteralSyntax)Visit(node.Prefix); - var value = (HtmlTextLiteralSyntax)Visit(node.Value); + var prefix = (MarkupTextLiteralSyntax)Visit(node.Prefix); + var value = (MarkupTextLiteralSyntax)Visit(node.Value); return node.Update(prefix, value); } - public override SyntaxNode VisitHtmlDynamicAttributeValue(HtmlDynamicAttributeValueSyntax node) + public override SyntaxNode VisitMarkupDynamicAttributeValue(MarkupDynamicAttributeValueSyntax node) { - var prefix = (HtmlTextLiteralSyntax)Visit(node.Prefix); - var value = (HtmlBlockSyntax)Visit(node.Value); + var prefix = (MarkupTextLiteralSyntax)Visit(node.Prefix); + var value = (RazorBlockSyntax)Visit(node.Value); return node.Update(prefix, value); } + public override SyntaxNode VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) + { + var children = VisitList(node.Children); + return node.Update(children); + } + public override SyntaxNode VisitCSharpTransition(CSharpTransitionSyntax node) { var transition = (SyntaxToken)VisitToken(node.Transition); @@ -452,32 +482,20 @@ public override SyntaxNode VisitCSharpTransition(CSharpTransitionSyntax node) public override SyntaxNode VisitCSharpStatementLiteral(CSharpStatementLiteralSyntax node) { - var cSharpTokens = VisitList(node.CSharpTokens); - return node.Update(cSharpTokens); + var literalTokens = VisitList(node.LiteralTokens); + return node.Update(literalTokens); } public override SyntaxNode VisitCSharpExpressionLiteral(CSharpExpressionLiteralSyntax node) { - var cSharpTokens = VisitList(node.CSharpTokens); - return node.Update(cSharpTokens); + var literalTokens = VisitList(node.LiteralTokens); + return node.Update(literalTokens); } - public override SyntaxNode VisitCSharpHiddenLiteral(CSharpHiddenLiteralSyntax node) + public override SyntaxNode VisitCSharpEphemeralTextLiteral(CSharpEphemeralTextLiteralSyntax node) { - var cSharpTokens = VisitList(node.CSharpTokens); - return node.Update(cSharpTokens); - } - - public override SyntaxNode VisitCSharpNoneLiteral(CSharpNoneLiteralSyntax node) - { - var cSharpTokens = VisitList(node.CSharpTokens); - return node.Update(cSharpTokens); - } - - public override SyntaxNode VisitCSharpCodeBlock(CSharpCodeBlockSyntax node) - { - var children = VisitList(node.Children); - return node.Update(children); + var literalTokens = VisitList(node.LiteralTokens); + return node.Update(literalTokens); } public override SyntaxNode VisitCSharpTemplateBlock(CSharpTemplateBlockSyntax node) @@ -529,14 +547,14 @@ public override SyntaxNode VisitCSharpImplicitExpressionBody(CSharpImplicitExpre return node.Update(cSharpCode); } - public override SyntaxNode VisitCSharpDirective(CSharpDirectiveSyntax node) + public override SyntaxNode VisitRazorDirective(RazorDirectiveSyntax node) { var transition = (CSharpTransitionSyntax)Visit(node.Transition); var body = (CSharpSyntaxNode)Visit(node.Body); return node.Update(transition, body); } - public override SyntaxNode VisitCSharpDirectiveBody(CSharpDirectiveBodySyntax node) + public override SyntaxNode VisitRazorDirectiveBody(RazorDirectiveBodySyntax node) { var keyword = (RazorSyntaxNode)Visit(node.Keyword); var cSharpCode = (CSharpCodeBlockSyntax)Visit(node.CSharpCode); @@ -546,6 +564,14 @@ public override SyntaxNode VisitCSharpDirectiveBody(CSharpDirectiveBodySyntax no internal static partial class SyntaxFactory { + /// Creates a new RazorDocumentSyntax instance. + public static RazorDocumentSyntax RazorDocument(RazorBlockSyntax document) + { + if (document == null) + throw new ArgumentNullException(nameof(document)); + return (RazorDocumentSyntax)InternalSyntax.SyntaxFactory.RazorDocument(document == null ? null : (InternalSyntax.RazorBlockSyntax)document.Green).CreateRed(); + } + /// Creates a new RazorCommentBlockSyntax instance. public static RazorCommentBlockSyntax RazorCommentBlock(SyntaxToken startCommentTransition, SyntaxToken startCommentStar, SyntaxToken comment, SyntaxToken endCommentStar, SyntaxToken endCommentTransition) { @@ -566,7 +592,7 @@ public static RazorCommentBlockSyntax RazorCommentBlock(SyntaxToken startComment switch (comment.Kind) { case SyntaxKind.RazorCommentLiteral: - case SyntaxKind.Unknown: + case SyntaxKind.None: break; default: throw new ArgumentException("comment"); @@ -606,108 +632,118 @@ public static RazorMetaCodeSyntax RazorMetaCode() return SyntaxFactory.RazorMetaCode(default(SyntaxList)); } - /// Creates a new HtmlTransitionSyntax instance. - public static HtmlTransitionSyntax HtmlTransition(SyntaxList transitionTokens) + /// Creates a new GenericBlockSyntax instance. + public static GenericBlockSyntax GenericBlock(SyntaxList children) { - return (HtmlTransitionSyntax)InternalSyntax.SyntaxFactory.HtmlTransition(transitionTokens.Node.ToGreenList()).CreateRed(); + return (GenericBlockSyntax)InternalSyntax.SyntaxFactory.GenericBlock(children.Node.ToGreenList()).CreateRed(); } - /// Creates a new HtmlTransitionSyntax instance. - public static HtmlTransitionSyntax HtmlTransition() + /// Creates a new GenericBlockSyntax instance. + public static GenericBlockSyntax GenericBlock() { - return SyntaxFactory.HtmlTransition(default(SyntaxList)); + return SyntaxFactory.GenericBlock(default(SyntaxList)); } - /// Creates a new HtmlTextLiteralSyntax instance. - public static HtmlTextLiteralSyntax HtmlTextLiteral(SyntaxList textTokens) + /// Creates a new UnclassifiedTextLiteralSyntax instance. + public static UnclassifiedTextLiteralSyntax UnclassifiedTextLiteral(SyntaxList literalTokens) { - return (HtmlTextLiteralSyntax)InternalSyntax.SyntaxFactory.HtmlTextLiteral(textTokens.Node.ToGreenList()).CreateRed(); + return (UnclassifiedTextLiteralSyntax)InternalSyntax.SyntaxFactory.UnclassifiedTextLiteral(literalTokens.Node.ToGreenList()).CreateRed(); } - /// Creates a new HtmlTextLiteralSyntax instance. - public static HtmlTextLiteralSyntax HtmlTextLiteral() + /// Creates a new UnclassifiedTextLiteralSyntax instance. + public static UnclassifiedTextLiteralSyntax UnclassifiedTextLiteral() { - return SyntaxFactory.HtmlTextLiteral(default(SyntaxList)); + return SyntaxFactory.UnclassifiedTextLiteral(default(SyntaxList)); } - /// Creates a new HtmlDocumentSyntax instance. - public static HtmlDocumentSyntax HtmlDocument(HtmlMarkupBlockSyntax document) + /// Creates a new MarkupBlockSyntax instance. + public static MarkupBlockSyntax MarkupBlock(SyntaxList children) { - if (document == null) - throw new ArgumentNullException(nameof(document)); - return (HtmlDocumentSyntax)InternalSyntax.SyntaxFactory.HtmlDocument(document == null ? null : (InternalSyntax.HtmlMarkupBlockSyntax)document.Green).CreateRed(); + return (MarkupBlockSyntax)InternalSyntax.SyntaxFactory.MarkupBlock(children.Node.ToGreenList()).CreateRed(); } - /// Creates a new HtmlDocumentSyntax instance. - public static HtmlDocumentSyntax HtmlDocument() + /// Creates a new MarkupBlockSyntax instance. + public static MarkupBlockSyntax MarkupBlock() { - return SyntaxFactory.HtmlDocument(SyntaxFactory.HtmlMarkupBlock()); + return SyntaxFactory.MarkupBlock(default(SyntaxList)); } - /// Creates a new HtmlBlockSyntax instance. - public static HtmlBlockSyntax HtmlBlock(SyntaxList children) + /// Creates a new MarkupTransitionSyntax instance. + public static MarkupTransitionSyntax MarkupTransition(SyntaxList transitionTokens) { - return (HtmlBlockSyntax)InternalSyntax.SyntaxFactory.HtmlBlock(children.Node.ToGreenList()).CreateRed(); + return (MarkupTransitionSyntax)InternalSyntax.SyntaxFactory.MarkupTransition(transitionTokens.Node.ToGreenList()).CreateRed(); } - /// Creates a new HtmlBlockSyntax instance. - public static HtmlBlockSyntax HtmlBlock() + /// Creates a new MarkupTransitionSyntax instance. + public static MarkupTransitionSyntax MarkupTransition() { - return SyntaxFactory.HtmlBlock(default(SyntaxList)); + return SyntaxFactory.MarkupTransition(default(SyntaxList)); } - /// Creates a new HtmlMarkupBlockSyntax instance. - public static HtmlMarkupBlockSyntax HtmlMarkupBlock(SyntaxList children) + /// Creates a new MarkupTextLiteralSyntax instance. + public static MarkupTextLiteralSyntax MarkupTextLiteral(SyntaxList literalTokens) { - return (HtmlMarkupBlockSyntax)InternalSyntax.SyntaxFactory.HtmlMarkupBlock(children.Node.ToGreenList()).CreateRed(); + return (MarkupTextLiteralSyntax)InternalSyntax.SyntaxFactory.MarkupTextLiteral(literalTokens.Node.ToGreenList()).CreateRed(); } - /// Creates a new HtmlMarkupBlockSyntax instance. - public static HtmlMarkupBlockSyntax HtmlMarkupBlock() + /// Creates a new MarkupTextLiteralSyntax instance. + public static MarkupTextLiteralSyntax MarkupTextLiteral() { - return SyntaxFactory.HtmlMarkupBlock(default(SyntaxList)); + return SyntaxFactory.MarkupTextLiteral(default(SyntaxList)); } - /// Creates a new HtmlCommentBlockSyntax instance. - public static HtmlCommentBlockSyntax HtmlCommentBlock(SyntaxList children) + /// Creates a new MarkupEphemeralTextLiteralSyntax instance. + public static MarkupEphemeralTextLiteralSyntax MarkupEphemeralTextLiteral(SyntaxList literalTokens) { - return (HtmlCommentBlockSyntax)InternalSyntax.SyntaxFactory.HtmlCommentBlock(children.Node.ToGreenList()).CreateRed(); + return (MarkupEphemeralTextLiteralSyntax)InternalSyntax.SyntaxFactory.MarkupEphemeralTextLiteral(literalTokens.Node.ToGreenList()).CreateRed(); } - /// Creates a new HtmlCommentBlockSyntax instance. - public static HtmlCommentBlockSyntax HtmlCommentBlock() + /// Creates a new MarkupEphemeralTextLiteralSyntax instance. + public static MarkupEphemeralTextLiteralSyntax MarkupEphemeralTextLiteral() { - return SyntaxFactory.HtmlCommentBlock(default(SyntaxList)); + return SyntaxFactory.MarkupEphemeralTextLiteral(default(SyntaxList)); } - /// Creates a new HtmlTagBlockSyntax instance. - public static HtmlTagBlockSyntax HtmlTagBlock(SyntaxList children) + /// Creates a new MarkupCommentBlockSyntax instance. + public static MarkupCommentBlockSyntax MarkupCommentBlock(SyntaxList children) { - return (HtmlTagBlockSyntax)InternalSyntax.SyntaxFactory.HtmlTagBlock(children.Node.ToGreenList()).CreateRed(); + return (MarkupCommentBlockSyntax)InternalSyntax.SyntaxFactory.MarkupCommentBlock(children.Node.ToGreenList()).CreateRed(); } - /// Creates a new HtmlTagBlockSyntax instance. - public static HtmlTagBlockSyntax HtmlTagBlock() + /// Creates a new MarkupCommentBlockSyntax instance. + public static MarkupCommentBlockSyntax MarkupCommentBlock() { - return SyntaxFactory.HtmlTagBlock(default(SyntaxList)); + return SyntaxFactory.MarkupCommentBlock(default(SyntaxList)); } - /// Creates a new HtmlMinimizedAttributeBlockSyntax instance. - public static HtmlMinimizedAttributeBlockSyntax HtmlMinimizedAttributeBlock(HtmlTextLiteralSyntax namePrefix, HtmlTextLiteralSyntax name) + /// Creates a new MarkupTagBlockSyntax instance. + public static MarkupTagBlockSyntax MarkupTagBlock(SyntaxList children) + { + return (MarkupTagBlockSyntax)InternalSyntax.SyntaxFactory.MarkupTagBlock(children.Node.ToGreenList()).CreateRed(); + } + + /// Creates a new MarkupTagBlockSyntax instance. + public static MarkupTagBlockSyntax MarkupTagBlock() + { + return SyntaxFactory.MarkupTagBlock(default(SyntaxList)); + } + + /// Creates a new MarkupMinimizedAttributeBlockSyntax instance. + public static MarkupMinimizedAttributeBlockSyntax MarkupMinimizedAttributeBlock(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name) { if (name == null) throw new ArgumentNullException(nameof(name)); - return (HtmlMinimizedAttributeBlockSyntax)InternalSyntax.SyntaxFactory.HtmlMinimizedAttributeBlock(namePrefix == null ? null : (InternalSyntax.HtmlTextLiteralSyntax)namePrefix.Green, name == null ? null : (InternalSyntax.HtmlTextLiteralSyntax)name.Green).CreateRed(); + return (MarkupMinimizedAttributeBlockSyntax)InternalSyntax.SyntaxFactory.MarkupMinimizedAttributeBlock(namePrefix == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)namePrefix.Green, name == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)name.Green).CreateRed(); } - /// Creates a new HtmlMinimizedAttributeBlockSyntax instance. - public static HtmlMinimizedAttributeBlockSyntax HtmlMinimizedAttributeBlock() + /// Creates a new MarkupMinimizedAttributeBlockSyntax instance. + public static MarkupMinimizedAttributeBlockSyntax MarkupMinimizedAttributeBlock() { - return SyntaxFactory.HtmlMinimizedAttributeBlock(default(HtmlTextLiteralSyntax), SyntaxFactory.HtmlTextLiteral()); + return SyntaxFactory.MarkupMinimizedAttributeBlock(default(MarkupTextLiteralSyntax), SyntaxFactory.MarkupTextLiteral()); } - /// Creates a new HtmlAttributeBlockSyntax instance. - public static HtmlAttributeBlockSyntax HtmlAttributeBlock(HtmlTextLiteralSyntax namePrefix, HtmlTextLiteralSyntax name, HtmlTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, HtmlTextLiteralSyntax valuePrefix, HtmlBlockSyntax value, HtmlTextLiteralSyntax valueSuffix) + /// Creates a new MarkupAttributeBlockSyntax instance. + public static MarkupAttributeBlockSyntax MarkupAttributeBlock(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name, MarkupTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, MarkupTextLiteralSyntax valuePrefix, RazorBlockSyntax value, MarkupTextLiteralSyntax valueSuffix) { if (name == null) throw new ArgumentNullException(nameof(name)); @@ -720,47 +756,59 @@ public static HtmlAttributeBlockSyntax HtmlAttributeBlock(HtmlTextLiteralSyntax } if (value == null) throw new ArgumentNullException(nameof(value)); - return (HtmlAttributeBlockSyntax)InternalSyntax.SyntaxFactory.HtmlAttributeBlock(namePrefix == null ? null : (InternalSyntax.HtmlTextLiteralSyntax)namePrefix.Green, name == null ? null : (InternalSyntax.HtmlTextLiteralSyntax)name.Green, nameSuffix == null ? null : (InternalSyntax.HtmlTextLiteralSyntax)nameSuffix.Green, (Syntax.InternalSyntax.SyntaxToken)equalsToken.Green, valuePrefix == null ? null : (InternalSyntax.HtmlTextLiteralSyntax)valuePrefix.Green, value == null ? null : (InternalSyntax.HtmlBlockSyntax)value.Green, valueSuffix == null ? null : (InternalSyntax.HtmlTextLiteralSyntax)valueSuffix.Green).CreateRed(); + 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 HtmlAttributeBlockSyntax instance. - public static HtmlAttributeBlockSyntax HtmlAttributeBlock(HtmlTextLiteralSyntax _namePrefix, HtmlTextLiteralSyntax _name, HtmlTextLiteralSyntax _nameSuffix, HtmlTextLiteralSyntax _valuePrefix, HtmlBlockSyntax _value, HtmlTextLiteralSyntax _valueSuffix) + /// Creates a new MarkupAttributeBlockSyntax instance. + public static MarkupAttributeBlockSyntax MarkupAttributeBlock(MarkupTextLiteralSyntax _namePrefix, MarkupTextLiteralSyntax _name, MarkupTextLiteralSyntax _nameSuffix, MarkupTextLiteralSyntax _valuePrefix, RazorBlockSyntax _value, MarkupTextLiteralSyntax _valueSuffix) { - return SyntaxFactory.HtmlAttributeBlock(_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 HtmlAttributeBlockSyntax instance. - public static HtmlAttributeBlockSyntax HtmlAttributeBlock() + /// Creates a new MarkupAttributeBlockSyntax instance. + public static MarkupAttributeBlockSyntax MarkupAttributeBlock(RazorBlockSyntax value) { - return SyntaxFactory.HtmlAttributeBlock(default(HtmlTextLiteralSyntax), SyntaxFactory.HtmlTextLiteral(), default(HtmlTextLiteralSyntax), SyntaxFactory.Token(SyntaxKind.Equals), default(HtmlTextLiteralSyntax), SyntaxFactory.HtmlBlock(), default(HtmlTextLiteralSyntax)); + return SyntaxFactory.MarkupAttributeBlock(default(MarkupTextLiteralSyntax), SyntaxFactory.MarkupTextLiteral(), default(MarkupTextLiteralSyntax), SyntaxFactory.Token(SyntaxKind.Equals), default(MarkupTextLiteralSyntax), value, default(MarkupTextLiteralSyntax)); } - /// Creates a new HtmlLiteralAttributeValueSyntax instance. - public static HtmlLiteralAttributeValueSyntax HtmlLiteralAttributeValue(HtmlTextLiteralSyntax prefix, HtmlTextLiteralSyntax value) + /// Creates a new MarkupLiteralAttributeValueSyntax instance. + public static MarkupLiteralAttributeValueSyntax MarkupLiteralAttributeValue(MarkupTextLiteralSyntax prefix, MarkupTextLiteralSyntax value) { if (value == null) throw new ArgumentNullException(nameof(value)); - return (HtmlLiteralAttributeValueSyntax)InternalSyntax.SyntaxFactory.HtmlLiteralAttributeValue(prefix == null ? null : (InternalSyntax.HtmlTextLiteralSyntax)prefix.Green, value == null ? null : (InternalSyntax.HtmlTextLiteralSyntax)value.Green).CreateRed(); + return (MarkupLiteralAttributeValueSyntax)InternalSyntax.SyntaxFactory.MarkupLiteralAttributeValue(prefix == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)prefix.Green, value == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)value.Green).CreateRed(); } - /// Creates a new HtmlLiteralAttributeValueSyntax instance. - public static HtmlLiteralAttributeValueSyntax HtmlLiteralAttributeValue() + /// Creates a new MarkupLiteralAttributeValueSyntax instance. + public static MarkupLiteralAttributeValueSyntax MarkupLiteralAttributeValue() { - return SyntaxFactory.HtmlLiteralAttributeValue(default(HtmlTextLiteralSyntax), SyntaxFactory.HtmlTextLiteral()); + return SyntaxFactory.MarkupLiteralAttributeValue(default(MarkupTextLiteralSyntax), SyntaxFactory.MarkupTextLiteral()); } - /// Creates a new HtmlDynamicAttributeValueSyntax instance. - public static HtmlDynamicAttributeValueSyntax HtmlDynamicAttributeValue(HtmlTextLiteralSyntax prefix, HtmlBlockSyntax value) + /// Creates a new MarkupDynamicAttributeValueSyntax instance. + public static MarkupDynamicAttributeValueSyntax MarkupDynamicAttributeValue(MarkupTextLiteralSyntax prefix, RazorBlockSyntax value) { if (value == null) throw new ArgumentNullException(nameof(value)); - return (HtmlDynamicAttributeValueSyntax)InternalSyntax.SyntaxFactory.HtmlDynamicAttributeValue(prefix == null ? null : (InternalSyntax.HtmlTextLiteralSyntax)prefix.Green, value == null ? null : (InternalSyntax.HtmlBlockSyntax)value.Green).CreateRed(); + return (MarkupDynamicAttributeValueSyntax)InternalSyntax.SyntaxFactory.MarkupDynamicAttributeValue(prefix == null ? null : (InternalSyntax.MarkupTextLiteralSyntax)prefix.Green, value == null ? null : (InternalSyntax.RazorBlockSyntax)value.Green).CreateRed(); } - /// Creates a new HtmlDynamicAttributeValueSyntax instance. - public static HtmlDynamicAttributeValueSyntax HtmlDynamicAttributeValue() + /// Creates a new MarkupDynamicAttributeValueSyntax instance. + public static MarkupDynamicAttributeValueSyntax MarkupDynamicAttributeValue(RazorBlockSyntax value) { - return SyntaxFactory.HtmlDynamicAttributeValue(default(HtmlTextLiteralSyntax), SyntaxFactory.HtmlBlock()); + return SyntaxFactory.MarkupDynamicAttributeValue(default(MarkupTextLiteralSyntax), value); + } + + /// Creates a new CSharpCodeBlockSyntax instance. + public static CSharpCodeBlockSyntax CSharpCodeBlock(SyntaxList children) + { + return (CSharpCodeBlockSyntax)InternalSyntax.SyntaxFactory.CSharpCodeBlock(children.Node.ToGreenList()).CreateRed(); + } + + /// Creates a new CSharpCodeBlockSyntax instance. + public static CSharpCodeBlockSyntax CSharpCodeBlock() + { + return SyntaxFactory.CSharpCodeBlock(default(SyntaxList)); } /// Creates a new CSharpTransitionSyntax instance. @@ -783,9 +831,9 @@ public static CSharpTransitionSyntax CSharpTransition() } /// Creates a new CSharpStatementLiteralSyntax instance. - public static CSharpStatementLiteralSyntax CSharpStatementLiteral(SyntaxList cSharpTokens) + public static CSharpStatementLiteralSyntax CSharpStatementLiteral(SyntaxList literalTokens) { - return (CSharpStatementLiteralSyntax)InternalSyntax.SyntaxFactory.CSharpStatementLiteral(cSharpTokens.Node.ToGreenList()).CreateRed(); + return (CSharpStatementLiteralSyntax)InternalSyntax.SyntaxFactory.CSharpStatementLiteral(literalTokens.Node.ToGreenList()).CreateRed(); } /// Creates a new CSharpStatementLiteralSyntax instance. @@ -795,9 +843,9 @@ public static CSharpStatementLiteralSyntax CSharpStatementLiteral() } /// Creates a new CSharpExpressionLiteralSyntax instance. - public static CSharpExpressionLiteralSyntax CSharpExpressionLiteral(SyntaxList cSharpTokens) + public static CSharpExpressionLiteralSyntax CSharpExpressionLiteral(SyntaxList literalTokens) { - return (CSharpExpressionLiteralSyntax)InternalSyntax.SyntaxFactory.CSharpExpressionLiteral(cSharpTokens.Node.ToGreenList()).CreateRed(); + return (CSharpExpressionLiteralSyntax)InternalSyntax.SyntaxFactory.CSharpExpressionLiteral(literalTokens.Node.ToGreenList()).CreateRed(); } /// Creates a new CSharpExpressionLiteralSyntax instance. @@ -806,40 +854,16 @@ public static CSharpExpressionLiteralSyntax CSharpExpressionLiteral() return SyntaxFactory.CSharpExpressionLiteral(default(SyntaxList)); } - /// Creates a new CSharpHiddenLiteralSyntax instance. - public static CSharpHiddenLiteralSyntax CSharpHiddenLiteral(SyntaxList cSharpTokens) + /// Creates a new CSharpEphemeralTextLiteralSyntax instance. + public static CSharpEphemeralTextLiteralSyntax CSharpEphemeralTextLiteral(SyntaxList literalTokens) { - return (CSharpHiddenLiteralSyntax)InternalSyntax.SyntaxFactory.CSharpHiddenLiteral(cSharpTokens.Node.ToGreenList()).CreateRed(); + return (CSharpEphemeralTextLiteralSyntax)InternalSyntax.SyntaxFactory.CSharpEphemeralTextLiteral(literalTokens.Node.ToGreenList()).CreateRed(); } - /// Creates a new CSharpHiddenLiteralSyntax instance. - public static CSharpHiddenLiteralSyntax CSharpHiddenLiteral() + /// Creates a new CSharpEphemeralTextLiteralSyntax instance. + public static CSharpEphemeralTextLiteralSyntax CSharpEphemeralTextLiteral() { - return SyntaxFactory.CSharpHiddenLiteral(default(SyntaxList)); - } - - /// Creates a new CSharpNoneLiteralSyntax instance. - public static CSharpNoneLiteralSyntax CSharpNoneLiteral(SyntaxList cSharpTokens) - { - return (CSharpNoneLiteralSyntax)InternalSyntax.SyntaxFactory.CSharpNoneLiteral(cSharpTokens.Node.ToGreenList()).CreateRed(); - } - - /// Creates a new CSharpNoneLiteralSyntax instance. - public static CSharpNoneLiteralSyntax CSharpNoneLiteral() - { - return SyntaxFactory.CSharpNoneLiteral(default(SyntaxList)); - } - - /// Creates a new CSharpCodeBlockSyntax instance. - public static CSharpCodeBlockSyntax CSharpCodeBlock(SyntaxList children) - { - return (CSharpCodeBlockSyntax)InternalSyntax.SyntaxFactory.CSharpCodeBlock(children.Node.ToGreenList()).CreateRed(); - } - - /// Creates a new CSharpCodeBlockSyntax instance. - public static CSharpCodeBlockSyntax CSharpCodeBlock() - { - return SyntaxFactory.CSharpCodeBlock(default(SyntaxList)); + return SyntaxFactory.CSharpEphemeralTextLiteral(default(SyntaxList)); } /// Creates a new CSharpTemplateBlockSyntax instance. @@ -952,34 +976,34 @@ public static CSharpImplicitExpressionBodySyntax CSharpImplicitExpressionBody() return SyntaxFactory.CSharpImplicitExpressionBody(SyntaxFactory.CSharpCodeBlock()); } - /// Creates a new CSharpDirectiveSyntax instance. - public static CSharpDirectiveSyntax CSharpDirective(CSharpTransitionSyntax transition, CSharpSyntaxNode body) + /// Creates a new RazorDirectiveSyntax instance. + public static RazorDirectiveSyntax RazorDirective(CSharpTransitionSyntax transition, CSharpSyntaxNode body) { if (transition == null) throw new ArgumentNullException(nameof(transition)); if (body == null) throw new ArgumentNullException(nameof(body)); - return (CSharpDirectiveSyntax)InternalSyntax.SyntaxFactory.CSharpDirective(transition == null ? null : (InternalSyntax.CSharpTransitionSyntax)transition.Green, body == null ? null : (InternalSyntax.CSharpSyntaxNode)body.Green).CreateRed(); + return (RazorDirectiveSyntax)InternalSyntax.SyntaxFactory.RazorDirective(transition == null ? null : (InternalSyntax.CSharpTransitionSyntax)transition.Green, body == null ? null : (InternalSyntax.CSharpSyntaxNode)body.Green).CreateRed(); } - /// Creates a new CSharpDirectiveSyntax instance. - public static CSharpDirectiveSyntax CSharpDirective(CSharpSyntaxNode body) + /// Creates a new RazorDirectiveSyntax instance. + public static RazorDirectiveSyntax RazorDirective(CSharpSyntaxNode body) { - return SyntaxFactory.CSharpDirective(SyntaxFactory.CSharpTransition(), body); + return SyntaxFactory.RazorDirective(SyntaxFactory.CSharpTransition(), body); } - /// Creates a new CSharpDirectiveBodySyntax instance. - public static CSharpDirectiveBodySyntax CSharpDirectiveBody(RazorSyntaxNode keyword, CSharpCodeBlockSyntax cSharpCode) + /// Creates a new RazorDirectiveBodySyntax instance. + public static RazorDirectiveBodySyntax RazorDirectiveBody(RazorSyntaxNode keyword, CSharpCodeBlockSyntax cSharpCode) { if (keyword == null) throw new ArgumentNullException(nameof(keyword)); - return (CSharpDirectiveBodySyntax)InternalSyntax.SyntaxFactory.CSharpDirectiveBody(keyword == null ? null : (InternalSyntax.RazorSyntaxNode)keyword.Green, cSharpCode == null ? null : (InternalSyntax.CSharpCodeBlockSyntax)cSharpCode.Green).CreateRed(); + return (RazorDirectiveBodySyntax)InternalSyntax.SyntaxFactory.RazorDirectiveBody(keyword == null ? null : (InternalSyntax.RazorSyntaxNode)keyword.Green, cSharpCode == null ? null : (InternalSyntax.CSharpCodeBlockSyntax)cSharpCode.Green).CreateRed(); } - /// Creates a new CSharpDirectiveBodySyntax instance. - public static CSharpDirectiveBodySyntax CSharpDirectiveBody(RazorSyntaxNode keyword) + /// Creates a new RazorDirectiveBodySyntax instance. + public static RazorDirectiveBodySyntax RazorDirectiveBody(RazorSyntaxNode keyword) { - return SyntaxFactory.CSharpDirectiveBody(keyword, default(CSharpCodeBlockSyntax)); + return SyntaxFactory.RazorDirectiveBody(keyword, default(CSharpCodeBlockSyntax)); } } } 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 07ca269f5..ae42875de 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 @@ -17,6 +17,85 @@ internal RazorSyntaxNode(GreenNode green, SyntaxNode parent, int position) } } + internal abstract partial class RazorBlockSyntax : RazorSyntaxNode + { + internal RazorBlockSyntax(GreenNode green, SyntaxNode parent, int position) + : base(green, parent, position) + { + } + + public abstract SyntaxList Children { get; } + public RazorBlockSyntax WithChildren(SyntaxList children) => WithChildrenCore(children); + internal abstract RazorBlockSyntax WithChildrenCore(SyntaxList children); + + public RazorBlockSyntax AddChildren(params RazorSyntaxNode[] items) => AddChildrenCore(items); + internal abstract RazorBlockSyntax AddChildrenCore(params RazorSyntaxNode[] items); + } + + internal sealed partial class RazorDocumentSyntax : RazorSyntaxNode + { + private RazorBlockSyntax _document; + + internal RazorDocumentSyntax(GreenNode green, SyntaxNode parent, int position) + : base(green, parent, position) + { + } + + public RazorBlockSyntax Document + { + get + { + return GetRedAtZero(ref _document); + } + } + + internal override SyntaxNode GetNodeSlot(int index) + { + switch (index) + { + case 0: return GetRedAtZero(ref _document); + default: return null; + } + } + internal override SyntaxNode GetCachedSlot(int index) + { + switch (index) + { + case 0: return _document; + default: return null; + } + } + + public override TResult Accept(SyntaxVisitor visitor) + { + return visitor.VisitRazorDocument(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitRazorDocument(this); + } + + public RazorDocumentSyntax Update(RazorBlockSyntax document) + { + if (document != Document) + { + var newNode = SyntaxFactory.RazorDocument(document); + var annotations = GetAnnotations(); + if (annotations != null && annotations.Length > 0) + return newNode.WithAnnotations(annotations); + return newNode; + } + + return this; + } + + public RazorDocumentSyntax WithDocument(RazorBlockSyntax document) + { + return Update(document); + } + } + internal sealed partial class RazorCommentBlockSyntax : RazorSyntaxNode { private SyntaxToken _startCommentTransition; @@ -214,28 +293,91 @@ public RazorMetaCodeSyntax AddMetaCode(params SyntaxToken[] items) } } - internal abstract partial class HtmlSyntaxNode : RazorSyntaxNode + internal sealed partial class GenericBlockSyntax : RazorBlockSyntax { - internal HtmlSyntaxNode(GreenNode green, SyntaxNode parent, int position) - : base(green, parent, position) + private SyntaxNode _children; + + internal GenericBlockSyntax(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.VisitGenericBlock(this); + } + + public override void Accept(SyntaxVisitor visitor) + { + visitor.VisitGenericBlock(this); + } + + public GenericBlockSyntax Update(SyntaxList children) + { + if (children != Children) + { + var newNode = SyntaxFactory.GenericBlock(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 GenericBlockSyntax WithChildren(SyntaxList children) + { + return Update(children); + } + internal override RazorBlockSyntax AddChildrenCore(params RazorSyntaxNode[] items) => AddChildren(items); + + public new GenericBlockSyntax AddChildren(params RazorSyntaxNode[] items) + { + return WithChildren(this.Children.AddRange(items)); } } - internal sealed partial class HtmlTransitionSyntax : HtmlSyntaxNode + internal sealed partial class UnclassifiedTextLiteralSyntax : RazorSyntaxNode { - private SyntaxNode _transitionTokens; + private SyntaxNode _literalTokens; - internal HtmlTransitionSyntax(GreenNode green, SyntaxNode parent, int position) + internal UnclassifiedTextLiteralSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } - public SyntaxList TransitionTokens + public SyntaxList LiteralTokens { get { - return new SyntaxList(GetRed(ref _transitionTokens, 0)); + return new SyntaxList(GetRed(ref _literalTokens, 0)); } } @@ -243,7 +385,7 @@ internal override SyntaxNode GetNodeSlot(int index) { switch (index) { - case 0: return GetRedAtZero(ref _transitionTokens); + case 0: return GetRedAtZero(ref _literalTokens); default: return null; } } @@ -251,26 +393,26 @@ internal override SyntaxNode GetCachedSlot(int index) { switch (index) { - case 0: return _transitionTokens; + case 0: return _literalTokens; default: return null; } } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlTransition(this); + return visitor.VisitUnclassifiedTextLiteral(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlTransition(this); + visitor.VisitUnclassifiedTextLiteral(this); } - public HtmlTransitionSyntax Update(SyntaxList transitionTokens) + public UnclassifiedTextLiteralSyntax Update(SyntaxList literalTokens) { - if (transitionTokens != TransitionTokens) + if (literalTokens != LiteralTokens) { - var newNode = SyntaxFactory.HtmlTransition(transitionTokens); + var newNode = SyntaxFactory.UnclassifiedTextLiteral(literalTokens); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -280,31 +422,39 @@ public HtmlTransitionSyntax Update(SyntaxList transitionTokens) return this; } - public HtmlTransitionSyntax WithTransitionTokens(SyntaxList transitionTokens) + public UnclassifiedTextLiteralSyntax WithLiteralTokens(SyntaxList literalTokens) { - return Update(transitionTokens); + return Update(literalTokens); } - public HtmlTransitionSyntax AddTransitionTokens(params SyntaxToken[] items) + public UnclassifiedTextLiteralSyntax AddLiteralTokens(params SyntaxToken[] items) + { + return WithLiteralTokens(this.LiteralTokens.AddRange(items)); + } + } + + internal abstract partial class MarkupSyntaxNode : RazorSyntaxNode + { + internal MarkupSyntaxNode(GreenNode green, SyntaxNode parent, int position) + : base(green, parent, position) { - return WithTransitionTokens(this.TransitionTokens.AddRange(items)); } } - internal sealed partial class HtmlTextLiteralSyntax : HtmlSyntaxNode + internal sealed partial class MarkupBlockSyntax : RazorBlockSyntax { - private SyntaxNode _textTokens; + private SyntaxNode _children; - internal HtmlTextLiteralSyntax(GreenNode green, SyntaxNode parent, int position) + internal MarkupBlockSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } - public SyntaxList TextTokens + public override SyntaxList Children { get { - return new SyntaxList(GetRed(ref _textTokens, 0)); + return new SyntaxList(GetRed(ref _children, 0)); } } @@ -312,7 +462,7 @@ internal override SyntaxNode GetNodeSlot(int index) { switch (index) { - case 0: return GetRedAtZero(ref _textTokens); + case 0: return GetRedAtZero(ref _children); default: return null; } } @@ -320,26 +470,26 @@ internal override SyntaxNode GetCachedSlot(int index) { switch (index) { - case 0: return _textTokens; + case 0: return _children; default: return null; } } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlTextLiteral(this); + return visitor.VisitMarkupBlock(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlTextLiteral(this); + visitor.VisitMarkupBlock(this); } - public HtmlTextLiteralSyntax Update(SyntaxList textTokens) + public MarkupBlockSyntax Update(SyntaxList children) { - if (textTokens != TextTokens) + if (children != Children) { - var newNode = SyntaxFactory.HtmlTextLiteral(textTokens); + var newNode = SyntaxFactory.MarkupBlock(children); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -349,31 +499,33 @@ public HtmlTextLiteralSyntax Update(SyntaxList textTokens) return this; } - public HtmlTextLiteralSyntax WithTextTokens(SyntaxList textTokens) + internal override RazorBlockSyntax WithChildrenCore(SyntaxList children) => WithChildren(children); + public new MarkupBlockSyntax WithChildren(SyntaxList children) { - return Update(textTokens); + return Update(children); } + internal override RazorBlockSyntax AddChildrenCore(params RazorSyntaxNode[] items) => AddChildren(items); - public HtmlTextLiteralSyntax AddTextTokens(params SyntaxToken[] items) + public new MarkupBlockSyntax AddChildren(params RazorSyntaxNode[] items) { - return WithTextTokens(this.TextTokens.AddRange(items)); + return WithChildren(this.Children.AddRange(items)); } } - internal sealed partial class HtmlDocumentSyntax : HtmlSyntaxNode + internal sealed partial class MarkupTransitionSyntax : MarkupSyntaxNode { - private HtmlMarkupBlockSyntax _document; + private SyntaxNode _transitionTokens; - internal HtmlDocumentSyntax(GreenNode green, SyntaxNode parent, int position) + internal MarkupTransitionSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } - public HtmlMarkupBlockSyntax Document + public SyntaxList TransitionTokens { get { - return GetRedAtZero(ref _document); + return new SyntaxList(GetRed(ref _transitionTokens, 0)); } } @@ -381,7 +533,7 @@ internal override SyntaxNode GetNodeSlot(int index) { switch (index) { - case 0: return GetRedAtZero(ref _document); + case 0: return GetRedAtZero(ref _transitionTokens); default: return null; } } @@ -389,26 +541,26 @@ internal override SyntaxNode GetCachedSlot(int index) { switch (index) { - case 0: return _document; + case 0: return _transitionTokens; default: return null; } } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlDocument(this); + return visitor.VisitMarkupTransition(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlDocument(this); + visitor.VisitMarkupTransition(this); } - public HtmlDocumentSyntax Update(HtmlMarkupBlockSyntax document) + public MarkupTransitionSyntax Update(SyntaxList transitionTokens) { - if (document != Document) + if (transitionTokens != TransitionTokens) { - var newNode = SyntaxFactory.HtmlDocument(document); + var newNode = SyntaxFactory.MarkupTransition(transitionTokens); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -418,31 +570,31 @@ public HtmlDocumentSyntax Update(HtmlMarkupBlockSyntax document) return this; } - public HtmlDocumentSyntax WithDocument(HtmlMarkupBlockSyntax document) + public MarkupTransitionSyntax WithTransitionTokens(SyntaxList transitionTokens) { - return Update(document); + return Update(transitionTokens); } - public HtmlDocumentSyntax AddDocumentChildren(params RazorSyntaxNode[] items) + public MarkupTransitionSyntax AddTransitionTokens(params SyntaxToken[] items) { - return this.WithDocument(this.Document.WithChildren(this.Document.Children.AddRange(items))); + return WithTransitionTokens(this.TransitionTokens.AddRange(items)); } } - internal sealed partial class HtmlBlockSyntax : HtmlSyntaxNode + internal sealed partial class MarkupTextLiteralSyntax : MarkupSyntaxNode { - private SyntaxNode _children; + private SyntaxNode _literalTokens; - internal HtmlBlockSyntax(GreenNode green, SyntaxNode parent, int position) + internal MarkupTextLiteralSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } - public SyntaxList Children + public SyntaxList LiteralTokens { get { - return new SyntaxList(GetRed(ref _children, 0)); + return new SyntaxList(GetRed(ref _literalTokens, 0)); } } @@ -450,7 +602,7 @@ internal override SyntaxNode GetNodeSlot(int index) { switch (index) { - case 0: return GetRedAtZero(ref _children); + case 0: return GetRedAtZero(ref _literalTokens); default: return null; } } @@ -458,26 +610,26 @@ internal override SyntaxNode GetCachedSlot(int index) { switch (index) { - case 0: return _children; + case 0: return _literalTokens; default: return null; } } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlBlock(this); + return visitor.VisitMarkupTextLiteral(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlBlock(this); + visitor.VisitMarkupTextLiteral(this); } - public HtmlBlockSyntax Update(SyntaxList children) + public MarkupTextLiteralSyntax Update(SyntaxList literalTokens) { - if (children != Children) + if (literalTokens != LiteralTokens) { - var newNode = SyntaxFactory.HtmlBlock(children); + var newNode = SyntaxFactory.MarkupTextLiteral(literalTokens); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -487,31 +639,31 @@ public HtmlBlockSyntax Update(SyntaxList children) return this; } - public HtmlBlockSyntax WithChildren(SyntaxList children) + public MarkupTextLiteralSyntax WithLiteralTokens(SyntaxList literalTokens) { - return Update(children); + return Update(literalTokens); } - public HtmlBlockSyntax AddChildren(params RazorSyntaxNode[] items) + public MarkupTextLiteralSyntax AddLiteralTokens(params SyntaxToken[] items) { - return WithChildren(this.Children.AddRange(items)); + return WithLiteralTokens(this.LiteralTokens.AddRange(items)); } } - internal sealed partial class HtmlMarkupBlockSyntax : HtmlSyntaxNode + internal sealed partial class MarkupEphemeralTextLiteralSyntax : MarkupSyntaxNode { - private SyntaxNode _children; + private SyntaxNode _literalTokens; - internal HtmlMarkupBlockSyntax(GreenNode green, SyntaxNode parent, int position) + internal MarkupEphemeralTextLiteralSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } - public SyntaxList Children + public SyntaxList LiteralTokens { get { - return new SyntaxList(GetRed(ref _children, 0)); + return new SyntaxList(GetRed(ref _literalTokens, 0)); } } @@ -519,7 +671,7 @@ internal override SyntaxNode GetNodeSlot(int index) { switch (index) { - case 0: return GetRedAtZero(ref _children); + case 0: return GetRedAtZero(ref _literalTokens); default: return null; } } @@ -527,26 +679,26 @@ internal override SyntaxNode GetCachedSlot(int index) { switch (index) { - case 0: return _children; + case 0: return _literalTokens; default: return null; } } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlMarkupBlock(this); + return visitor.VisitMarkupEphemeralTextLiteral(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlMarkupBlock(this); + visitor.VisitMarkupEphemeralTextLiteral(this); } - public HtmlMarkupBlockSyntax Update(SyntaxList children) + public MarkupEphemeralTextLiteralSyntax Update(SyntaxList literalTokens) { - if (children != Children) + if (literalTokens != LiteralTokens) { - var newNode = SyntaxFactory.HtmlMarkupBlock(children); + var newNode = SyntaxFactory.MarkupEphemeralTextLiteral(literalTokens); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -556,27 +708,27 @@ public HtmlMarkupBlockSyntax Update(SyntaxList children) return this; } - public HtmlMarkupBlockSyntax WithChildren(SyntaxList children) + public MarkupEphemeralTextLiteralSyntax WithLiteralTokens(SyntaxList literalTokens) { - return Update(children); + return Update(literalTokens); } - public HtmlMarkupBlockSyntax AddChildren(params RazorSyntaxNode[] items) + public MarkupEphemeralTextLiteralSyntax AddLiteralTokens(params SyntaxToken[] items) { - return WithChildren(this.Children.AddRange(items)); + return WithLiteralTokens(this.LiteralTokens.AddRange(items)); } } - internal sealed partial class HtmlCommentBlockSyntax : HtmlSyntaxNode + internal sealed partial class MarkupCommentBlockSyntax : RazorBlockSyntax { private SyntaxNode _children; - internal HtmlCommentBlockSyntax(GreenNode green, SyntaxNode parent, int position) + internal MarkupCommentBlockSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } - public SyntaxList Children + public override SyntaxList Children { get { @@ -603,19 +755,19 @@ internal override SyntaxNode GetCachedSlot(int index) public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlCommentBlock(this); + return visitor.VisitMarkupCommentBlock(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlCommentBlock(this); + visitor.VisitMarkupCommentBlock(this); } - public HtmlCommentBlockSyntax Update(SyntaxList children) + public MarkupCommentBlockSyntax Update(SyntaxList children) { if (children != Children) { - var newNode = SyntaxFactory.HtmlCommentBlock(children); + var newNode = SyntaxFactory.MarkupCommentBlock(children); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -625,27 +777,29 @@ public HtmlCommentBlockSyntax Update(SyntaxList children) return this; } - public HtmlCommentBlockSyntax WithChildren(SyntaxList children) + internal override RazorBlockSyntax WithChildrenCore(SyntaxList children) => WithChildren(children); + public new MarkupCommentBlockSyntax WithChildren(SyntaxList children) { return Update(children); } + internal override RazorBlockSyntax AddChildrenCore(params RazorSyntaxNode[] items) => AddChildren(items); - public HtmlCommentBlockSyntax AddChildren(params RazorSyntaxNode[] items) + public new MarkupCommentBlockSyntax AddChildren(params RazorSyntaxNode[] items) { return WithChildren(this.Children.AddRange(items)); } } - internal sealed partial class HtmlTagBlockSyntax : HtmlSyntaxNode + internal sealed partial class MarkupTagBlockSyntax : RazorBlockSyntax { private SyntaxNode _children; - internal HtmlTagBlockSyntax(GreenNode green, SyntaxNode parent, int position) + internal MarkupTagBlockSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } - public SyntaxList Children + public override SyntaxList Children { get { @@ -672,19 +826,19 @@ internal override SyntaxNode GetCachedSlot(int index) public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlTagBlock(this); + return visitor.VisitMarkupTagBlock(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlTagBlock(this); + visitor.VisitMarkupTagBlock(this); } - public HtmlTagBlockSyntax Update(SyntaxList children) + public MarkupTagBlockSyntax Update(SyntaxList children) { if (children != Children) { - var newNode = SyntaxFactory.HtmlTagBlock(children); + var newNode = SyntaxFactory.MarkupTagBlock(children); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -694,28 +848,30 @@ public HtmlTagBlockSyntax Update(SyntaxList children) return this; } - public HtmlTagBlockSyntax WithChildren(SyntaxList children) + internal override RazorBlockSyntax WithChildrenCore(SyntaxList children) => WithChildren(children); + public new MarkupTagBlockSyntax WithChildren(SyntaxList children) { return Update(children); } + internal override RazorBlockSyntax AddChildrenCore(params RazorSyntaxNode[] items) => AddChildren(items); - public HtmlTagBlockSyntax AddChildren(params RazorSyntaxNode[] items) + public new MarkupTagBlockSyntax AddChildren(params RazorSyntaxNode[] items) { return WithChildren(this.Children.AddRange(items)); } } - internal sealed partial class HtmlMinimizedAttributeBlockSyntax : HtmlSyntaxNode + internal sealed partial class MarkupMinimizedAttributeBlockSyntax : MarkupSyntaxNode { - private HtmlTextLiteralSyntax _namePrefix; - private HtmlTextLiteralSyntax _name; + private MarkupTextLiteralSyntax _namePrefix; + private MarkupTextLiteralSyntax _name; - internal HtmlMinimizedAttributeBlockSyntax(GreenNode green, SyntaxNode parent, int position) + internal MarkupMinimizedAttributeBlockSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } - public HtmlTextLiteralSyntax NamePrefix + public MarkupTextLiteralSyntax NamePrefix { get { @@ -723,7 +879,7 @@ public HtmlTextLiteralSyntax NamePrefix } } - public HtmlTextLiteralSyntax Name + public MarkupTextLiteralSyntax Name { get { @@ -752,19 +908,19 @@ internal override SyntaxNode GetCachedSlot(int index) public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlMinimizedAttributeBlock(this); + return visitor.VisitMarkupMinimizedAttributeBlock(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlMinimizedAttributeBlock(this); + visitor.VisitMarkupMinimizedAttributeBlock(this); } - public HtmlMinimizedAttributeBlockSyntax Update(HtmlTextLiteralSyntax namePrefix, HtmlTextLiteralSyntax name) + public MarkupMinimizedAttributeBlockSyntax Update(MarkupTextLiteralSyntax namePrefix, MarkupTextLiteralSyntax name) { if (namePrefix != NamePrefix || name != Name) { - var newNode = SyntaxFactory.HtmlMinimizedAttributeBlock(namePrefix, name); + var newNode = SyntaxFactory.MarkupMinimizedAttributeBlock(namePrefix, name); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -774,44 +930,44 @@ public HtmlMinimizedAttributeBlockSyntax Update(HtmlTextLiteralSyntax namePrefix return this; } - public HtmlMinimizedAttributeBlockSyntax WithNamePrefix(HtmlTextLiteralSyntax namePrefix) + public MarkupMinimizedAttributeBlockSyntax WithNamePrefix(MarkupTextLiteralSyntax namePrefix) { return Update(namePrefix, Name); } - public HtmlMinimizedAttributeBlockSyntax WithName(HtmlTextLiteralSyntax name) + public MarkupMinimizedAttributeBlockSyntax WithName(MarkupTextLiteralSyntax name) { return Update(NamePrefix, name); } - public HtmlMinimizedAttributeBlockSyntax AddNamePrefixTextTokens(params SyntaxToken[] items) + public MarkupMinimizedAttributeBlockSyntax AddNamePrefixLiteralTokens(params SyntaxToken[] items) { - var _namePrefix = this.NamePrefix ?? SyntaxFactory.HtmlTextLiteral(); - return this.WithNamePrefix(_namePrefix.WithTextTokens(_namePrefix.TextTokens.AddRange(items))); + var _namePrefix = this.NamePrefix ?? SyntaxFactory.MarkupTextLiteral(); + return this.WithNamePrefix(_namePrefix.WithLiteralTokens(_namePrefix.LiteralTokens.AddRange(items))); } - public HtmlMinimizedAttributeBlockSyntax AddNameTextTokens(params SyntaxToken[] items) + public MarkupMinimizedAttributeBlockSyntax AddNameLiteralTokens(params SyntaxToken[] items) { - return this.WithName(this.Name.WithTextTokens(this.Name.TextTokens.AddRange(items))); + return this.WithName(this.Name.WithLiteralTokens(this.Name.LiteralTokens.AddRange(items))); } } - internal sealed partial class HtmlAttributeBlockSyntax : HtmlSyntaxNode + internal sealed partial class MarkupAttributeBlockSyntax : MarkupSyntaxNode { - private HtmlTextLiteralSyntax _namePrefix; - private HtmlTextLiteralSyntax _name; - private HtmlTextLiteralSyntax _nameSuffix; + private MarkupTextLiteralSyntax _namePrefix; + private MarkupTextLiteralSyntax _name; + private MarkupTextLiteralSyntax _nameSuffix; private SyntaxToken _equalsToken; - private HtmlTextLiteralSyntax _valuePrefix; - private HtmlBlockSyntax _value; - private HtmlTextLiteralSyntax _valueSuffix; + private MarkupTextLiteralSyntax _valuePrefix; + private RazorBlockSyntax _value; + private MarkupTextLiteralSyntax _valueSuffix; - internal HtmlAttributeBlockSyntax(GreenNode green, SyntaxNode parent, int position) + internal MarkupAttributeBlockSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } - public HtmlTextLiteralSyntax NamePrefix + public MarkupTextLiteralSyntax NamePrefix { get { @@ -819,7 +975,7 @@ public HtmlTextLiteralSyntax NamePrefix } } - public HtmlTextLiteralSyntax Name + public MarkupTextLiteralSyntax Name { get { @@ -827,7 +983,7 @@ public HtmlTextLiteralSyntax Name } } - public HtmlTextLiteralSyntax NameSuffix + public MarkupTextLiteralSyntax NameSuffix { get { @@ -843,7 +999,7 @@ public SyntaxToken EqualsToken } } - public HtmlTextLiteralSyntax ValuePrefix + public MarkupTextLiteralSyntax ValuePrefix { get { @@ -851,7 +1007,7 @@ public HtmlTextLiteralSyntax ValuePrefix } } - public HtmlBlockSyntax Value + public RazorBlockSyntax Value { get { @@ -859,7 +1015,7 @@ public HtmlBlockSyntax Value } } - public HtmlTextLiteralSyntax ValueSuffix + public MarkupTextLiteralSyntax ValueSuffix { get { @@ -898,19 +1054,19 @@ internal override SyntaxNode GetCachedSlot(int index) public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlAttributeBlock(this); + return visitor.VisitMarkupAttributeBlock(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlAttributeBlock(this); + visitor.VisitMarkupAttributeBlock(this); } - public HtmlAttributeBlockSyntax Update(HtmlTextLiteralSyntax namePrefix, HtmlTextLiteralSyntax name, HtmlTextLiteralSyntax nameSuffix, SyntaxToken equalsToken, HtmlTextLiteralSyntax valuePrefix, HtmlBlockSyntax value, HtmlTextLiteralSyntax valueSuffix) + 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.HtmlAttributeBlock(namePrefix, name, nameSuffix, equalsToken, valuePrefix, value, valueSuffix); + var newNode = SyntaxFactory.MarkupAttributeBlock(namePrefix, name, nameSuffix, equalsToken, valuePrefix, value, valueSuffix); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -920,87 +1076,82 @@ public HtmlAttributeBlockSyntax Update(HtmlTextLiteralSyntax namePrefix, HtmlTex return this; } - public HtmlAttributeBlockSyntax WithNamePrefix(HtmlTextLiteralSyntax namePrefix) + public MarkupAttributeBlockSyntax WithNamePrefix(MarkupTextLiteralSyntax namePrefix) { return Update(namePrefix, Name, NameSuffix, EqualsToken, ValuePrefix, Value, ValueSuffix); } - public HtmlAttributeBlockSyntax WithName(HtmlTextLiteralSyntax name) + public MarkupAttributeBlockSyntax WithName(MarkupTextLiteralSyntax name) { return Update(NamePrefix, name, NameSuffix, EqualsToken, ValuePrefix, Value, ValueSuffix); } - public HtmlAttributeBlockSyntax WithNameSuffix(HtmlTextLiteralSyntax nameSuffix) + public MarkupAttributeBlockSyntax WithNameSuffix(MarkupTextLiteralSyntax nameSuffix) { return Update(NamePrefix, Name, nameSuffix, EqualsToken, ValuePrefix, Value, ValueSuffix); } - public HtmlAttributeBlockSyntax WithEqualsToken(SyntaxToken equalsToken) + public MarkupAttributeBlockSyntax WithEqualsToken(SyntaxToken equalsToken) { return Update(NamePrefix, Name, NameSuffix, equalsToken, ValuePrefix, Value, ValueSuffix); } - public HtmlAttributeBlockSyntax WithValuePrefix(HtmlTextLiteralSyntax valuePrefix) + public MarkupAttributeBlockSyntax WithValuePrefix(MarkupTextLiteralSyntax valuePrefix) { return Update(NamePrefix, Name, NameSuffix, EqualsToken, valuePrefix, Value, ValueSuffix); } - public HtmlAttributeBlockSyntax WithValue(HtmlBlockSyntax value) + public MarkupAttributeBlockSyntax WithValue(RazorBlockSyntax value) { return Update(NamePrefix, Name, NameSuffix, EqualsToken, ValuePrefix, value, ValueSuffix); } - public HtmlAttributeBlockSyntax WithValueSuffix(HtmlTextLiteralSyntax valueSuffix) + public MarkupAttributeBlockSyntax WithValueSuffix(MarkupTextLiteralSyntax valueSuffix) { return Update(NamePrefix, Name, NameSuffix, EqualsToken, ValuePrefix, Value, valueSuffix); } - public HtmlAttributeBlockSyntax AddNamePrefixTextTokens(params SyntaxToken[] items) + public MarkupAttributeBlockSyntax AddNamePrefixLiteralTokens(params SyntaxToken[] items) { - var _namePrefix = this.NamePrefix ?? SyntaxFactory.HtmlTextLiteral(); - return this.WithNamePrefix(_namePrefix.WithTextTokens(_namePrefix.TextTokens.AddRange(items))); + var _namePrefix = this.NamePrefix ?? SyntaxFactory.MarkupTextLiteral(); + return this.WithNamePrefix(_namePrefix.WithLiteralTokens(_namePrefix.LiteralTokens.AddRange(items))); } - public HtmlAttributeBlockSyntax AddNameTextTokens(params SyntaxToken[] items) + public MarkupAttributeBlockSyntax AddNameLiteralTokens(params SyntaxToken[] items) { - return this.WithName(this.Name.WithTextTokens(this.Name.TextTokens.AddRange(items))); + return this.WithName(this.Name.WithLiteralTokens(this.Name.LiteralTokens.AddRange(items))); } - public HtmlAttributeBlockSyntax AddNameSuffixTextTokens(params SyntaxToken[] items) + public MarkupAttributeBlockSyntax AddNameSuffixLiteralTokens(params SyntaxToken[] items) { - var _nameSuffix = this.NameSuffix ?? SyntaxFactory.HtmlTextLiteral(); - return this.WithNameSuffix(_nameSuffix.WithTextTokens(_nameSuffix.TextTokens.AddRange(items))); + var _nameSuffix = this.NameSuffix ?? SyntaxFactory.MarkupTextLiteral(); + return this.WithNameSuffix(_nameSuffix.WithLiteralTokens(_nameSuffix.LiteralTokens.AddRange(items))); } - public HtmlAttributeBlockSyntax AddValuePrefixTextTokens(params SyntaxToken[] items) + public MarkupAttributeBlockSyntax AddValuePrefixLiteralTokens(params SyntaxToken[] items) { - var _valuePrefix = this.ValuePrefix ?? SyntaxFactory.HtmlTextLiteral(); - return this.WithValuePrefix(_valuePrefix.WithTextTokens(_valuePrefix.TextTokens.AddRange(items))); + var _valuePrefix = this.ValuePrefix ?? SyntaxFactory.MarkupTextLiteral(); + return this.WithValuePrefix(_valuePrefix.WithLiteralTokens(_valuePrefix.LiteralTokens.AddRange(items))); } - public HtmlAttributeBlockSyntax AddValueChildren(params RazorSyntaxNode[] items) + public MarkupAttributeBlockSyntax AddValueSuffixLiteralTokens(params SyntaxToken[] items) { - return this.WithValue(this.Value.WithChildren(this.Value.Children.AddRange(items))); - } - - public HtmlAttributeBlockSyntax AddValueSuffixTextTokens(params SyntaxToken[] items) - { - var _valueSuffix = this.ValueSuffix ?? SyntaxFactory.HtmlTextLiteral(); - return this.WithValueSuffix(_valueSuffix.WithTextTokens(_valueSuffix.TextTokens.AddRange(items))); + var _valueSuffix = this.ValueSuffix ?? SyntaxFactory.MarkupTextLiteral(); + return this.WithValueSuffix(_valueSuffix.WithLiteralTokens(_valueSuffix.LiteralTokens.AddRange(items))); } } - internal sealed partial class HtmlLiteralAttributeValueSyntax : HtmlSyntaxNode + internal sealed partial class MarkupLiteralAttributeValueSyntax : MarkupSyntaxNode { - private HtmlTextLiteralSyntax _prefix; - private HtmlTextLiteralSyntax _value; + private MarkupTextLiteralSyntax _prefix; + private MarkupTextLiteralSyntax _value; - internal HtmlLiteralAttributeValueSyntax(GreenNode green, SyntaxNode parent, int position) + internal MarkupLiteralAttributeValueSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } - public HtmlTextLiteralSyntax Prefix + public MarkupTextLiteralSyntax Prefix { get { @@ -1008,7 +1159,7 @@ public HtmlTextLiteralSyntax Prefix } } - public HtmlTextLiteralSyntax Value + public MarkupTextLiteralSyntax Value { get { @@ -1037,19 +1188,19 @@ internal override SyntaxNode GetCachedSlot(int index) public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlLiteralAttributeValue(this); + return visitor.VisitMarkupLiteralAttributeValue(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlLiteralAttributeValue(this); + visitor.VisitMarkupLiteralAttributeValue(this); } - public HtmlLiteralAttributeValueSyntax Update(HtmlTextLiteralSyntax prefix, HtmlTextLiteralSyntax value) + public MarkupLiteralAttributeValueSyntax Update(MarkupTextLiteralSyntax prefix, MarkupTextLiteralSyntax value) { if (prefix != Prefix || value != Value) { - var newNode = SyntaxFactory.HtmlLiteralAttributeValue(prefix, value); + var newNode = SyntaxFactory.MarkupLiteralAttributeValue(prefix, value); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -1059,39 +1210,39 @@ public HtmlLiteralAttributeValueSyntax Update(HtmlTextLiteralSyntax prefix, Html return this; } - public HtmlLiteralAttributeValueSyntax WithPrefix(HtmlTextLiteralSyntax prefix) + public MarkupLiteralAttributeValueSyntax WithPrefix(MarkupTextLiteralSyntax prefix) { return Update(prefix, Value); } - public HtmlLiteralAttributeValueSyntax WithValue(HtmlTextLiteralSyntax value) + public MarkupLiteralAttributeValueSyntax WithValue(MarkupTextLiteralSyntax value) { return Update(Prefix, value); } - public HtmlLiteralAttributeValueSyntax AddPrefixTextTokens(params SyntaxToken[] items) + public MarkupLiteralAttributeValueSyntax AddPrefixLiteralTokens(params SyntaxToken[] items) { - var _prefix = this.Prefix ?? SyntaxFactory.HtmlTextLiteral(); - return this.WithPrefix(_prefix.WithTextTokens(_prefix.TextTokens.AddRange(items))); + var _prefix = this.Prefix ?? SyntaxFactory.MarkupTextLiteral(); + return this.WithPrefix(_prefix.WithLiteralTokens(_prefix.LiteralTokens.AddRange(items))); } - public HtmlLiteralAttributeValueSyntax AddValueTextTokens(params SyntaxToken[] items) + public MarkupLiteralAttributeValueSyntax AddValueLiteralTokens(params SyntaxToken[] items) { - return this.WithValue(this.Value.WithTextTokens(this.Value.TextTokens.AddRange(items))); + return this.WithValue(this.Value.WithLiteralTokens(this.Value.LiteralTokens.AddRange(items))); } } - internal sealed partial class HtmlDynamicAttributeValueSyntax : HtmlSyntaxNode + internal sealed partial class MarkupDynamicAttributeValueSyntax : MarkupSyntaxNode { - private HtmlTextLiteralSyntax _prefix; - private HtmlBlockSyntax _value; + private MarkupTextLiteralSyntax _prefix; + private RazorBlockSyntax _value; - internal HtmlDynamicAttributeValueSyntax(GreenNode green, SyntaxNode parent, int position) + internal MarkupDynamicAttributeValueSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } - public HtmlTextLiteralSyntax Prefix + public MarkupTextLiteralSyntax Prefix { get { @@ -1099,7 +1250,7 @@ public HtmlTextLiteralSyntax Prefix } } - public HtmlBlockSyntax Value + public RazorBlockSyntax Value { get { @@ -1128,19 +1279,19 @@ internal override SyntaxNode GetCachedSlot(int index) public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitHtmlDynamicAttributeValue(this); + return visitor.VisitMarkupDynamicAttributeValue(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitHtmlDynamicAttributeValue(this); + visitor.VisitMarkupDynamicAttributeValue(this); } - public HtmlDynamicAttributeValueSyntax Update(HtmlTextLiteralSyntax prefix, HtmlBlockSyntax value) + public MarkupDynamicAttributeValueSyntax Update(MarkupTextLiteralSyntax prefix, RazorBlockSyntax value) { if (prefix != Prefix || value != Value) { - var newNode = SyntaxFactory.HtmlDynamicAttributeValue(prefix, value); + var newNode = SyntaxFactory.MarkupDynamicAttributeValue(prefix, value); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -1150,25 +1301,20 @@ public HtmlDynamicAttributeValueSyntax Update(HtmlTextLiteralSyntax prefix, Html return this; } - public HtmlDynamicAttributeValueSyntax WithPrefix(HtmlTextLiteralSyntax prefix) + public MarkupDynamicAttributeValueSyntax WithPrefix(MarkupTextLiteralSyntax prefix) { return Update(prefix, Value); } - public HtmlDynamicAttributeValueSyntax WithValue(HtmlBlockSyntax value) + public MarkupDynamicAttributeValueSyntax WithValue(RazorBlockSyntax value) { return Update(Prefix, value); } - public HtmlDynamicAttributeValueSyntax AddPrefixTextTokens(params SyntaxToken[] items) + public MarkupDynamicAttributeValueSyntax AddPrefixLiteralTokens(params SyntaxToken[] items) { - var _prefix = this.Prefix ?? SyntaxFactory.HtmlTextLiteral(); - return this.WithPrefix(_prefix.WithTextTokens(_prefix.TextTokens.AddRange(items))); - } - - public HtmlDynamicAttributeValueSyntax AddValueChildren(params RazorSyntaxNode[] items) - { - return this.WithValue(this.Value.WithChildren(this.Value.Children.AddRange(items))); + var _prefix = this.Prefix ?? SyntaxFactory.MarkupTextLiteral(); + return this.WithPrefix(_prefix.WithLiteralTokens(_prefix.LiteralTokens.AddRange(items))); } } @@ -1180,84 +1326,20 @@ internal CSharpSyntaxNode(GreenNode green, SyntaxNode parent, int position) } } - internal sealed partial class CSharpTransitionSyntax : CSharpSyntaxNode + internal sealed partial class CSharpCodeBlockSyntax : RazorBlockSyntax { - private SyntaxToken _transition; - - internal CSharpTransitionSyntax(GreenNode green, SyntaxNode parent, int position) - : base(green, parent, position) - { - } - - public SyntaxToken Transition - { - get - { - return GetRedAtZero(ref _transition); - } - } - - internal override SyntaxNode GetNodeSlot(int index) - { - switch (index) - { - case 0: return GetRedAtZero(ref _transition); - default: return null; - } - } - internal override SyntaxNode GetCachedSlot(int index) - { - switch (index) - { - case 0: return _transition; - default: return null; - } - } - - public override TResult Accept(SyntaxVisitor visitor) - { - return visitor.VisitCSharpTransition(this); - } - - public override void Accept(SyntaxVisitor visitor) - { - visitor.VisitCSharpTransition(this); - } - - public CSharpTransitionSyntax Update(SyntaxToken transition) - { - if (transition != Transition) - { - var newNode = SyntaxFactory.CSharpTransition(transition); - var annotations = GetAnnotations(); - if (annotations != null && annotations.Length > 0) - return newNode.WithAnnotations(annotations); - return newNode; - } - - return this; - } - - public CSharpTransitionSyntax WithTransition(SyntaxToken transition) - { - return Update(transition); - } - } - - internal sealed partial class CSharpStatementLiteralSyntax : CSharpSyntaxNode - { - private SyntaxNode _cSharpTokens; + private SyntaxNode _children; - internal CSharpStatementLiteralSyntax(GreenNode green, SyntaxNode parent, int position) + internal CSharpCodeBlockSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } - public SyntaxList CSharpTokens + public override SyntaxList Children { get { - return new SyntaxList(GetRed(ref _cSharpTokens, 0)); + return new SyntaxList(GetRed(ref _children, 0)); } } @@ -1265,7 +1347,7 @@ internal override SyntaxNode GetNodeSlot(int index) { switch (index) { - case 0: return GetRedAtZero(ref _cSharpTokens); + case 0: return GetRedAtZero(ref _children); default: return null; } } @@ -1273,26 +1355,26 @@ internal override SyntaxNode GetCachedSlot(int index) { switch (index) { - case 0: return _cSharpTokens; + case 0: return _children; default: return null; } } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitCSharpStatementLiteral(this); + return visitor.VisitCSharpCodeBlock(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitCSharpStatementLiteral(this); + visitor.VisitCSharpCodeBlock(this); } - public CSharpStatementLiteralSyntax Update(SyntaxList cSharpTokens) + public CSharpCodeBlockSyntax Update(SyntaxList children) { - if (cSharpTokens != CSharpTokens) + if (children != Children) { - var newNode = SyntaxFactory.CSharpStatementLiteral(cSharpTokens); + var newNode = SyntaxFactory.CSharpCodeBlock(children); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -1302,31 +1384,33 @@ public CSharpStatementLiteralSyntax Update(SyntaxList cSharpTokens) return this; } - public CSharpStatementLiteralSyntax WithCSharpTokens(SyntaxList cSharpTokens) + internal override RazorBlockSyntax WithChildrenCore(SyntaxList children) => WithChildren(children); + public new CSharpCodeBlockSyntax WithChildren(SyntaxList children) { - return Update(cSharpTokens); + return Update(children); } + internal override RazorBlockSyntax AddChildrenCore(params RazorSyntaxNode[] items) => AddChildren(items); - public CSharpStatementLiteralSyntax AddCSharpTokens(params SyntaxToken[] items) + public new CSharpCodeBlockSyntax AddChildren(params RazorSyntaxNode[] items) { - return WithCSharpTokens(this.CSharpTokens.AddRange(items)); + return WithChildren(this.Children.AddRange(items)); } } - internal sealed partial class CSharpExpressionLiteralSyntax : CSharpSyntaxNode + internal sealed partial class CSharpTransitionSyntax : CSharpSyntaxNode { - private SyntaxNode _cSharpTokens; + private SyntaxToken _transition; - internal CSharpExpressionLiteralSyntax(GreenNode green, SyntaxNode parent, int position) + internal CSharpTransitionSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } - public SyntaxList CSharpTokens + public SyntaxToken Transition { get { - return new SyntaxList(GetRed(ref _cSharpTokens, 0)); + return GetRedAtZero(ref _transition); } } @@ -1334,7 +1418,7 @@ internal override SyntaxNode GetNodeSlot(int index) { switch (index) { - case 0: return GetRedAtZero(ref _cSharpTokens); + case 0: return GetRedAtZero(ref _transition); default: return null; } } @@ -1342,26 +1426,26 @@ internal override SyntaxNode GetCachedSlot(int index) { switch (index) { - case 0: return _cSharpTokens; + case 0: return _transition; default: return null; } } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitCSharpExpressionLiteral(this); + return visitor.VisitCSharpTransition(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitCSharpExpressionLiteral(this); + visitor.VisitCSharpTransition(this); } - public CSharpExpressionLiteralSyntax Update(SyntaxList cSharpTokens) + public CSharpTransitionSyntax Update(SyntaxToken transition) { - if (cSharpTokens != CSharpTokens) + if (transition != Transition) { - var newNode = SyntaxFactory.CSharpExpressionLiteral(cSharpTokens); + var newNode = SyntaxFactory.CSharpTransition(transition); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -1371,31 +1455,26 @@ public CSharpExpressionLiteralSyntax Update(SyntaxList cSharpTokens return this; } - public CSharpExpressionLiteralSyntax WithCSharpTokens(SyntaxList cSharpTokens) - { - return Update(cSharpTokens); - } - - public CSharpExpressionLiteralSyntax AddCSharpTokens(params SyntaxToken[] items) + public CSharpTransitionSyntax WithTransition(SyntaxToken transition) { - return WithCSharpTokens(this.CSharpTokens.AddRange(items)); + return Update(transition); } } - internal sealed partial class CSharpHiddenLiteralSyntax : CSharpSyntaxNode + internal sealed partial class CSharpStatementLiteralSyntax : CSharpSyntaxNode { - private SyntaxNode _cSharpTokens; + private SyntaxNode _literalTokens; - internal CSharpHiddenLiteralSyntax(GreenNode green, SyntaxNode parent, int position) + internal CSharpStatementLiteralSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } - public SyntaxList CSharpTokens + public SyntaxList LiteralTokens { get { - return new SyntaxList(GetRed(ref _cSharpTokens, 0)); + return new SyntaxList(GetRed(ref _literalTokens, 0)); } } @@ -1403,7 +1482,7 @@ internal override SyntaxNode GetNodeSlot(int index) { switch (index) { - case 0: return GetRedAtZero(ref _cSharpTokens); + case 0: return GetRedAtZero(ref _literalTokens); default: return null; } } @@ -1411,26 +1490,26 @@ internal override SyntaxNode GetCachedSlot(int index) { switch (index) { - case 0: return _cSharpTokens; + case 0: return _literalTokens; default: return null; } } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitCSharpHiddenLiteral(this); + return visitor.VisitCSharpStatementLiteral(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitCSharpHiddenLiteral(this); + visitor.VisitCSharpStatementLiteral(this); } - public CSharpHiddenLiteralSyntax Update(SyntaxList cSharpTokens) + public CSharpStatementLiteralSyntax Update(SyntaxList literalTokens) { - if (cSharpTokens != CSharpTokens) + if (literalTokens != LiteralTokens) { - var newNode = SyntaxFactory.CSharpHiddenLiteral(cSharpTokens); + var newNode = SyntaxFactory.CSharpStatementLiteral(literalTokens); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -1440,31 +1519,31 @@ public CSharpHiddenLiteralSyntax Update(SyntaxList cSharpTokens) return this; } - public CSharpHiddenLiteralSyntax WithCSharpTokens(SyntaxList cSharpTokens) + public CSharpStatementLiteralSyntax WithLiteralTokens(SyntaxList literalTokens) { - return Update(cSharpTokens); + return Update(literalTokens); } - public CSharpHiddenLiteralSyntax AddCSharpTokens(params SyntaxToken[] items) + public CSharpStatementLiteralSyntax AddLiteralTokens(params SyntaxToken[] items) { - return WithCSharpTokens(this.CSharpTokens.AddRange(items)); + return WithLiteralTokens(this.LiteralTokens.AddRange(items)); } } - internal sealed partial class CSharpNoneLiteralSyntax : CSharpSyntaxNode + internal sealed partial class CSharpExpressionLiteralSyntax : CSharpSyntaxNode { - private SyntaxNode _cSharpTokens; + private SyntaxNode _literalTokens; - internal CSharpNoneLiteralSyntax(GreenNode green, SyntaxNode parent, int position) + internal CSharpExpressionLiteralSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } - public SyntaxList CSharpTokens + public SyntaxList LiteralTokens { get { - return new SyntaxList(GetRed(ref _cSharpTokens, 0)); + return new SyntaxList(GetRed(ref _literalTokens, 0)); } } @@ -1472,7 +1551,7 @@ internal override SyntaxNode GetNodeSlot(int index) { switch (index) { - case 0: return GetRedAtZero(ref _cSharpTokens); + case 0: return GetRedAtZero(ref _literalTokens); default: return null; } } @@ -1480,26 +1559,26 @@ internal override SyntaxNode GetCachedSlot(int index) { switch (index) { - case 0: return _cSharpTokens; + case 0: return _literalTokens; default: return null; } } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitCSharpNoneLiteral(this); + return visitor.VisitCSharpExpressionLiteral(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitCSharpNoneLiteral(this); + visitor.VisitCSharpExpressionLiteral(this); } - public CSharpNoneLiteralSyntax Update(SyntaxList cSharpTokens) + public CSharpExpressionLiteralSyntax Update(SyntaxList literalTokens) { - if (cSharpTokens != CSharpTokens) + if (literalTokens != LiteralTokens) { - var newNode = SyntaxFactory.CSharpNoneLiteral(cSharpTokens); + var newNode = SyntaxFactory.CSharpExpressionLiteral(literalTokens); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -1509,31 +1588,31 @@ public CSharpNoneLiteralSyntax Update(SyntaxList cSharpTokens) return this; } - public CSharpNoneLiteralSyntax WithCSharpTokens(SyntaxList cSharpTokens) + public CSharpExpressionLiteralSyntax WithLiteralTokens(SyntaxList literalTokens) { - return Update(cSharpTokens); + return Update(literalTokens); } - public CSharpNoneLiteralSyntax AddCSharpTokens(params SyntaxToken[] items) + public CSharpExpressionLiteralSyntax AddLiteralTokens(params SyntaxToken[] items) { - return WithCSharpTokens(this.CSharpTokens.AddRange(items)); + return WithLiteralTokens(this.LiteralTokens.AddRange(items)); } } - internal sealed partial class CSharpCodeBlockSyntax : CSharpSyntaxNode + internal sealed partial class CSharpEphemeralTextLiteralSyntax : CSharpSyntaxNode { - private SyntaxNode _children; + private SyntaxNode _literalTokens; - internal CSharpCodeBlockSyntax(GreenNode green, SyntaxNode parent, int position) + internal CSharpEphemeralTextLiteralSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } - public SyntaxList Children + public SyntaxList LiteralTokens { get { - return new SyntaxList(GetRed(ref _children, 0)); + return new SyntaxList(GetRed(ref _literalTokens, 0)); } } @@ -1541,7 +1620,7 @@ internal override SyntaxNode GetNodeSlot(int index) { switch (index) { - case 0: return GetRedAtZero(ref _children); + case 0: return GetRedAtZero(ref _literalTokens); default: return null; } } @@ -1549,26 +1628,26 @@ internal override SyntaxNode GetCachedSlot(int index) { switch (index) { - case 0: return _children; + case 0: return _literalTokens; default: return null; } } public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitCSharpCodeBlock(this); + return visitor.VisitCSharpEphemeralTextLiteral(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitCSharpCodeBlock(this); + visitor.VisitCSharpEphemeralTextLiteral(this); } - public CSharpCodeBlockSyntax Update(SyntaxList children) + public CSharpEphemeralTextLiteralSyntax Update(SyntaxList literalTokens) { - if (children != Children) + if (literalTokens != LiteralTokens) { - var newNode = SyntaxFactory.CSharpCodeBlock(children); + var newNode = SyntaxFactory.CSharpEphemeralTextLiteral(literalTokens); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -1578,18 +1657,18 @@ public CSharpCodeBlockSyntax Update(SyntaxList children) return this; } - public CSharpCodeBlockSyntax WithChildren(SyntaxList children) + public CSharpEphemeralTextLiteralSyntax WithLiteralTokens(SyntaxList literalTokens) { - return Update(children); + return Update(literalTokens); } - public CSharpCodeBlockSyntax AddChildren(params RazorSyntaxNode[] items) + public CSharpEphemeralTextLiteralSyntax AddLiteralTokens(params SyntaxToken[] items) { - return WithChildren(this.Children.AddRange(items)); + return WithLiteralTokens(this.LiteralTokens.AddRange(items)); } } - internal sealed partial class CSharpTemplateBlockSyntax : CSharpSyntaxNode + internal sealed partial class CSharpTemplateBlockSyntax : RazorBlockSyntax { private SyntaxNode _children; @@ -1598,7 +1677,7 @@ internal CSharpTemplateBlockSyntax(GreenNode green, SyntaxNode parent, int posit { } - public SyntaxList Children + public override SyntaxList Children { get { @@ -1647,34 +1726,36 @@ public CSharpTemplateBlockSyntax Update(SyntaxList children) return this; } - public CSharpTemplateBlockSyntax WithChildren(SyntaxList children) + internal override RazorBlockSyntax WithChildrenCore(SyntaxList children) => WithChildren(children); + public new CSharpTemplateBlockSyntax WithChildren(SyntaxList children) { return Update(children); } + internal override RazorBlockSyntax AddChildrenCore(params RazorSyntaxNode[] items) => AddChildren(items); - public CSharpTemplateBlockSyntax AddChildren(params RazorSyntaxNode[] items) + public new CSharpTemplateBlockSyntax AddChildren(params RazorSyntaxNode[] items) { return WithChildren(this.Children.AddRange(items)); } } - internal abstract partial class CSharpBlockSyntax : CSharpSyntaxNode + internal abstract partial class CSharpRazorBlockSyntax : CSharpSyntaxNode { - internal CSharpBlockSyntax(GreenNode green, SyntaxNode parent, int position) + internal CSharpRazorBlockSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } public abstract CSharpTransitionSyntax Transition { get; } - public CSharpBlockSyntax WithTransition(CSharpTransitionSyntax transition) => WithTransitionCore(transition); - internal abstract CSharpBlockSyntax WithTransitionCore(CSharpTransitionSyntax transition); + public CSharpRazorBlockSyntax WithTransition(CSharpTransitionSyntax transition) => WithTransitionCore(transition); + internal abstract CSharpRazorBlockSyntax WithTransitionCore(CSharpTransitionSyntax transition); public abstract CSharpSyntaxNode Body { get; } - public CSharpBlockSyntax WithBody(CSharpSyntaxNode body) => WithBodyCore(body); - internal abstract CSharpBlockSyntax WithBodyCore(CSharpSyntaxNode body); + public CSharpRazorBlockSyntax WithBody(CSharpSyntaxNode body) => WithBodyCore(body); + internal abstract CSharpRazorBlockSyntax WithBodyCore(CSharpSyntaxNode body); } - internal sealed partial class CSharpStatement : CSharpBlockSyntax + internal sealed partial class CSharpStatement : CSharpRazorBlockSyntax { private CSharpTransitionSyntax _transition; private CSharpSyntaxNode _body; @@ -1743,13 +1824,13 @@ public CSharpStatement Update(CSharpTransitionSyntax transition, CSharpSyntaxNod return this; } - internal override CSharpBlockSyntax WithTransitionCore(CSharpTransitionSyntax transition) => WithTransition(transition); + internal override CSharpRazorBlockSyntax WithTransitionCore(CSharpTransitionSyntax transition) => WithTransition(transition); public new CSharpStatement WithTransition(CSharpTransitionSyntax transition) { return Update(transition, Body); } - internal override CSharpBlockSyntax WithBodyCore(CSharpSyntaxNode body) => WithBody(body); + internal override CSharpRazorBlockSyntax WithBodyCore(CSharpSyntaxNode body) => WithBody(body); public new CSharpStatement WithBody(CSharpSyntaxNode body) { return Update(Transition, body); @@ -1867,7 +1948,7 @@ public CSharpStatementBodySyntax AddCloseBraceMetaCode(params SyntaxToken[] item } } - internal sealed partial class CSharpExpression : CSharpBlockSyntax + internal sealed partial class CSharpExpression : CSharpRazorBlockSyntax { private CSharpTransitionSyntax _transition; private CSharpSyntaxNode _body; @@ -1936,13 +2017,13 @@ public CSharpExpression Update(CSharpTransitionSyntax transition, CSharpSyntaxNo return this; } - internal override CSharpBlockSyntax WithTransitionCore(CSharpTransitionSyntax transition) => WithTransition(transition); + internal override CSharpRazorBlockSyntax WithTransitionCore(CSharpTransitionSyntax transition) => WithTransition(transition); public new CSharpExpression WithTransition(CSharpTransitionSyntax transition) { return Update(transition, Body); } - internal override CSharpBlockSyntax WithBodyCore(CSharpSyntaxNode body) => WithBody(body); + internal override CSharpRazorBlockSyntax WithBodyCore(CSharpSyntaxNode body) => WithBody(body); public new CSharpExpression WithBody(CSharpSyntaxNode body) { return Update(Transition, body); @@ -2060,7 +2141,7 @@ public CSharpExpressionBodySyntax AddCloseParenMetaCode(params SyntaxToken[] ite } } - internal sealed partial class CSharpImplicitExpression : CSharpBlockSyntax + internal sealed partial class CSharpImplicitExpression : CSharpRazorBlockSyntax { private CSharpTransitionSyntax _transition; private CSharpSyntaxNode _body; @@ -2129,13 +2210,13 @@ public CSharpImplicitExpression Update(CSharpTransitionSyntax transition, CSharp return this; } - internal override CSharpBlockSyntax WithTransitionCore(CSharpTransitionSyntax transition) => WithTransition(transition); + internal override CSharpRazorBlockSyntax WithTransitionCore(CSharpTransitionSyntax transition) => WithTransition(transition); public new CSharpImplicitExpression WithTransition(CSharpTransitionSyntax transition) { return Update(transition, Body); } - internal override CSharpBlockSyntax WithBodyCore(CSharpSyntaxNode body) => WithBody(body); + internal override CSharpRazorBlockSyntax WithBodyCore(CSharpSyntaxNode body) => WithBody(body); public new CSharpImplicitExpression WithBody(CSharpSyntaxNode body) { return Update(Transition, body); @@ -2211,12 +2292,12 @@ public CSharpImplicitExpressionBodySyntax AddCSharpCodeChildren(params RazorSynt } } - internal sealed partial class CSharpDirectiveSyntax : CSharpBlockSyntax + internal sealed partial class RazorDirectiveSyntax : CSharpRazorBlockSyntax { private CSharpTransitionSyntax _transition; private CSharpSyntaxNode _body; - internal CSharpDirectiveSyntax(GreenNode green, SyntaxNode parent, int position) + internal RazorDirectiveSyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } @@ -2258,19 +2339,19 @@ internal override SyntaxNode GetCachedSlot(int index) public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitCSharpDirective(this); + return visitor.VisitRazorDirective(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitCSharpDirective(this); + visitor.VisitRazorDirective(this); } - public CSharpDirectiveSyntax Update(CSharpTransitionSyntax transition, CSharpSyntaxNode body) + public RazorDirectiveSyntax Update(CSharpTransitionSyntax transition, CSharpSyntaxNode body) { if (transition != Transition || body != Body) { - var newNode = SyntaxFactory.CSharpDirective(transition, body); + var newNode = SyntaxFactory.RazorDirective(transition, body); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -2280,25 +2361,25 @@ public CSharpDirectiveSyntax Update(CSharpTransitionSyntax transition, CSharpSyn return this; } - internal override CSharpBlockSyntax WithTransitionCore(CSharpTransitionSyntax transition) => WithTransition(transition); - public new CSharpDirectiveSyntax WithTransition(CSharpTransitionSyntax transition) + internal override CSharpRazorBlockSyntax WithTransitionCore(CSharpTransitionSyntax transition) => WithTransition(transition); + public new RazorDirectiveSyntax WithTransition(CSharpTransitionSyntax transition) { return Update(transition, Body); } - internal override CSharpBlockSyntax WithBodyCore(CSharpSyntaxNode body) => WithBody(body); - public new CSharpDirectiveSyntax WithBody(CSharpSyntaxNode body) + internal override CSharpRazorBlockSyntax WithBodyCore(CSharpSyntaxNode body) => WithBody(body); + public new RazorDirectiveSyntax WithBody(CSharpSyntaxNode body) { return Update(Transition, body); } } - internal sealed partial class CSharpDirectiveBodySyntax : CSharpSyntaxNode + internal sealed partial class RazorDirectiveBodySyntax : CSharpSyntaxNode { private RazorSyntaxNode _keyword; private CSharpCodeBlockSyntax _cSharpCode; - internal CSharpDirectiveBodySyntax(GreenNode green, SyntaxNode parent, int position) + internal RazorDirectiveBodySyntax(GreenNode green, SyntaxNode parent, int position) : base(green, parent, position) { } @@ -2340,19 +2421,19 @@ internal override SyntaxNode GetCachedSlot(int index) public override TResult Accept(SyntaxVisitor visitor) { - return visitor.VisitCSharpDirectiveBody(this); + return visitor.VisitRazorDirectiveBody(this); } public override void Accept(SyntaxVisitor visitor) { - visitor.VisitCSharpDirectiveBody(this); + visitor.VisitRazorDirectiveBody(this); } - public CSharpDirectiveBodySyntax Update(RazorSyntaxNode keyword, CSharpCodeBlockSyntax cSharpCode) + public RazorDirectiveBodySyntax Update(RazorSyntaxNode keyword, CSharpCodeBlockSyntax cSharpCode) { if (keyword != Keyword || cSharpCode != CSharpCode) { - var newNode = SyntaxFactory.CSharpDirectiveBody(keyword, cSharpCode); + var newNode = SyntaxFactory.RazorDirectiveBody(keyword, cSharpCode); var annotations = GetAnnotations(); if (annotations != null && annotations.Length > 0) return newNode.WithAnnotations(annotations); @@ -2362,17 +2443,17 @@ public CSharpDirectiveBodySyntax Update(RazorSyntaxNode keyword, CSharpCodeBlock return this; } - public CSharpDirectiveBodySyntax WithKeyword(RazorSyntaxNode keyword) + public RazorDirectiveBodySyntax WithKeyword(RazorSyntaxNode keyword) { return Update(keyword, CSharpCode); } - public CSharpDirectiveBodySyntax WithCSharpCode(CSharpCodeBlockSyntax cSharpCode) + public RazorDirectiveBodySyntax WithCSharpCode(CSharpCodeBlockSyntax cSharpCode) { return Update(Keyword, cSharpCode); } - public CSharpDirectiveBodySyntax AddCSharpCodeChildren(params RazorSyntaxNode[] items) + public RazorDirectiveBodySyntax AddCSharpCodeChildren(params RazorSyntaxNode[] items) { var _cSharpCode = this.CSharpCode ?? SyntaxFactory.CSharpCodeBlock(); return this.WithCSharpCode(_cSharpCode.WithChildren(_cSharpCode.Children.AddRange(items))); diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/Syntax.xml b/src/Microsoft.AspNetCore.Razor.Language/Syntax/Syntax.xml index ca01d8e48..4c33f3849 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/Syntax.xml +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/Syntax.xml @@ -5,6 +5,13 @@ + + + + + + + @@ -27,67 +34,75 @@ - - - - - - + + + - - - + + + - - - + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - - + + + + + + + + @@ -96,33 +111,25 @@ - + - - - - - + - - - + + + - - - - - + - + - + - + @@ -137,7 +144,7 @@ - + @@ -152,7 +159,7 @@ - + @@ -165,17 +172,17 @@ - - + + - + - - + + diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxKind.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxKind.cs index 9257bd1ee..cd856ccd8 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxKind.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxKind.cs @@ -6,18 +6,26 @@ namespace Microsoft.AspNetCore.Razor.Language internal enum SyntaxKind : byte { #region Nodes - // HTML - HtmlTextLiteral, - HtmlDocument, - HtmlBlock, - HtmlMarkupBlock, - HtmlTagBlock, - HtmlAttributeBlock, - HtmlCommentBlock, - HtmlMinimizedAttributeBlock, - HtmlLiteralAttributeValue, - HtmlDynamicAttributeValue, - HtmlTransition, + // Common + RazorDocument, + GenericBlock, + RazorComment, + RazorMetaCode, + RazorDirective, + RazorDirectiveBody, + UnclassifiedTextLiteral, + + // Markup + MarkupBlock, + MarkupTransition, + MarkupTagBlock, + MarkupTextLiteral, + MarkupEphemeralTextLiteral, + MarkupCommentBlock, + MarkupAttributeBlock, + MarkupMinimizedAttributeBlock, + MarkupLiteralAttributeValue, + MarkupDynamicAttributeValue, // CSharp CSharpStatement, @@ -26,24 +34,18 @@ internal enum SyntaxKind : byte CSharpExpressionBody, CSharpImplicitExpression, CSharpImplicitExpressionBody, - CSharpDirective, - CSharpDirectiveBody, CSharpCodeBlock, CSharpTemplateBlock, CSharpStatementLiteral, CSharpExpressionLiteral, - CSharpHiddenLiteral, - CSharpNoneLiteral, + CSharpEphemeralTextLiteral, CSharpTransition, - - // Common - RazorComment, - RazorMetaCode, #endregion #region Tokens // Common - Unknown, + None, + Marker, List, Whitespace, NewLine, diff --git a/src/Microsoft.VisualStudio.Editor.Razor/DefaultRazorCompletionFactsService.cs b/src/Microsoft.VisualStudio.Editor.Razor/DefaultRazorCompletionFactsService.cs index 2f9146eab..3a88daed8 100644 --- a/src/Microsoft.VisualStudio.Editor.Razor/DefaultRazorCompletionFactsService.cs +++ b/src/Microsoft.VisualStudio.Editor.Razor/DefaultRazorCompletionFactsService.cs @@ -88,7 +88,7 @@ internal static bool IsDirectiveCompletableToken(SyntaxToken token) { return token.Kind == SyntaxKind.Identifier || // Marker symbol - token.Kind == SyntaxKind.Unknown; + token.Kind == SyntaxKind.Marker; } } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpTokenizerTestBase.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpTokenizerTestBase.cs index 60652e402..83b2adc68 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpTokenizerTestBase.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpTokenizerTestBase.cs @@ -7,7 +7,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { public abstract class CSharpTokenizerTestBase : TokenizerTestBase { - private static SyntaxToken _ignoreRemaining = SyntaxFactory.Token(SyntaxKind.Unknown, string.Empty); + private static SyntaxToken _ignoreRemaining = SyntaxFactory.Token(SyntaxKind.Marker, string.Empty); internal override object IgnoreRemaining { diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlDocumentTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlDocumentTest.cs index f77ee48b6..061297cc0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlDocumentTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlDocumentTest.cs @@ -2,7 +2,6 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; -using System.Linq; using Microsoft.AspNetCore.Razor.Language.Extensions; using Xunit; @@ -12,6 +11,11 @@ public class HtmlDocumentTest : CsHtmlMarkupParserTestBase { private static readonly TestFile Nested1000 = TestFile.Create("TestFiles/nested-1000.html", typeof(HtmlDocumentTest)); + public HtmlDocumentTest() + { + UseNewSyntaxTree = true; + } + [Fact] public void NestedCodeBlockWithMarkupSetsDotAsMarkup() { diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlTokenizerTestBase.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlTokenizerTestBase.cs index 76762e5be..0b6250d6d 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlTokenizerTestBase.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlTokenizerTestBase.cs @@ -7,7 +7,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { public abstract class HtmlTokenizerTestBase : TokenizerTestBase { - private static SyntaxToken _ignoreRemaining = SyntaxFactory.Token(SyntaxKind.Unknown, string.Empty); + private static SyntaxToken _ignoreRemaining = SyntaxFactory.Token(SyntaxKind.Marker, string.Empty); internal override object IgnoreRemaining { diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/SourceChangeTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/SourceChangeTest.cs index d569974b6..1ea4aeb76 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/SourceChangeTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/SourceChangeTest.cs @@ -105,8 +105,8 @@ public void GetEditedContent_Span_ReturnsNewContent() { // Arrange var builder = new SpanBuilder(new SourceLocation(0, 0, 0)); - builder.Accept(SyntaxFactory.Token(SyntaxKind.Unknown, "Hello, ")); - builder.Accept(SyntaxFactory.Token(SyntaxKind.Unknown, "World")); + builder.Accept(SyntaxFactory.Token(SyntaxKind.Marker, "Hello, ")); + builder.Accept(SyntaxFactory.Token(SyntaxKind.Marker, "World")); var span = new Span(builder); @@ -124,8 +124,8 @@ public void GetOffSet_SpanIsOwner_ReturnsOffset() { // Arrange var builder = new SpanBuilder(new SourceLocation(13, 0, 0)); - builder.Accept(SyntaxFactory.Token(SyntaxKind.Unknown, "Hello, ")); - builder.Accept(SyntaxFactory.Token(SyntaxKind.Unknown, "World")); + builder.Accept(SyntaxFactory.Token(SyntaxKind.Marker, "Hello, ")); + builder.Accept(SyntaxFactory.Token(SyntaxKind.Marker, "World")); var span = new Span(builder); @@ -143,8 +143,8 @@ public void GetOffSet_SpanIsNotOwnerOfChange_ThrowsException() { // Arrange var builder = new SpanBuilder(new SourceLocation(13, 0, 0)); - builder.Accept(SyntaxFactory.Token(SyntaxKind.Unknown, "Hello, ")); - builder.Accept(SyntaxFactory.Token(SyntaxKind.Unknown, "World")); + builder.Accept(SyntaxFactory.Token(SyntaxKind.Marker, "Hello, ")); + builder.Accept(SyntaxFactory.Token(SyntaxKind.Marker, "World")); var span = new Span(builder); @@ -162,8 +162,8 @@ public void GetOrigninalText_SpanIsOwner_ReturnsContent() { // Arrange var builder = new SpanBuilder(new SourceLocation(13, 0, 0)); - builder.Accept(SyntaxFactory.Token(SyntaxKind.Unknown, "Hello, ")); - builder.Accept(SyntaxFactory.Token(SyntaxKind.Unknown, "World")); + builder.Accept(SyntaxFactory.Token(SyntaxKind.Marker, "Hello, ")); + builder.Accept(SyntaxFactory.Token(SyntaxKind.Marker, "World")); var span = new Span(builder); @@ -181,8 +181,8 @@ public void GetOrigninalText_SpanIsOwner_ReturnsContent_ZeroLengthSpan() { // Arrange var builder = new SpanBuilder(new SourceLocation(13, 0, 0)); - builder.Accept(SyntaxFactory.Token(SyntaxKind.Unknown, "Hello, ")); - builder.Accept(SyntaxFactory.Token(SyntaxKind.Unknown, "World")); + builder.Accept(SyntaxFactory.Token(SyntaxKind.Marker, "Hello, ")); + builder.Accept(SyntaxFactory.Token(SyntaxKind.Marker, "World")); var span = new Span(builder); 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 0279f883d..8bbf95d77 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,13 +1,14 @@ -Markup block - Gen - 14 - (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:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ Bar] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Bar]; +RazorDocument - [0..14) - FullWidth: 14 - [Foo Bar] + MarkupBlock - [0..14) - FullWidth: 14 + 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;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [10..14) - FullWidth: 4 - 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 111e681d8..20b4ad01f 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,10 +1,14 @@ -Markup block - Gen - 1 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Expression block - Gen - 1 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (1:0,1) - Tokens:1 - SyntaxKind.Unknown;[]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (1:0,1) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..1) - FullWidth: 1 - [@] + MarkupBlock - [0..1) - FullWidth: 1 + MarkupTextLiteral - [0..0) - FullWidth: 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 + Transition;[@]; + CSharpImplicitExpressionBody - [1..1) - FullWidth: 0 + CSharpCodeBlock - [1..1) - FullWidth: 0 + CSharpExpressionLiteral - [1..1) - FullWidth: 0 - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Marker;[]; + MarkupTextLiteral - [1..1) - FullWidth: 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 9e676d2db..53d2c4599 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,43 +1,48 @@ -Markup block - Gen - 39 - (0:0,0) - Tag block - Gen - 6 - (0:0,0) - Markup span - Gen - [
] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 17 - (6:0,6) - Markup span - Gen - [ - 14 - (8:0,8) - Markup span - Gen - [ class = '] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:6 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[class]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Equals;[=]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [bar] - SpanEditHandler;Accepts:Any - (18:0,18) - Tokens:1 - SyntaxKind.Text;[bar]; - Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1 - SyntaxKind.SingleQuote;[']; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (22:0,22) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [ Foo ] - [23..28) - FullWidth: 5 - Slots: 1 - SyntaxKind.List - [ Foo ] - [23..28) - FullWidth: 5 - Slots: 3 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Foo]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 4 - (28:0,28) - Markup span - Gen - [

] - SpanEditHandler;Accepts:Any - (28:0,28) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 7 - (32:0,32) - Markup span - Gen - [
] - SpanEditHandler;Accepts:Any - (32:0,32) - Tokens:5 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.CloseAngle;[>]; +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 + OpenAngle;[<]; + Text;[div]; + Whitespace;[ ]; + CloseAngle;[>]; + MarkupTagBlock - [6..23) - FullWidth: 17 + MarkupTextLiteral - [6..8) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + MarkupAttributeBlock - [8..22) - FullWidth: 14 + MarkupTextLiteral - [8..9) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [9..14) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any + Text;[class]; + MarkupTextLiteral - [14..15) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Equals;[=]; + MarkupTextLiteral - [16..18) - FullWidth: 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 + Text;[bar]; + MarkupTextLiteral - [21..22) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + SingleQuote;[']; + MarkupTextLiteral - [22..23) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [23..28) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[Foo]; + Whitespace;[ ]; + MarkupTagBlock - [28..32) - FullWidth: 4 + MarkupTextLiteral - [28..32) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [32..39) - FullWidth: 7 + MarkupTextLiteral - [32..39) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + Whitespace;[ ]; + CloseAngle;[>]; 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 b57b9fee5..9dc0a4cc4 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,30 +1,30 @@ -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;[div]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [Foo ] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:2 - SyntaxKind.Text;[Foo]; - SyntaxKind.Whitespace;[ ]; - Statement block - Gen - 12 - (9:0,9) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (9:0,9) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [if(true) {}] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:7 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.RightBrace;[}]; - SyntaxKind.HtmlTextLiteral - [ Bar] - [21..25) - FullWidth: 4 - Slots: 1 - SyntaxKind.List - [ Bar] - [21..25) - FullWidth: 4 - Slots: 2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Bar]; - Tag block - Gen - 6 - (25:0,25) - Markup span - Gen - [
] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; +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 + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTextLiteral - [5..9) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + Whitespace;[ ]; + CSharpCodeBlock - [9..21) - FullWidth: 12 + CSharpTransition - [9..10) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [10..21) - FullWidth: 11 - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + Whitespace;[ ]; + LeftBrace;[{]; + RightBrace;[}]; + MarkupTextLiteral - [21..25) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + Text;[Bar]; + MarkupTagBlock - [25..31) - FullWidth: 6 + MarkupTextLiteral - [25..31) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[div]; + CloseAngle;[>]; 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 39886635d..d071dfcba 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,21 +1,25 @@ -Markup block - Gen - 15 - (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;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (2:0,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (4:1,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (5:1,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 6 - (7:2,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (7:2,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[html]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (13:2,6) - Tokens:1 - SyntaxKind.NewLine;[LF]; +RazorDocument - [0..15) - FullWidth: 15 - [@{LF}LFLF] + MarkupBlock - [0..15) - FullWidth: 15 + MarkupTextLiteral - [0..0) - FullWidth: 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 + Transition;[@]; + CSharpStatementBody - [1..5) - FullWidth: 4 + RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..4) - FullWidth: 2 + CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + RazorMetaCode - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [5..7) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupTagBlock - [7..13) - FullWidth: 6 + MarkupTextLiteral - [7..13) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[html]; + CloseAngle;[>]; + MarkupTextLiteral - [13..15) - FullWidth: 2 - 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 e6d7acb56..d92996d54 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,21 +1,25 @@ -Markup block - Gen - 17 - (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;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (2:0,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (4:1,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (5:1,1) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 6 - (9:1,5) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (9:1,5) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[html]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (15:1,11) - Tokens:1 - SyntaxKind.NewLine;[LF]; +RazorDocument - [0..17) - FullWidth: 17 - [@{LF} LF] + MarkupBlock - [0..17) - FullWidth: 17 + MarkupTextLiteral - [0..0) - FullWidth: 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 + Transition;[@]; + CSharpStatementBody - [1..5) - FullWidth: 4 + RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..4) - FullWidth: 2 + CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + RazorMetaCode - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [5..9) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [9..15) - FullWidth: 6 + MarkupTextLiteral - [9..15) - FullWidth: 6 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[html]; + CloseAngle;[>]; + MarkupTextLiteral - [15..17) - FullWidth: 2 - 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 9a418f929..c945360b3 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,19 +1,23 @@ -Markup block - Gen - 13 - (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;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (2:0,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (4:1,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (5:1,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 6 - (7:2,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (7:2,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[html]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..13) - FullWidth: 13 - [@{LF}LF] + MarkupBlock - [0..13) - FullWidth: 13 + MarkupTextLiteral - [0..0) - FullWidth: 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 + Transition;[@]; + CSharpStatementBody - [1..5) - FullWidth: 4 + RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..4) - FullWidth: 2 + CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + RazorMetaCode - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [5..7) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupTagBlock - [7..13) - FullWidth: 6 + MarkupTextLiteral - [7..13) - FullWidth: 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 ef473190e..c21da1582 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,20 +1,24 @@ -Markup block - Gen - 15 - (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;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (2:0,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (4:1,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [ LF] - SpanEditHandler;Accepts:Any - (5:1,1) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 6 - (9:2,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (9:2,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[html]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..15) - FullWidth: 15 - [@{LF} LF] + MarkupBlock - [0..15) - FullWidth: 15 + MarkupTextLiteral - [0..0) - FullWidth: 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 + Transition;[@]; + CSharpStatementBody - [1..5) - FullWidth: 4 + RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..4) - FullWidth: 2 + CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + RazorMetaCode - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [5..9) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + MarkupTagBlock - [9..15) - FullWidth: 6 + MarkupTextLiteral - [9..15) - FullWidth: 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 a0171c8cd..e7a664c8e 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,32 +1,36 @@ -Markup block - Gen - 30 - (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 - 17 - (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;[>]; - Code span - Gen - [LFLF] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:2 - SyntaxKind.NewLine;[LF]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (23:2,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Tag block - Gen - 6 - (24:2,1) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (24:2,1) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[html]; - SyntaxKind.CloseAngle;[>]; +RazorDocument - [0..30) - FullWidth: 30 - [@{BlahLFLF}] + MarkupBlock - [0..30) - FullWidth: 30 + MarkupTextLiteral - [0..0) - FullWidth: 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 + Transition;[@]; + CSharpStatementBody - [1..24) - FullWidth: 23 + RazorMetaCode - [1..2) - FullWidth: 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 + 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;[>]; + CSharpStatementLiteral - [19..23) - FullWidth: 4 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + NewLine;[LF]; + RazorMetaCode - [23..24) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTagBlock - [24..30) - FullWidth: 6 + MarkupTextLiteral - [24..30) - FullWidth: 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 dad631ec5..22116b18e 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,29 +1,30 @@ -Markup block - Gen - 24 - (0:0,0) - Markup span - Gen - [Foo ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:2 - SyntaxKind.Text;[Foo]; - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 5 - (4:0,4) - Markup span - Gen - [
] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[div]; - SyntaxKind.CloseAngle;[>]; - Tag block - Gen - 3 - (9:0,9) - Markup span - Gen - [

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

] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[p]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ Baz] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[Baz]; +RazorDocument - [0..24) - FullWidth: 24 - [Foo

Baz] + MarkupBlock - [0..24) - FullWidth: 24 + MarkupTextLiteral - [0..4) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + Text;[Foo]; + Whitespace;[ ]; + MarkupTagBlock - [4..9) - FullWidth: 5 + MarkupTextLiteral - [4..9) - FullWidth: 5 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[div]; + CloseAngle;[>]; + MarkupTagBlock - [9..12) - FullWidth: 3 + MarkupTextLiteral - [9..12) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [12..16) - FullWidth: 4 + MarkupTextLiteral - [12..16) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTagBlock - [16..20) - FullWidth: 4 + MarkupTextLiteral - [16..20) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[p]; + CloseAngle;[>]; + MarkupTextLiteral - [20..24) - FullWidth: 4 - 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 d0b467e5d..49cec6e08 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,28 +1,32 @@ -Markup block - Gen - 51 - (0:0,0) - Tag block - Gen - 39 - (0:0,0) - Markup span - Gen - [ - 36 - (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 - [mailto:example@microsoft.com] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:1 - SyntaxKind.Text;[mailto:example@microsoft.com]; - Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (37:0,37) - Tokens:1 - SyntaxKind.DoubleQuote;["]; - Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (38:0,38) - Tokens:1 - SyntaxKind.CloseAngle;[>]; - SyntaxKind.HtmlTextLiteral - [Email me] - [39..47) - FullWidth: 8 - Slots: 1 - SyntaxKind.List - [Email me] - [39..47) - FullWidth: 8 - Slots: 3 - SyntaxKind.Text;[Email]; - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[me]; - Tag block - Gen - 4 - (47:0,47) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (47:0,47) - Tokens:4 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.ForwardSlash;[/]; - SyntaxKind.Text;[a]; - SyntaxKind.CloseAngle;[>]; +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 + OpenAngle;[<]; + Text;[a]; + MarkupAttributeBlock - [2..38) - FullWidth: 36 + MarkupTextLiteral - [2..3) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTextLiteral - [3..7) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + Text;[href]; + Equals;[=]; + MarkupTextLiteral - [8..9) - FullWidth: 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 + Text;[mailto:example@microsoft.com]; + MarkupTextLiteral - [37..38) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + DoubleQuote;["]; + MarkupTextLiteral - [38..39) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + CloseAngle;[>]; + MarkupTextLiteral - [39..47) - FullWidth: 8 - Gen - SpanEditHandler;Accepts:Any + Text;[Email]; + Whitespace;[ ]; + Text;[me]; + MarkupTagBlock - [47..51) - FullWidth: 4 + MarkupTextLiteral - [47..51) - FullWidth: 4 - Gen - SpanEditHandler;Accepts:Any + OpenAngle;[<]; + ForwardSlash;[/]; + Text;[a]; + CloseAngle;[>]; 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 96e511bc7..4ed0a4357 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,11 +1,15 @@ -Markup block - Gen - 5 - (0:0,0) - Markup span - Gen - [foo ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:2 - SyntaxKind.Text;[foo]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 1 - (4:0,4) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (5:0,5) - Tokens:1 - SyntaxKind.Unknown;[]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (5:0,5) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..5) - FullWidth: 5 - [foo @] + MarkupBlock - [0..5) - FullWidth: 5 + MarkupTextLiteral - [0..4) - FullWidth: 4 - 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 + Transition;[@]; + CSharpImplicitExpressionBody - [5..5) - FullWidth: 0 + CSharpCodeBlock - [5..5) - FullWidth: 0 + CSharpExpressionLiteral - [5..5) - FullWidth: 0 - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Marker;[]; + MarkupTextLiteral - [5..5) - FullWidth: 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 bb5a42cd0..1a167eded 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,10 +1,14 @@ -Markup block - Gen - 4 - (0:0,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1 - SyntaxKind.Unknown;[]; - Expression block - Gen - 4 - (0:0,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [bar] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (1:0,1) - Tokens:1 - SyntaxKind.Identifier;[bar]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..4) - FullWidth: 4 - [@bar] + MarkupBlock - [0..4) - FullWidth: 4 + MarkupTextLiteral - [0..0) - FullWidth: 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 + Transition;[@]; + CSharpImplicitExpressionBody - [1..4) - FullWidth: 3 + CSharpCodeBlock - [1..4) - FullWidth: 3 + CSharpExpressionLiteral - [1..4) - FullWidth: 3 - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[bar]; + MarkupTextLiteral - [4..4) - FullWidth: 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 233594530..a9ee36507 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,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;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (2:0,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 13 - (4:1,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (4:1,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [if(true){LF}] - SpanEditHandler;Accepts:Any - (5:1,1) - Tokens:7 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; - Code span - Gen - [ LF] - SpanEditHandler;Accepts:Any - (17:2,1) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - Markup block - Gen - 10 - (20:3,0) - Tag block - Gen - 7 - (20:3,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (20:3,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[input]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ LF] - SpanEditHandler;Accepts:None - (27:3,7) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (30:4,0) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (30:4,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Tag block - Gen - 6 - (31:4,1) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (31:4,1) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[html]; - SyntaxKind.CloseAngle;[>]; +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 + 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 + CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + CSharpCodeBlock - [4..17) - FullWidth: 13 + CSharpTransition - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [5..17) - FullWidth: 12 - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + LeftBrace;[{]; + NewLine;[LF]; + RightBrace;[}]; + CSharpStatementLiteral - [17..20) - FullWidth: 3 - 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 + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; + MarkupTextLiteral - [27..30) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + NewLine;[LF]; + CSharpStatementLiteral - [30..30) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + 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/HandlesNewLineAndMarkupInNestedBlock.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlDocumentTest/HandlesNewLineAndMarkupInNestedBlock.stree.txt index f29745765..68310ce10 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,37 +1,41 @@ -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;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (2:0,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 13 - (4:1,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (4:1,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [if(true){LF}] - SpanEditHandler;Accepts:Any - (5:1,1) - Tokens:7 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; - Markup block - Gen - 9 - (17:2,1) - Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (17:2,1) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Tag block - Gen - 7 - (18:2,2) - Markup span - Gen - [] - SpanEditHandler;Accepts:None - (18:2,2) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[input]; - SyntaxKind.CloseAngle;[>]; - Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (25:2,9) - Tokens:1 - SyntaxKind.Whitespace;[ ]; - Code span - Gen - [] - SpanEditHandler;Accepts:Any - (26:2,10) - Tokens:1 - SyntaxKind.Unknown;[]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (26:2,10) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (27:2,11) - Tokens:1 - SyntaxKind.Unknown;[]; +RazorDocument - [0..27) - FullWidth: 27 - [@{LF@if(true){LF} }] + MarkupBlock - [0..27) - FullWidth: 27 + MarkupTextLiteral - [0..0) - FullWidth: 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 + Transition;[@]; + CSharpStatementBody - [1..27) - FullWidth: 26 + RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..26) - FullWidth: 24 + CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + CSharpCodeBlock - [4..17) - FullWidth: 13 + CSharpTransition - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [5..17) - FullWidth: 12 - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + LeftBrace;[{]; + NewLine;[LF]; + RightBrace;[}]; + MarkupBlock - [17..26) - FullWidth: 9 + MarkupTextLiteral - [17..18) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + MarkupTagBlock - [18..25) - FullWidth: 7 + MarkupTextLiteral - [18..25) - FullWidth: 7 - Gen - SpanEditHandler;Accepts:None + OpenAngle;[<]; + Text;[input]; + CloseAngle;[>]; + MarkupTextLiteral - [25..26) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Whitespace;[ ]; + CSharpStatementLiteral - [26..26) - FullWidth: 0 - Gen - SpanEditHandler;Accepts:Any + Marker;[]; + RazorMetaCode - [26..27) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupTextLiteral - [27..27) - FullWidth: 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 35287578b..dbc7c2092 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,33 +1,37 @@ -Markup block - Gen - 29 - (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;[{]; - Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (2:0,2) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Statement block - Gen - 13 - (4:1,0) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (4:1,0) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [if(true){LF}] - SpanEditHandler;Accepts:Any - (5:1,1) - Tokens:7 - SyntaxKind.Keyword;[if]; - SyntaxKind.LeftParenthesis;[(]; - SyntaxKind.Keyword;[true]; - SyntaxKind.RightParenthesis;[)]; - SyntaxKind.LeftBrace;[{]; - SyntaxKind.NewLine;[LF]; - SyntaxKind.RightBrace;[}]; - Code span - Gen - [ LF] - SpanEditHandler;Accepts:Any - (17:2,1) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.NewLine;[LF]; - MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (20:3,0) - Tokens:1 - SyntaxKind.RightBrace;[}]; - Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (21:3,1) - Tokens:1 - SyntaxKind.NewLine;[LF]; - Tag block - Gen - 6 - (23:4,0) - Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (23:4,0) - Tokens:3 - SyntaxKind.OpenAngle;[<]; - SyntaxKind.Text;[html]; - SyntaxKind.CloseAngle;[>]; +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 + Marker;[]; + CSharpCodeBlock - [0..21) - FullWidth: 21 + CSharpStatement - [0..21) - FullWidth: 21 + CSharpTransition - [0..1) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementBody - [1..21) - FullWidth: 20 + RazorMetaCode - [1..2) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + LeftBrace;[{]; + CSharpCodeBlock - [2..20) - FullWidth: 18 + CSharpStatementLiteral - [2..4) - FullWidth: 2 - Gen - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL + NewLine;[LF]; + CSharpCodeBlock - [4..17) - FullWidth: 13 + CSharpTransition - [4..5) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + Transition;[@]; + CSharpStatementLiteral - [5..17) - FullWidth: 12 - Gen - SpanEditHandler;Accepts:Any + Keyword;[if]; + LeftParenthesis;[(]; + Keyword;[true]; + RightParenthesis;[)]; + LeftBrace;[{]; + NewLine;[LF]; + RightBrace;[}]; + CSharpStatementLiteral - [17..20) - FullWidth: 3 - Gen - SpanEditHandler;Accepts:Any + Whitespace;[ ]; + NewLine;[LF]; + RazorMetaCode - [20..21) - FullWidth: 1 - Gen - SpanEditHandler;Accepts:None + RightBrace;[}]; + MarkupEphemeralTextLiteral - [21..23) - FullWidth: 2 - Gen - SpanEditHandler;Accepts:Any + NewLine;[LF]; + MarkupTagBlock - [23..29) - FullWidth: 6 + MarkupTextLiteral - [23..29) - FullWidth: 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 854d621f2..df3820603 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,12 +1,16 @@ -Markup block - Gen - 12 - (0:0,0) - Markup span - Gen - [foo ] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:2 - SyntaxKind.Text;[foo]; - SyntaxKind.Whitespace;[ ]; - Expression block - Gen - 4 - (4:0,4) - Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (4:0,4) - Tokens:1 - SyntaxKind.Transition;[@]; - Code span - Gen - [bar] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 - (5:0,5) - Tokens:1 - SyntaxKind.Identifier;[bar]; - Markup span - Gen - [ baz] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:2 - SyntaxKind.Whitespace;[ ]; - SyntaxKind.Text;[baz]; +RazorDocument - [0..12) - FullWidth: 12 - [foo @bar baz] + MarkupBlock - [0..12) - FullWidth: 12 + MarkupTextLiteral - [0..4) - FullWidth: 4 - 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 + Transition;[@]; + CSharpImplicitExpressionBody - [5..8) - FullWidth: 3 + CSharpCodeBlock - [5..8) - FullWidth: 3 + CSharpExpressionLiteral - [5..8) - FullWidth: 3 - Gen - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K14 + Identifier;[bar]; + MarkupTextLiteral - [8..12) - FullWidth: 4 - 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 9898890f2..ad213bb56 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,28 +1,32 @@ -Markup block - Gen - 36 - (0:0,0) - Tag block - Gen - 8 - (0:0,0) - Markup span - Gen - [] - 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