Exemple #1
0
        public override SyntaxNode VisitEnumDeclaration(EnumDeclarationSyntax node)
        {
            _enumMembers.Clear();

            Builder.AppendLine($"### {node.Identifier.Text} reference");

            var documentation = node.GetDocumentation();
            var summary       = documentation.GetSummary();

            if (!string.IsNullOrWhiteSpace(summary))
            {
                Builder.AppendLine(summary);
            }

            var result = base.VisitEnumDeclaration(node);

            if (_enumMembers.Any())
            {
                Builder.AppendLine("<table>");
                Builder.AppendLine("  <tr>");
                Builder.AppendLine("    <th width=\"45\"></th>");
                Builder.AppendLine("    <th>Name</th>");
                Builder.AppendLine("    <th>Description</th>");
                Builder.AppendLine("  </tr>");

                foreach (var enumMember in _enumMembers)
                {
                    var enumDocumentation = enumMember.GetDocumentation();
                    var enumSummary       = enumDocumentation.GetSummary();

                    Builder.AppendLine("  <tr>");
                    Builder.AppendLine($"   <td>{enumMember.Identifier.Text}</td>");
                    Builder.AppendLine($"   <td>{enumSummary ?? string.Empty}</td>");
                    Builder.AppendLine("  </tr>");
                }

                Builder.AppendLine("</table>");
            }
            return(result);
        }