Esempio n. 1
0
        protected override async Task <SemanticDocument> ExpandAsync(
            SelectionResult selection,
            CancellationToken cancellationToken
            )
        {
            var lastExpression = selection
                                 .GetFirstTokenInSelection()
                                 .GetCommonRoot(selection.GetLastTokenInSelection())
                                 .GetAncestors <ExpressionSyntax>()
                                 .LastOrDefault();

            if (lastExpression == null)
            {
                return(selection.SemanticDocument);
            }

            var newExpression = await Simplifier
                                .ExpandAsync(
                lastExpression,
                selection.SemanticDocument.Document,
                n => n != selection.GetContainingScope(),
                expandParameter : false,
                cancellationToken : cancellationToken
                )
                                .ConfigureAwait(false);

            return(await selection.SemanticDocument
                   .WithSyntaxRootAsync(
                       selection.SemanticDocument.Root.ReplaceNode(lastExpression, newExpression),
                       cancellationToken
                       )
                   .ConfigureAwait(false));
        }
        protected override async Task<SemanticDocument> ExpandAsync(SelectionResult selection, CancellationToken cancellationToken)
        {
            var lastExpression = selection.GetFirstTokenInSelection().GetCommonRoot(selection.GetLastTokenInSelection()).GetAncestors<ExpressionSyntax>().LastOrDefault();
            if (lastExpression == null)
            {
                return selection.SemanticDocument;
            }

            var newExpression = await Simplifier.ExpandAsync(lastExpression, selection.SemanticDocument.Document, n => n != selection.GetContainingScope(), expandParameter: false, cancellationToken: cancellationToken).ConfigureAwait(false);
            return await selection.SemanticDocument.WithSyntaxRootAsync(selection.SemanticDocument.Root.ReplaceNode(lastExpression, newExpression), cancellationToken).ConfigureAwait(false);
        }