public override SyntaxNode VisitMarkupLiteralAttributeValue(MarkupLiteralAttributeValueSyntax node) { var builder = SyntaxListBuilder <SyntaxToken> .Create(); if (node.Prefix != null) { builder.AddRange(node.Prefix.LiteralTokens); } if (node.Value != null) { builder.AddRange(node.Value.LiteralTokens); } if (_tryParseResult.IsBoundNonStringAttribute) { _rewriteAsMarkup = true; // Since this is a bound non-string attribute, we want to convert LiteralAttributeValue to just be a CSharp Expression literal. var expression = SyntaxFactory.CSharpExpressionLiteral(builder.ToList()); return(VisitCSharpExpressionLiteral(expression)); } else { var literal = SyntaxFactory.MarkupTextLiteral(builder.ToList()); var context = node.Value?.GetSpanContext(); literal = context != null?literal.WithSpanContext(context) : literal; return(Visit(literal)); } }
private MarkupTextLiteralSyntax MergeAttributeValue(MarkupLiteralAttributeValueSyntax node) { var valueTokens = MergeLiterals(node.Prefix?.LiteralTokens, node.Value?.LiteralTokens); var rewritten = node.Prefix?.Update(valueTokens) ?? node.Value?.Update(valueTokens); rewritten = (MarkupTextLiteralSyntax)rewritten?.Green.CreateRed(node, node.Position); var originalContext = rewritten.GetSpanContext(); if (originalContext != null) { rewritten = rewritten.WithSpanContext(new SpanContext(new MarkupChunkGenerator(), originalContext.EditHandler)); } return(rewritten); }
public override void VisitMarkupLiteralAttributeValue(MarkupLiteralAttributeValueSyntax node) { _builder.Push(new HtmlAttributeValueIntermediateNode() { Prefix = node.Prefix?.GetContent() ?? string.Empty, Source = BuildSourceSpanFromNode(node), }); _builder.Add(new IntermediateToken() { Content = node.Value?.GetContent() ?? string.Empty, Kind = TokenKind.Html, Source = BuildSourceSpanFromNode(node.Value) }); _builder.Pop(); }
public override void VisitMarkupLiteralAttributeValue(MarkupLiteralAttributeValueSyntax node) { WriteSpan(node, FormattingSpanKind.Markup); base.VisitMarkupLiteralAttributeValue(node); }
public override void VisitMarkupLiteralAttributeValue(MarkupLiteralAttributeValueSyntax node) { WriteSpan(node, SpanKindInternal.Markup); base.VisitMarkupLiteralAttributeValue(node); }
public override void VisitMarkupLiteralAttributeValue(MarkupLiteralAttributeValueSyntax node) { AddSemanticRange(node, RazorSemanticTokensLegend.MarkupAttributeQuote); }