static SeparatedSyntaxList<VariableDeclaratorSyntax> RemodelVariableDeclaration(CSS.VariableDeclarationSyntax declaration, NodesVisitor nodesVisitor) { var type = (TypeSyntax)declaration.Type.Accept(nodesVisitor); var declaratorsWithoutInitializers = new List<CSS.VariableDeclaratorSyntax>(); var declarators = new List<VariableDeclaratorSyntax>(); foreach (var v in declaration.Variables) { if (v.Initializer == null) { declaratorsWithoutInitializers.Add(v); continue; } else { declarators.Add( SyntaxFactory.VariableDeclarator( SyntaxFactory.SingletonSeparatedList(ExtractIdentifier(v)), declaration.Type.IsVar ? null : SyntaxFactory.SimpleAsClause(type), SyntaxFactory.EqualsValue((ExpressionSyntax)v.Initializer.Value.Accept(nodesVisitor)) ) ); } } if (declaratorsWithoutInitializers.Count > 0) { declarators.Insert(0, SyntaxFactory.VariableDeclarator(SyntaxFactory.SeparatedList(declaratorsWithoutInitializers.Select(ExtractIdentifier)), SyntaxFactory.SimpleAsClause(type), null)); } return SyntaxFactory.SeparatedList(declarators); }
static ModifiedIdentifierSyntax ExtractIdentifier(CSS.VariableDeclaratorSyntax v) { return SyntaxFactory.ModifiedIdentifier(ConvertIdentifier(v.Identifier)); }
static ModifiedIdentifierSyntax ExtractIdentifier(CSS.VariableDeclaratorSyntax v) { var id = SyntaxFactory.Identifier(v.Identifier.ValueText, SyntaxFacts.IsKeywordKind(v.Identifier.Kind()), v.Identifier.GetIdentifierText(), TypeCharacter.None); return SyntaxFactory.ModifiedIdentifier(id); }