private void InsertStatements(MethodDeclarationSyntax method, string[] statements, bool clear = false) { SyntaxList <StatementSyntax> currentStatements = new SyntaxList <StatementSyntax>(); if (!clear) { currentStatements = method.Body.Statements; } var block = EvaluateStatements(statements); SyntaxAnnotation annotation = null; List <StatementSyntax> statementNodes = AnnotateStatements(block.Statements, out annotation); currentStatements = currentStatements.AddRange(statementNodes); var newBody = method.Body.WithStatements(currentStatements); var newMethod = method.WithBody(newBody); Replace(method, newMethod, null); var annotatedNode = CurrentNode.GetAnnotatedNodes(annotation).First(); if (annotatedNode != null) { NextStep(annotatedNode); } }
private void InsertStatements(SyntaxNode currentStatement, string[] statements, bool before = true) { var block = EvaluateStatements(statements); SyntaxAnnotation annotation = null; List <StatementSyntax> statementNodes = AnnotateStatements(block.Statements, out annotation); SyntaxNode newNode = null; if (before) { newNode = CurrentNode.InsertNodesBefore(currentStatement, statementNodes); } else { newNode = CurrentNode.InsertNodesAfter(currentStatement, statementNodes); } Replace(CurrentNode, newNode, null); var annotatedNode = CurrentNode.GetAnnotatedNodes(annotation).First(); if (annotatedNode != null) { NextStep(annotatedNode); } }