コード例 #1
0
        public static async Task <Document> RefactorAsync(
            Document document,
            BinaryExpressionSyntax binaryExpression,
            bool multiline = false,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            SyntaxNode root = await document.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(false);

            var chain = new StringLiteralChain(binaryExpression);

            LiteralExpressionSyntax newNode = (multiline)
                ? chain.MergeMultiline()
                : chain.Merge();

            root = root.ReplaceNode(
                binaryExpression,
                newNode.WithFormatterAnnotation());

            return(document.WithSyntaxRoot(root));
        }
コード例 #2
0
 public static bool CanRefactor(RefactoringContext context, BinaryExpressionSyntax binaryExpression)
 {
     return(binaryExpression.IsKind(SyntaxKind.AddExpression) &&
            context.Span.IsBetweenSpans(binaryExpression) &&
            StringLiteralChain.IsStringLiteralChain(binaryExpression));
 }