Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
            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));
            }
Exemplo n.º 3
0
            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));
            }
Exemplo n.º 4
0
 public override SyntaxList <StatementSyntax> VisitLocalDeclarationStatement(VBSyntax.LocalDeclarationStatementSyntax node) => AddLocalVariables(node);