Skip to content

Commit fe781bc

Browse files
committed
Add blank line filtering to XmlSyntaxFactory.MultiLineElement
1 parent 065af6a commit fe781bc

4 files changed

Lines changed: 28 additions & 9 deletions

File tree

StyleCop.Analyzers/StyleCop.Analyzers.Test/DocumentationRules/SA1600UnitTests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -726,7 +726,7 @@ public Task<T> TestMethod6<T>(T param1, int param2)
726726
public {typeKeyword} Test
727727
{{
728728
/// <summary>
729-
///
729+
///
730730
/// </summary>
731731
/// <returns>A <see cref=""Task""/> representing the result of the asynchronous operation.</returns>
732732
public Task TestMethod1()
@@ -735,7 +735,7 @@ public Task TestMethod1()
735735
}}
736736
737737
/// <summary>
738-
///
738+
///
739739
/// </summary>
740740
/// <returns>A <see cref=""Task{{TResult}}""/> representing the result of the asynchronous operation.</returns>
741741
public Task<int> TestMethod2()
@@ -744,7 +744,7 @@ public Task<int> TestMethod2()
744744
}}
745745
746746
/// <summary>
747-
///
747+
///
748748
/// </summary>
749749
/// <typeparam name=""T""></typeparam>
750750
/// <returns>A <see cref=""Task{{TResult}}""/> representing the result of the asynchronous operation.</returns>
@@ -754,7 +754,7 @@ public Task<T> TestMethod3<T>()
754754
}}
755755
756756
/// <summary>
757-
///
757+
///
758758
/// </summary>
759759
/// <param name=""param1""></param>
760760
/// <param name=""param2""></param>
@@ -765,7 +765,7 @@ public Task TestMethod4(int param1, int param2)
765765
}}
766766
767767
/// <summary>
768-
///
768+
///
769769
/// </summary>
770770
/// <param name=""param1""></param>
771771
/// <param name=""param2""></param>
@@ -776,7 +776,7 @@ public Task<int> TestMethod5(int param1, int param2)
776776
}}
777777
778778
/// <summary>
779-
///
779+
///
780780
/// </summary>
781781
/// <typeparam name=""T""></typeparam>
782782
/// <param name=""param1""></param>

StyleCop.Analyzers/StyleCop.Analyzers.Test/DocumentationRules/SA1609UnitTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ public class ClassName
270270
/// <summary>
271271
/// </summary>
272272
/// <value>
273-
///
273+
///
274274
/// </value>
275275
public int Property
276276
{

StyleCop.Analyzers/StyleCop.Analyzers.Test/HelperTests/XmlSyntaxFactoryTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public void TestSummaryElement()
5757
Assert.Equal(expected, XmlSyntaxFactory.SummaryElement("\r\n", XmlSyntaxFactory.Text("Summary.")).ToFullString());
5858
}
5959

60-
[Fact(Skip = "https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/2672")]
60+
[Fact]
6161
[WorkItem(2672, "https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/2672")]
6262
public void TestEmptySummaryElement()
6363
{

StyleCop.Analyzers/StyleCop.Analyzers/Helpers/XmlSyntaxFactory.cs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,28 @@ public static XmlElementSyntax MultiLineElement(string localName, string newLine
2525

2626
public static XmlElementSyntax MultiLineElement(XmlNameSyntax name, string newLineText, SyntaxList<XmlNodeSyntax> content)
2727
{
28+
var newContent = content.Insert(0, NewLine(newLineText)).Add(NewLine(newLineText));
29+
30+
for (var i = 1; i < newContent.Count; i++)
31+
{
32+
if (newContent[i] is XmlTextSyntax xmlTextSyntax
33+
&& xmlTextSyntax.TextTokens[0].ValueText == newLineText)
34+
{
35+
var previousTrailingTrivia = newContent[i - 1].GetTrailingTrivia();
36+
if (previousTrailingTrivia.Count > 0)
37+
{
38+
var lastTrivia = previousTrailingTrivia.Last();
39+
var updatedLastTriviaText = lastTrivia.ToString().TrimEnd(' ', '\t');
40+
41+
var updatedTrailingTrivia = previousTrailingTrivia.Replace(lastTrivia, SyntaxFactory.SyntaxTrivia(lastTrivia.Kind(), updatedLastTriviaText));
42+
newContent = newContent.Replace(newContent[i - 1], newContent[i - 1].WithTrailingTrivia(updatedTrailingTrivia));
43+
}
44+
}
45+
}
46+
2847
return SyntaxFactory.XmlElement(
2948
SyntaxFactory.XmlElementStartTag(name),
30-
content.Insert(0, NewLine(newLineText)).Add(NewLine(newLineText)),
49+
newContent,
3150
SyntaxFactory.XmlElementEndTag(name));
3251
}
3352

0 commit comments

Comments
 (0)