private void VisitCombinedClass(CombinedClass @class) { @class.ClassDeclarations.SelectMany(c => c.AttributeLists).Consume(VisitAttributeList); VisitXmlComment(@class.ClassDeclarations.SelectMany(c => c.GetLeadingTrivia())); var classType = this.ConvertClassesToInterfaces ? "interface" : "class"; var identifier = RewriteTypeName(@class.CSharpName); this.writer.WriteLine($"export {classType} {identifier} {{"); this.writer.Indent(); @class.ClassDeclarations.SelectMany(c => c.Members).Consume(VisitMemberDeclaration); this.writer.Unindent(); this.writer.WriteLine("}"); }
private void VisitClassDeclaration(ClassDeclarationSyntax classDecl) { if (IgnoreByModifier(classDecl.Modifiers)) { return; } if (this.mode == GeneratorMode.CollectClasses) { var className = classDecl.Identifier.Text; if (!this.collectedClasses.TryGetValue(className, out var combinedClass)) { combinedClass = new CombinedClass() { CSharpName = className, ClassDeclarations = new List <ClassDeclarationSyntax>(), }; this.collectedClasses[className] = combinedClass; } combinedClass.ClassDeclarations.Add(classDecl); } }