Skip to content

Commit 44eac36

Browse files
committed
Remove unnecessary para tags which appear as the single element of a <summary> element
1 parent ccaab49 commit 44eac36

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

OpenStackNetAnalyzers/OpenStackNetAnalyzers/RenderAsMarkdownCodeFix.cs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,22 @@ private async Task<Document> CreateChangedDocument(CodeFixContext context, Docum
139139
private SyntaxNode MarkUnnecessaryParagraphs(SyntaxNode originalNode, SyntaxNode rewrittenNode)
140140
{
141141
XmlElementSyntax elementSyntax = rewrittenNode as XmlElementSyntax;
142-
if (!IsUnnecessaryParaElement(elementSyntax))
143-
return rewrittenNode;
142+
if (IsUnnecessaryParaElement(elementSyntax))
143+
return elementSyntax.WithAdditionalAnnotations(UnnecessaryParagraphAnnotation);
144+
145+
if (string.Equals("summary", elementSyntax?.StartTag?.Name?.ToString(), StringComparison.Ordinal))
146+
{
147+
SyntaxList<XmlNodeSyntax> trimmedContent = elementSyntax.Content.WithoutFirstAndLastNewlines();
148+
if (trimmedContent.Count == 1
149+
&& IsParaElement(trimmedContent[0] as XmlElementSyntax)
150+
&& !HasAttributes(trimmedContent[0] as XmlElementSyntax))
151+
{
152+
XmlNodeSyntax paraToRemove = elementSyntax.Content.GetFirstXmlElement("para");
153+
return elementSyntax.ReplaceNode(paraToRemove, paraToRemove.WithAdditionalAnnotations(UnnecessaryParagraphAnnotation));
154+
}
155+
}
144156

145-
return elementSyntax.WithAdditionalAnnotations(UnnecessaryParagraphAnnotation);
157+
return rewrittenNode;
146158
}
147159

148160
private SyntaxNode RemoveUnnecessaryParagraphs(XmlElementSyntax originalNode, XmlElementSyntax rewrittenNode)
@@ -203,7 +215,7 @@ private static bool HasLooseContent(SyntaxList<XmlNodeSyntax> content)
203215

204216
private static bool HasAttributes(XmlElementSyntax syntax)
205217
{
206-
return syntax.StartTag?.Attributes.Count > 0;
218+
return syntax?.StartTag?.Attributes.Count > 0;
207219
}
208220

209221
private static bool IsParaElement(XmlElementSyntax syntax)

0 commit comments

Comments
 (0)