示例#1
0
        protected override async Task <IEnumerable <CodeActionOperation> > ComputeOperationsAsync(
            object options,
            CancellationToken cancellationToken
            )
        {
            if (
                options is ChangeSignatureOptionsResult changeSignatureOptions &&
                changeSignatureOptions != null
                )
            {
                var changeSignatureResult = await _changeSignatureService
                                            .ChangeSignatureWithContextAsync(
                    _context,
                    changeSignatureOptions,
                    cancellationToken
                    )
                                            .ConfigureAwait(false);

                if (changeSignatureResult.Succeeded)
                {
                    return(SpecializedCollections.SingletonEnumerable <CodeActionOperation>(
                               new ChangeSignatureCodeActionOperation(
                                   changeSignatureResult.UpdatedSolution,
                                   changeSignatureResult.ConfirmationMessage
                                   )
                               ));
                }
            }

            return(SpecializedCollections.EmptyEnumerable <CodeActionOperation>());
        }
        protected override async Task<IEnumerable<CodeActionOperation>> ComputeOperationsAsync(object options, CancellationToken cancellationToken)
        {
            if (options is ChangeSignatureOptionsResult changeSignatureOptions && !changeSignatureOptions.IsCancelled)
            {
                var changeSignatureResult = await _changeSignatureService.ChangeSignatureWithContextAsync(_context, changeSignatureOptions, cancellationToken).ConfigureAwait(false);

                if (changeSignatureResult.Succeeded)
                {
                    return new CodeActionOperation[] { new ApplyChangesOperation(changeSignatureResult.UpdatedSolution) };
                }
            }

            return SpecializedCollections.EmptyEnumerable<CodeActionOperation>();
        }