public override async Task <Solution> GetModifiedSolutionAsync( Document document, TextSpan textSpan, MoveTypeOperationKind operationKind, CancellationToken cancellationToken ) { var state = await CreateStateAsync(document, textSpan, cancellationToken) .ConfigureAwait(false); if (state == null) { return(document.Project.Solution); } var suggestedFileNames = GetSuggestedFileNames( state.TypeNode, IsNestedType(state.TypeNode), state.TypeName, state.SemanticDocument.Document.Name, state.SemanticDocument.SemanticModel, cancellationToken ); var editor = Editor.GetEditor( operationKind, (TService)this, state, suggestedFileNames.FirstOrDefault(), cancellationToken ); var modifiedSolution = await editor.GetModifiedSolutionAsync().ConfigureAwait(false); return(modifiedSolution ?? document.Project.Solution); }
public static Editor GetEditor( MoveTypeOperationKind operationKind, TService service, State state, string fileName, CancellationToken cancellationToken ) => operationKind switch {
public MoveTypeCodeAction( TService service, State state, MoveTypeOperationKind operationKind, string fileName) { _state = state; _service = service; _operationKind = operationKind; _fileName = fileName; _title = CreateDisplayText(); }
public static Editor GetEditor(MoveTypeOperationKind operationKind, TService service, State state, string fileName, CancellationToken cancellationToken) { switch (operationKind) { case MoveTypeOperationKind.MoveType: return(new MoveTypeEditor(service, state, fileName, cancellationToken)); case MoveTypeOperationKind.RenameType: return(new RenameTypeEditor(service, state, fileName, cancellationToken)); case MoveTypeOperationKind.RenameFile: return(new RenameFileEditor(service, state, fileName, cancellationToken)); case MoveTypeOperationKind.MoveTypeNamespaceScope: return(new MoveTypeNamespaceScopeEditor(service, state, fileName, cancellationToken)); default: throw ExceptionUtilities.UnexpectedValue(operationKind); } }
private CodeAction GetCodeAction(State state, string fileName, MoveTypeOperationKind operationKind) => new MoveTypeCodeAction((TService)this, state, operationKind, fileName);
public abstract Task <Solution> GetModifiedSolutionAsync(Document document, TextSpan textSpan, MoveTypeOperationKind operationKind, CancellationToken cancellationToken);