public override SyntaxNode VisitInterpolatedStringText(InterpolatedStringTextSyntax node)
        {
            if (node.ToString().IndexOf('\n') >= 0)
            {
                node = node.WithAdditionalAnnotations(LayoutAnnotations.MultiLineConstructAnnotation);
            }

            return base.VisitInterpolatedStringText(node);
        }
        SyntaxNode CreateFormatString(InterpolatedStringTextSyntax node)
        {
            var sb = new StringBuilder();
            sb.Append("string.Format (\"");
            var stringExpressions = new List<ExpressionSyntax>();
            var parent = node.Parent as InterpolatedStringExpressionSyntax;
            foreach (var child in parent.Contents)
            {
                var kind = child.Kind();
                switch (kind)
                {
                    case SyntaxKind.InterpolatedStringText:
                        sb.Append(((InterpolatedStringTextSyntax)child).TextToken.Value);
                        break;
                    case SyntaxKind.Interpolation:
                        var interpolation = child as InterpolationSyntax;
                        sb.Append("{");

                        int index = -1;
                        for (int i = 0; i < stringExpressions.Count; i++)
                        {
                            if (stringExpressions[i].IsEquivalentTo(interpolation.Expression))
                            {
                                index = i;
                                break;
                            }
                        }
                        if (index < 0)
                        {
                            index = stringExpressions.Count;
                            stringExpressions.Add(interpolation.Expression);
                        }

                        sb.Append(index);

                        if (interpolation.FormatClause != null)
                            sb.Append(interpolation.FormatClause);
                        sb.Append("}");
                        break;
                }
            }

            sb.Append("\"");

            for (int i = 0; i < stringExpressions.Count; i++)
            {
                sb.Append(", ");
                sb.Append(stringExpressions[i]);
            }
            sb.Append(")");
            return SyntaxFactory.ParseExpression(sb.ToString()).WithAdditionalAnnotations(Formatter.Annotation);
        }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 public override sealed void VisitInterpolatedStringText(InterpolatedStringTextSyntax node)
 {
     this.OnNodeVisited(node, this.type.IsInstanceOfType(node));
     base.VisitInterpolatedStringText(node);
 }
Ejemplo n.º 4
0
        //public override void VisitInterpolatedStringExpression(InterpolatedStringExpressionSyntax node)
        //{
        //    base.VisitInterpolatedStringExpression(node);
        //}

        public override void VisitInterpolatedStringText(InterpolatedStringTextSyntax node)
        {
            //base.VisitInterpolatedStringText(node);
        }
Ejemplo n.º 5
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 public override sealed void VisitInterpolatedStringText(InterpolatedStringTextSyntax node)
 {
     this.OnNodeVisited(node);
     if (!this.traverseRootOnly) base.VisitInterpolatedStringText(node);
 }
Ejemplo n.º 6
0
 public override void VisitInterpolatedStringText(InterpolatedStringTextSyntax node)
 {
     Log(node, "Unsupported Syntax !");
 }
Ejemplo n.º 7
0
        public override Ust VisitInterpolatedStringText(InterpolatedStringTextSyntax node)
        {
            var result = new StringLiteral(node.ToString(), node.GetTextSpan());

            return(result);
        }
 //
 // Summary:
 //     Called when the visitor visits a InterpolatedStringTextSyntax node.
 public virtual void VisitInterpolatedStringText(InterpolatedStringTextSyntax node);
Ejemplo n.º 9
0
 private static object StringSyntaxValueFromInterpolated(InterpolatedStringTextSyntax interpolatedStringText) =>
 interpolatedStringText.Parent is InterpolatedStringExpressionSyntax interpolatedStringExpression?
Ejemplo n.º 10
0
 public override void VisitInterpolatedStringText(InterpolatedStringTextSyntax node)
 {
     throw new NotSupportedException();
 }