internal static JavadocInfo FinishParse(AstContext context, ParseTreeNode parseNode) { const string key = ".__JavadocInfo"; if (!context.Values.TryGetValue(key, out var r)) { context.Values.Add(key, r = new JavadocInfo()); } parseNode.Tag = r; return((JavadocInfo)r); }
static XElement?CreateSummaryNode(JavadocInfo info) { var summaryNode = info.Remarks.FirstOrDefault(); if (summaryNode == null) { return(null); } if (summaryNode is XElement p) { var summaryItems = new List <object> (); for (var n = p.FirstNode; n != null; n = n.NextNode) { if (n is XText text) { var tdot = text.Value.IndexOf('.'); if (tdot < 0) { summaryItems.Add(n); continue; } summaryItems.Add(text.Value.Substring(0, tdot + 1)); break; } summaryItems.Add(n); } return(new XElement("summary", summaryItems)); } var content = summaryNode.ToString(); if (string.IsNullOrWhiteSpace(content)) { return(null); } var dot = content.IndexOf('.'); if (dot <= 0) { return(new XElement("summary", content)); } return(new XElement("summary", content.Substring(0, dot + 1))); }