using System; using System.Linq; using CTA.Rules.Config; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.VisualBasic; using Microsoft.CodeAnalysis.Editing; using CTA.Rules.Actions.ActionHelpers; namespace CTA.Rules.Actions.VisualBasic { public class ExpressionActions { /// /// This Method adds an await operator to the invocation expression. For example, Math.Round(5.5) invocation expression would return await Math.Abs(5.5). /// /// public Func GetAddAwaitOperatorAction(string _) { SyntaxNode AddAwaitOperator(SyntaxGenerator syntaxGenerator, SyntaxNode node) { var newNode = SyntaxFactory.AwaitExpression( SyntaxFactory.ParseExpression(node.WithoutTrivia().ToFullString())) .NormalizeWhitespace(); newNode = newNode.WithTriviaFrom(node); return SyntaxFactory.ExpressionStatement(newNode); } return AddAwaitOperator; } public Func GetAddCommentAction(string comment) { SyntaxNode AddComment(SyntaxGenerator syntaxGenerator, SyntaxNode node) { return CommentHelper.AddVBComment(node, comment); } return AddComment; } } }