private void CreateCSharpHeadNode(SyntaxNode root) { var nodeType = TypeConversion.FromRoslynKind(root.Kind()); string name = Extractors.ExtractName(root); Head = new CSharpNode(name, nodeType) { Visibility = Configuration.Visibility }; }
private void InsertNodeInTree(SyntaxNode node) { SyntaxKind topLevelKind = node.Kind(); bool isReadonly = false; string name = ""; TypeWrapper type = new TypeWrapper(); SyntaxNode[] children = node.ChildNodes().ToArray(); if (children.Length < 1) { return; } switch (topLevelKind) { case SyntaxKind.PropertyDeclaration: type = Extractors.ExtractTypesFromProperty(GetPropertyTypeNode(node)); name = Extractors.ExtractName(node); isReadonly = Extractors.IsReadOnly(node); break; case SyntaxKind.FieldDeclaration: SyntaxNode firstChild = children.First(); type = Extractors.ExtractTypesFromField(firstChild); name = Extractors.ExtractName(firstChild); break; case SyntaxKind.MethodDeclaration: /*TODO: Method, can have multiple return/parameters type. Handle that when needed*/ break; } var csharpNode = new CSharpNode(name, TypeConversion.FromRoslynKind(topLevelKind)) { Type = type, IsReadOnly = isReadonly }; Head.Children.Add(csharpNode); }