public Method(string name, string apiCalls, MethodCommentInfo methodCommentInfo) { Name = name; FullComment = methodCommentInfo.FullComment; FirstSummarySentence = methodCommentInfo.FirstSentence; ApiCalls = apiCalls; CommentIsXml = methodCommentInfo.IsXml; SampledAt = DateTime.Now; }
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); }