public override SyntaxNode VisitMethodBlock(MethodBlockSyntax node) { if (node.SubOrFunctionStatement.Identifier.ToString() == "_Execute") { var statements = m_userCode.GetRoot().ChildNodes();//.OfType<StatementSyntax>(); SyntaxList <SyntaxNode> syntaxList = new SyntaxList <SyntaxNode>(statements); return(base.VisitMethodBlock(node.WithStatements(syntaxList))); } else { return(base.VisitMethodBlock(node)); } }
public override SyntaxNode VisitMethodBlock(MethodBlockSyntax node) { for (int a = 0; a < node.Statements.Count; a++) { if (node.Statements[a].IsKind(SyntaxKind.LocalDeclarationStatement)) { var initInvocations = new SyntaxList <StatementSyntax>(); foreach (var d in (node.Statements[a] as LocalDeclarationStatementSyntax).Declarators) { if (StructuresWithInitializer.Contains( d?.AsClause?.Type().WithoutTrivia().ToString())) { foreach (var name in d.Names) { if (name.ArrayBounds != null) { initInvocations = initInvocations.Add(CreateInitializer(name.Identifier.ToFullString().Trim(), d.AsClause.Type().WithoutTrivia().ToString(), true)); } else { initInvocations = initInvocations.Add(CreateInitializer(name.Identifier.ToFullString().Trim(), d.AsClause.Type().WithoutTrivia().ToString(), false)); } } } } foreach (var i in initInvocations) { node = node.WithStatements(node.Statements.Insert(a + 1, i.WithTrailingTrivia(SyntaxFactory.SyntaxTrivia(SyntaxKind.EndOfLineTrivia, Environment.NewLine)))); } } } return(base.VisitMethodBlock(node)); }