提交 83b6e847 编写于 作者: A Abraham Hosch

Add CS1572 to the list of fixable diagnostics. Modify my method of finding...

Add CS1572 to the list of fixable diagnostics.  Modify my method of finding the correct node slightly.
上级 23a14d31
......@@ -236,6 +236,32 @@ public async Task RemovesDuplicateTypeparamTag()
await TestAsync(initial, expected);
}
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsRemoveDocCommentNode)]
public async Task RemovesParamTagWithNoMatchingParameter()
{
var initial =
@"class Program
{
/// <summary>
///
/// </summary>
/// <param name=""[|val|]""></param>
public void Fizz(int value) {}
}
";
var expected =
@"class Program
{
/// <summary>
///
/// </summary>
public void Fizz(int value) {}
}
";
await TestAsync(initial, expected);
}
[Fact]
[Trait(Traits.Feature, Traits.Features.CodeActionsRemoveDocCommentNode)]
[Trait(Traits.Feature, Traits.Features.CodeActionsFixAllOccurrences)]
......
......@@ -17,19 +17,21 @@ internal class CSharpRemoveDocCommentNodeCodeFixProvider : AbstractRemoveDocComm
/// </summary>
internal const string CS1571 = nameof(CS1571);
/// <summary>
/// Param tag with no matching parameter
/// </summary>
internal const string CS1572 = nameof(CS1572);
/// <summary>
/// Duplicate typeparam tag
/// </summary>
internal const string CS1710 = nameof(CS1710);
public override ImmutableArray<string> FixableDiagnosticIds { get; } = ImmutableArray.Create(CS1571, CS1710);
public override ImmutableArray<string> FixableDiagnosticIds { get; } = ImmutableArray.Create(CS1571, CS1572, CS1710);
protected override string DocCommentSignifierToken { get; } = "///";
protected override SyntaxTriviaList GetRevisedDocCommentTrivia(string docCommentText)
=> SyntaxFactory.ParseLeadingTrivia(docCommentText);
protected override SyntaxNode GetDocCommentElementNode(SyntaxNode fullDocComentNode, TextSpan span)
=> fullDocComentNode.FindNode(span).Parent.Parent;
}
}
\ No newline at end of file
......@@ -21,7 +21,6 @@ internal abstract class AbstractRemoveDocCommentNodeCodeFixProvider : CodeFixPro
protected abstract string DocCommentSignifierToken { get; }
protected abstract SyntaxTriviaList GetRevisedDocCommentTrivia(string docCommentText);
protected abstract SyntaxNode GetDocCommentElementNode(SyntaxNode fullDocComentNode, TextSpan span);
public sealed override Task RegisterCodeFixesAsync(CodeFixContext context)
{
......@@ -41,7 +40,7 @@ private async Task<Document> RemoveDuplicateParamTagAsync(Document document, Tex
var triviaNodeStructure = triviaNode.GetStructure();
var paramNode = GetDocCommentElementNode(triviaNodeStructure, span);
var paramNode = triviaNodeStructure.ChildNodes().Single(s => s.Span.Contains(span));
var removedNodes = new List<SyntaxNode> { paramNode };
var triviaNodeStructureChildren = triviaNodeStructure.ChildNodes().ToList();
......
......@@ -47,9 +47,5 @@ Namespace Microsoft.CodeAnalysis.DiagnosticComments.CodeFixes
Protected Overrides Function GetRevisedDocCommentTrivia(docCommentText As String) As SyntaxTriviaList
Return SyntaxFactory.ParseLeadingTrivia(docCommentText)
End Function
Protected Overrides Function GetDocCommentElementNode(fullDocComentNode As SyntaxNode, span As TextSpan) As SyntaxNode
Return fullDocComentNode.FindNode(span)
End Function
End Class
End Namespace
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册