using System; using CTA.Rules.Actions.ActionHelpers; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.Editing; namespace CTA.Rules.Update { /// /// List of actions that can run on Member Accesses /// public class MemberAccessActions { public Func GetAddCommentAction(string comment) { SyntaxNode AddComment(SyntaxGenerator syntaxGenerator, SyntaxNode node) { if (node is Microsoft.CodeAnalysis.VisualBasic.Syntax.MemberAccessExpressionSyntax) { return CommentHelper.AddVBComment(node, comment); } else { return CommentHelper.AddCSharpComment(node, comment); } } return AddComment; } public Func GetRemoveMemberAccessAction(string _) { static SyntaxNode RemoveMemberAccess(SyntaxGenerator syntaxGenerator, SyntaxNode node) { if(node is MemberAccessExpressionSyntax) { return (node as MemberAccessExpressionSyntax).Expression; } if (node is Microsoft.CodeAnalysis.VisualBasic.Syntax.MemberAccessExpressionSyntax) { return (node as Microsoft.CodeAnalysis.VisualBasic.Syntax.MemberAccessExpressionSyntax).Expression; } return node; } return RemoveMemberAccess; } } }