Пример #1
0
 public Method(string name, string apiCalls, MethodCommentInfo methodCommentInfo)
 {
     Name                 = name;
     FullComment          = methodCommentInfo.FullComment;
     FirstSummarySentence = methodCommentInfo.FirstSentence;
     ApiCalls             = apiCalls;
     CommentIsXml         = methodCommentInfo.IsXml;
     SampledAt            = DateTime.Now;
 }
Пример #2
0
        public static Dictionary <MethodDeclarationSyntax, MethodCommentInfo> ExtractSummaryComments(
            List <MethodDeclarationSyntax> methodDeclarations)
        {
            var methodComments =
                new Dictionary <MethodDeclarationSyntax, MethodCommentInfo>();

            foreach (var method in methodDeclarations)
            {
                var xmlTrivia = method.GetLeadingTrivia()
                                .Select(i => i.GetStructure())
                                .OfType <DocumentationCommentTriviaSyntax>()
                                .FirstOrDefault();
                if (xmlTrivia == null)
                {
                    var fullString = method.GetLeadingTrivia().ToFullString();
                    if (!fullString.Contains("//"))
                    {
                        continue;
                    }
                    fullString             = CleanString(fullString).Replace("//", "");
                    methodComments[method] = new MethodCommentInfo(fullString, null, false);
                    continue;
                }
                var fullComment = xmlTrivia.Content.ToString();
                if (fullComment.StartsWith(" <summary>\r\n\t\t/// Clean up any resources being used.") ||
                    fullComment.StartsWith(
                        " <summary>\r\n\t\t/// Required method for Designer support - do not modify"))
                {
                    continue;
                }
                var summary = xmlTrivia.ChildNodes()
                              .OfType <XmlElementSyntax>()
                              .FirstOrDefault(i => i.StartTag.Name.ToString().Equals("summary"));
                if (summary == null)
                {
                    methodComments[method] = new MethodCommentInfo(fullComment, null, true);
                    continue;
                }

                var stringComment = summary.Content.ToString();
                stringComment = CleanString(stringComment);
                if (stringComment.Length < 3)
                {
                    continue;
                }
                methodComments[method] = new MethodCommentInfo(fullComment, stringComment, true);
            }
            return(methodComments);
        }