/// <summary>
 /// Removes all comments from member.
 /// </summary>
 public void ClearComments()
 {
     SummaryComments = new DotNetCommentGroup();
     RemarksComments = new DotNetCommentGroup();
     PermissionComments.Clear();
     ExampleComments.Clear();
     ExceptionComments.Clear();
     ParameterComments.Clear();
     TypeParameterComments.Clear();
     ValueComments    = new DotNetCommentGroup();
     ReturnsComments  = new DotNetCommentGroup();
     FloatingComments = new DotNetCommentGroup();
 }
        /// <summary>Parses .Net XML documentation listheader or item.</summary>
        /// <example>
        /// Format options:
        /// <![CDATA[
        ///   <listheader>
        ///     plain text
        ///   </listheader>
        ///   <listheader>
        ///     <term>Term</term>
        ///   </listheader>
        ///   <listheader>
        ///     <description>Description</description>
        ///   </listheader>
        ///   <listheader>
        ///     <term>Term</term>
        ///     <description>Description</description>
        ///   </listheader>
        /// ]]>
        /// </example>
        /// <example>
        /// Format options:
        /// <![CDATA[
        ///   <item>
        ///     plain text
        ///   </item>
        ///   <item>
        ///     <term>Term</term>
        ///   </item>
        ///   <item>
        ///     <description>Description</description>
        ///   </item>
        ///   <item>
        ///     <term>Term</term>
        ///     <description>Description</description>
        ///   </item>
        /// ]]>
        /// </example>
        public static DotNetCommentListItem FromVisualStudioXml(XElement element)
        {
            if (!DotNetComment.IsXmlTag(element, new string[] { "listheader", "item" }))
            {
                return(new DotNetCommentListItem());
            }

            bool isHeader                  = (element.Name.LocalName == "listheader");
            DotNetCommentGroup term        = null;
            DotNetCommentGroup description = null;

            foreach (XNode node in element.Nodes())
            {
                if (node.NodeType == XmlNodeType.Text)
                {
                    if (Utilities.XNodeToString(node).IsAllWhitespace())
                    {
                        continue;
                    }
                    term = DotNetCommentGroup.FromVisualStudioXml(element);
                    break;
                }
                if (node.NodeType == XmlNodeType.Element)
                {
                    XElement child = (node as XElement);
                    switch (child.Name.LocalName)
                    {
                    case "term": term = DotNetCommentGroup.FromVisualStudioXml(child); break;

                    case "description": description = DotNetCommentGroup.FromVisualStudioXml(child); break;
                    }
                }
            }

            return(new DotNetCommentListItem(term, description, isHeader));
        }
 /// <summary><paramref name='term'/> and <paramref name='description'/> containing more than plain text, such as a <c>see</c> tag.</summary>
 public DotNetCommentListItem(DotNetCommentGroup term, DotNetCommentGroup description = null, bool isHeader = false)
 {
     Term        = term;
     Description = description;
     IsHeader    = isHeader;
 }
 /// <summary>Plain text <paramref name='term'/> and <paramref name='description'/>.</summary>
 public DotNetCommentListItem(string term, string description = null, bool isHeader = false)
 {
     Term        = new DotNetCommentGroup(new DotNetCommentText(term));
     Description = new DotNetCommentGroup(new DotNetCommentText(description));
     IsHeader    = isHeader;
 }
 /// <summary></summary>
 public DotNetCommentListItem()
 {
     Term        = null;
     Description = null;
     IsHeader    = false;
 }
Example #6
0
        /// <summary>Parses top-level .Net XML documentation comments. Returns null if no comments are found.</summary>
        /// <returns>Returns null if the element name is not recognized.</returns>
        public static DotNetComment FromVisualStudioXml(XElement element)
        {
            switch (element.Name.LocalName)
            {
            case "summary":
            case "remarks":
            case "example":
            case "para":                     //paragraph
            case "returns":
            case "value":
                DotNetCommentGroup group = DotNetCommentGroup.FromVisualStudioXml(element);
                if (group.IsEmpty)
                {
                    return(null);
                }
                return(group);

            case "exception":
            case "permission":
                if (element.Attribute("cref") == null)
                {
                    break;
                }
                if (String.IsNullOrEmpty(element.Attribute("cref").Value))
                {
                    break;
                }
                return(DotNetCommentQualifiedLinkedGroup.FromVisualStudioXml(element));

            case "see":
            case "seealso":
                if (element.Attribute("cref") == null)
                {
                    break;
                }
                if (String.IsNullOrEmpty(element.Attribute("cref").Value))
                {
                    break;
                }
                if (element.Nodes().Count() == 0)
                {
                    return(DotNetCommentQualifiedLink.FromVisualStudioXml(element));
                }
                else
                {
                    return(DotNetCommentQualifiedLinkedGroup.FromVisualStudioXml(element));
                }

            case "list":
                return(DotNetCommentList.FromVisualStudioXml(element));

            case "param":
                return(DotNetCommentParameter.FromVisualStudioXml(element));

            case "paramref":
                return(DotNetCommentParameterLink.FromVisualStudioXml(element));

            case "typeparam":
                return(DotNetCommentTypeParameter.FromVisualStudioXml(element));

            case "typeparamref":
                return(DotNetCommentTypeParameterLink.FromVisualStudioXml(element));

            case "c":                     //inline code
                return(DotNetCommentCode.FromVisualStudioXml(element));

            case "code":                     //code block
                return(DotNetCommentCodeBlock.FromVisualStudioXml(element));

            case "inheritdoc":
                return(new DotNetCommentInherit());

            case "duplicate":
                if (element.Attribute("cref") == null)
                {
                    break;
                }
                string duplicateCref = element.Attribute("cref").Value;
                if (String.IsNullOrEmpty(duplicateCref))
                {
                    break;
                }
                return(new DotNetCommentDuplicate(DotNetCommentQualifiedLink.FromVisualStudioXml(duplicateCref)));
            }
            return(null);
        }