@@ -51,61 +51,22 @@ private static IEnumerable<Tuple<string, string>> GetNameDataPairs(string source
5151 }
5252
5353
54-
5554 private void UpdateEnum ( string sourceFile )
5655 {
5756 var sourceText = SourceText . From ( new FileStream ( sourceFile , FileMode . Open ) ) ;
5857 var syntaxTree = CSharpSyntaxTree . ParseText ( sourceText ) ;
5958
60- var newSyntaxTree = CSharpSyntaxTree . ParseText ( "Red, Green, Blue" ) ;
61- var syntaxNodes = newSyntaxTree . GetRoot ( ) . ChildNodes ( ) . ToList ( ) ;
62-
63- var enumDeclarationSyntax = syntaxTree . GetRoot ( ) . ChildNodes ( )
64- //should be the root name space
65- . Single ( )
66- . ChildNodes ( ) . OfType < EnumDeclarationSyntax > ( )
67- . Last ( ) ;
68-
59+ var rootNode = syntaxTree . GetRoot ( ) ;
60+ var namespaceDeclarationNode = rootNode . ChildNodes ( ) . Single ( ) ;
61+ var enumDeclarationSyntaxNode = namespaceDeclarationNode . ChildNodes ( ) . OfType < EnumDeclarationSyntax > ( ) . Single ( ) ;
6962
70- var emptyEnumDeclarationSyntax = enumDeclarationSyntax . RemoveNodes ( enumDeclarationSyntax . ChildNodes ( ) . OfType < EnumMemberDeclarationSyntax > ( ) , SyntaxRemoveOptions . KeepNoTrivia ) ;
71-
72- var generatedEnumDeclarationSyntax = emptyEnumDeclarationSyntax . AddMembers (
63+ var emptyEnumDeclarationSyntaxNode = enumDeclarationSyntaxNode . RemoveNodes ( enumDeclarationSyntaxNode . ChildNodes ( ) . OfType < EnumMemberDeclarationSyntax > ( ) , SyntaxRemoveOptions . KeepNoTrivia ) ;
64+ var generatedEnumDeclarationSyntax = emptyEnumDeclarationSyntaxNode . AddMembers (
7365 SyntaxFactory . EnumMemberDeclaration ( "Aston" ) ,
7466 SyntaxFactory . EnumMemberDeclaration ( "Villa" ) ) ;
7567
76- var generatedSyntaxTree = generatedEnumDeclarationSyntax . SyntaxTree ;
77-
78- var rootSyntaxNode = enumDeclarationSyntax . SyntaxTree . GetRoot ( ) ;
79- var replaceNode = rootSyntaxNode . ReplaceNode ( rootSyntaxNode . ChildNodes ( ) . Single ( ) , generatedSyntaxTree . GetRoot ( ) ) ;
80-
81-
82-
83- var modifiedSyntaxTree = syntaxTree . GetRoot ( ) . ReplaceNode ( emptyEnumDeclarationSyntax , generatedEnumDeclarationSyntax ) ;
84-
85-
86- var nodes = emptyEnumDeclarationSyntax . ChildNodes ( ) . ToList ( ) ;
87- //emptyEnumDeclarationSyntax.InsertNodesAfter()
88-
89-
90-
91- //emptyEnumDeclarationSyntax.AddMembers(new EnumMemberDeclarationSyntax(new CSharpSyntaxNode(new GreenNode(), ))
92-
93- //enumDeclarationSyntax.ReplaceNodes(enumDeclarationSyntax.ChildNodes().OfType<EnumMemberDeclarationSyntax>(), ).ReplaceSyntax(enumDeclarationSyntax.SyntaxTree,)
94-
95- // enumDeclarationSyntax.
96-
97- // enumDeclarationSyntax.Re
98-
99-
100-
101- //EnumMemberDeclarationSyntax.P
102-
103- //var enumMemberDeclarationSyntax = enumDeclarationSyntax.ChildNodes().OfType<EnumMemberDeclarationSyntax>().Single();
104-
105-
106-
107-
108- }
109-
68+ var generatedNamespaceDeclarationSyntaxNode = namespaceDeclarationNode . ReplaceNode ( enumDeclarationSyntaxNode , generatedEnumDeclarationSyntax ) ;
69+ var generatedRootNode = rootNode . ReplaceNode ( namespaceDeclarationNode , generatedNamespaceDeclarationSyntaxNode ) ;
70+ }
11071 }
11172}
0 commit comments