Skip to content

Commit 8b8c015

Browse files
committed
able to generate enum now :) ...gotta figure out the formatting though
1 parent a2ff814 commit 8b8c015

File tree

1 file changed

+8
-47
lines changed

1 file changed

+8
-47
lines changed

mdresgen/IconThing.cs

Lines changed: 8 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)