提交 9dc99c9d 编写于 作者: B Balaji Krishnan

Remove unncessary code in registering..

.. code actions for a refactoring.
上级 1aedfcc2
......@@ -2,6 +2,8 @@
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
......@@ -46,31 +48,28 @@ protected virtual SyntaxNode GetNodeToAnalyze(SyntaxNode root, TextSpan span)
.OfType<TTypeDeclarationSyntax>()
.Count() > 1;
public async Task<CodeRefactoring> GetRefactoringAsync(Document document, TextSpan textSpan, CancellationToken cancellationToken)
public async Task<ImmutableArray<CodeAction>> GetRefactoringAsync(Document document, TextSpan textSpan, CancellationToken cancellationToken)
{
var root = await document.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(false);
if (!ShouldAnalyze(root, textSpan))
{
return null;
return default(ImmutableArray<CodeAction>);
}
var semanticDocument = await SemanticDocument.CreateAsync(document, cancellationToken).ConfigureAwait(false);
var state = State.Generate((TService)this, semanticDocument, textSpan, cancellationToken);
if (state == null)
{
return null;
return default(ImmutableArray<CodeAction>);
}
var actions = CreateActions(state, cancellationToken);
if (actions.Count == 0)
{
return null;
}
return new CodeRefactoring(null, actions);
Debug.Assert(actions.Count() != 0, "No code actions found for MoveType Refactoring");
return actions;
}
private List<CodeAction> CreateActions(State state, CancellationToken cancellationToken)
private ImmutableArray<CodeAction> CreateActions(State state, CancellationToken cancellationToken)
{
var actions = new List<CodeAction>();
var manyTypes = MultipleTopLevelTypeDeclarationInSourceDocument(state.SemanticDocument.Root);
......@@ -95,7 +94,7 @@ private List<CodeAction> CreateActions(State state, CancellationToken cancellati
}
}
return actions;
return actions.ToImmutableArray();
}
private CodeAction GetCodeAction(
......
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Collections.Immutable;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.CodeActions;
using Microsoft.CodeAnalysis.Host;
using Microsoft.CodeAnalysis.Text;
......@@ -9,6 +11,6 @@ namespace Microsoft.CodeAnalysis.CodeRefactorings.MoveType
{
internal interface IMoveTypeService : ILanguageService
{
Task<CodeRefactoring> GetRefactoringAsync(Document document, TextSpan textSpan, CancellationToken cancellationToken);
Task<ImmutableArray<CodeAction>> GetRefactoringAsync(Document document, TextSpan textSpan, CancellationToken cancellationToken);
}
}
......@@ -30,10 +30,10 @@ public override async Task ComputeRefactoringsAsync(CodeRefactoringContext conte
}
var service = document.GetLanguageService<IMoveTypeService>();
var refactoring = await service.GetRefactoringAsync(document, textSpan, cancellationToken).ConfigureAwait(false);
if (refactoring != null)
var actions = await service.GetRefactoringAsync(document, textSpan, cancellationToken).ConfigureAwait(false);
if (!actions.IsDefault)
{
context.RegisterRefactorings(refactoring.Actions);
context.RegisterRefactorings(actions);
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册