public override SyntaxList <StatementSyntax> VisitLocalDeclarationStatement(VBSyntax.LocalDeclarationStatementSyntax node) { var modifiers = CommonConversions.ConvertModifiers(node.Declarators[0].Names[0], node.Modifiers, TokenContext.Local); var isConst = modifiers.Any(a => a.Kind() == SyntaxKind.ConstKeyword); var declarations = new List <LocalDeclarationStatementSyntax>(); foreach (var declarator in node.Declarators) { foreach (var decl in CommonConversions.SplitVariableDeclarations(declarator, preferExplicitType: isConst)) { declarations.Add(SyntaxFactory.LocalDeclarationStatement(modifiers, decl.Value)); } } return(SyntaxFactory.List <StatementSyntax>(declarations)); }
public override SyntaxNode VisitLocalDeclarationStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.LocalDeclarationStatementSyntax node) { if (_methodName == null) { return(node); } if (node.Declarators.Count > 1 || node.Declarators.First().Names.Count > 1) { return(node); } var identifier = node.Declarators.First().Names.Single().Identifier.ValueText; if (!s_validIdentifierNames.Contains(identifier)) { return(node); } Console.WriteLine($"Fixing {_methodName}"); var oldInitializer = (Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlCDataSectionSyntax) ((Microsoft.CodeAnalysis.VisualBasic.Syntax.MemberAccessExpressionSyntax)node.Declarators.Single().Initializer.Value).Expression; var cdataOpen = oldInitializer.BeginCDataToken; var cdataClose = oldInitializer.EndCDataToken; var xmlTokens = new List <SyntaxToken> { Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.XmlTextLiteralToken(Environment.NewLine, "") }; foreach (var line in replaceDetails[_methodName].Split('\n')) { var trimmedLine = line.Replace("\r", "") + Environment.NewLine; xmlTokens.Add(Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.XmlTextLiteralToken(trimmedLine, Environment.NewLine)); } var newInitializer = Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.XmlCDataSection( cdataOpen, Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.TokenList(xmlTokens), cdataClose); replaceDetails.Remove(_methodName); _methodName = null; return(node.ReplaceNode(oldInitializer, newInitializer)); }
public override SyntaxList <StatementSyntax> VisitLocalDeclarationStatement(VBSyntax.LocalDeclarationStatementSyntax node) { var modifiers = VisualBasicConverter.ConvertModifiers(node.Modifiers, TokenContext.Local); var declarations = new List <LocalDeclarationStatementSyntax>(); foreach (var declarator in node.Declarators) { foreach (var decl in VisualBasicConverter.SplitVariableDeclarations(declarator, _nodesVisitor, _semanticModel)) { declarations.Add(SyntaxFactory.LocalDeclarationStatement(modifiers, decl.Value)); } } return(SyntaxFactory.List <StatementSyntax>(declarations)); }
public override SyntaxList <StatementSyntax> VisitLocalDeclarationStatement(VBSyntax.LocalDeclarationStatementSyntax node) => AddLocalVariables(node);