public static async Task ComputeRefactoringsAsync(RefactoringContext context, ExpressionStatementSyntax expressionStatement) { if (context.IsRefactoringEnabled(RefactoringIdentifiers.AddIdentifierToVariableDeclaration)) { await AddIdentifierToLocalDeclarationRefactoring.ComputeRefactoringAsync(context, expressionStatement).ConfigureAwait(false); } if (context.IsRefactoringEnabled(RefactoringIdentifiers.IntroduceLocalFromStatementThatReturnsValue)) { ExpressionSyntax expression = expressionStatement.Expression; if (expression?.IsMissing == false && context.Span.IsEmptyAndContainedInSpanOrBetweenSpans(expression)) { await IntroduceLocalFromStatementThatReturnsValueRefactoring.ComputeRefactoringAsync(context, expressionStatement, expression).ConfigureAwait(false); } } if (context.IsRefactoringEnabled(RefactoringIdentifiers.ReplaceStatementWithIfStatement) && context.Span.IsBetweenSpans(expressionStatement)) { var refactoring = new ReplaceExpressionStatementWithIfStatementRefactoring(); await refactoring.ComputeRefactoringAsync(context, expressionStatement).ConfigureAwait(false); } }
public static async Task ComputeRefactoringsAsync(RefactoringContext context, ExpressionStatementSyntax expressionStatement) { if (context.IsRefactoringEnabled(RefactoringIdentifiers.AddIdentifierToVariableDeclaration)) { await AddIdentifierToLocalDeclarationRefactoring.ComputeRefactoringAsync(context, expressionStatement).ConfigureAwait(false); } }
public static async Task ComputeRefactoringsAsync(RefactoringContext context, LocalDeclarationStatementSyntax localDeclaration) { if (context.IsRefactoringEnabled(RefactoringIdentifiers.AddIdentifierToVariableDeclaration)) { await AddIdentifierToLocalDeclarationRefactoring.ComputeRefactoringAsync(context, localDeclaration).ConfigureAwait(false); } if (context.IsRefactoringEnabled(RefactoringIdentifiers.InitializeLocalWithDefaultValue)) { await InitializeLocalWithDefaultValueRefactoring.ComputeRefactoringAsync(context, localDeclaration).ConfigureAwait(false); } if (context.IsRefactoringEnabled(RefactoringIdentifiers.PromoteLocalToParameter)) { await PromoteLocalToParameterRefactoring.ComputeRefactoringAsync(context, localDeclaration).ConfigureAwait(false); } if (context.IsRefactoringEnabled(RefactoringIdentifiers.ReplaceObjectCreationWithDefaultValue)) { await ReplaceObjectCreationWithDefaultValueRefactoring.ComputeRefactoringAsync(context, localDeclaration).ConfigureAwait(false); } if (context.IsRefactoringEnabled(RefactoringIdentifiers.SplitDeclarationAndInitialization)) { await SplitDeclarationAndInitializationRefactoring.ComputeRefactoringAsync(context, localDeclaration).ConfigureAwait(false); } }
public static async Task ComputeRefactoringsAsync(RefactoringContext context, ExpressionStatementSyntax expressionStatement) { if (context.IsRefactoringEnabled(RefactoringIdentifiers.AddIdentifierToVariableDeclaration)) { await AddIdentifierToLocalDeclarationRefactoring.ComputeRefactoringAsync(context, expressionStatement).ConfigureAwait(false); } if (context.IsRefactoringEnabled(RefactoringIdentifiers.IntroduceLocalVariable)) { ExpressionSyntax expression = expressionStatement.Expression; if (expression?.IsMissing == false && context.Span.IsEmptyAndContainedInSpanOrBetweenSpans(expression) && !expressionStatement.IsEmbedded() && !(expression is AssignmentExpressionSyntax) && !CSharpFacts.IsIncrementOrDecrementExpression(expression.Kind())) { SemanticModel semanticModel = await context.GetSemanticModelAsync().ConfigureAwait(false); if (semanticModel.GetSymbol(expression, context.CancellationToken)?.IsErrorType() == false) { ITypeSymbol typeSymbol = semanticModel.GetTypeSymbol(expression, context.CancellationToken); if (typeSymbol?.IsErrorType() == false && !typeSymbol.HasMetadataName(MetadataNames.System_Threading_Tasks_Task) && !typeSymbol.IsVoid()) { bool addAwait = false; if (typeSymbol.OriginalDefinition.EqualsOrInheritsFromTaskOfT()) { ISymbol enclosingSymbol = semanticModel.GetEnclosingSymbol(expressionStatement.SpanStart, context.CancellationToken); addAwait = enclosingSymbol.IsAsyncMethod(); } context.RegisterRefactoring( IntroduceLocalVariableRefactoring.GetTitle(expression), cancellationToken => IntroduceLocalVariableRefactoring.RefactorAsync(context.Document, expressionStatement, typeSymbol, addAwait, semanticModel, cancellationToken), RefactoringIdentifiers.IntroduceLocalVariable); } } } } }
public static async Task ComputeRefactoringsAsync(RefactoringContext context, LocalDeclarationStatementSyntax localDeclaration) { if (context.IsRefactoringEnabled(RefactoringIdentifiers.AddIdentifierToVariableDeclaration)) { await AddIdentifierToLocalDeclarationRefactoring.ComputeRefactoringAsync(context, localDeclaration).ConfigureAwait(false); } if (context.IsRefactoringEnabled(RefactoringIdentifiers.InitializeLocalWithDefaultValue) && context.SupportsSemanticModel) { await InitializeLocalWithDefaultValueRefactoring.ComputeRefactoringAsync(context, localDeclaration).ConfigureAwait(false); } if (context.IsRefactoringEnabled(RefactoringIdentifiers.PromoteLocalToParameter) && context.SupportsSemanticModel) { await PromoteLocalToParameterRefactoring.ComputeRefactoringAsync(context, localDeclaration).ConfigureAwait(false); } }
public static async Task ComputeRefactoringsAsync(RefactoringContext context, LocalDeclarationStatementSyntax localDeclaration) { if (context.IsRefactoringEnabled(RefactoringIdentifiers.AddIdentifierToVariableDeclaration)) { await AddIdentifierToLocalDeclarationRefactoring.ComputeRefactoringAsync(context, localDeclaration).ConfigureAwait(false); } if (context.IsRefactoringEnabled(RefactoringIdentifiers.InitializeLocalWithDefaultValue)) { await InitializeLocalWithDefaultValueRefactoring.ComputeRefactoringAsync(context, localDeclaration).ConfigureAwait(false); } if (context.IsRefactoringEnabled(RefactoringIdentifiers.PromoteLocalToParameter)) { await PromoteLocalToParameterRefactoring.ComputeRefactoringAsync(context, localDeclaration).ConfigureAwait(false); } if (context.IsRefactoringEnabled(RefactoringIdentifiers.ReplaceStatementWithIfStatement) && context.Span.IsBetweenSpans(localDeclaration)) { await ReplaceConditionalExpressionWithIfElseRefactoring.ComputeRefactoringAsync(context, localDeclaration).ConfigureAwait(false); } }