From 400c04ebe5881eaa0ea9a39f62c6508d32700b05 Mon Sep 17 00:00:00 2001 From: Youssef1313 Date: Wed, 26 Jan 2022 22:45:34 +0200 Subject: [PATCH 1/2] Insert documentation comments only on supported declarations --- .../DocumentationCommentTests.cs | 20 +++++++++++++++++++ ...SharpDocumentationCommentSnippetService.cs | 3 --- ...tractDocumentationCommentSnippetService.cs | 3 +-- ...BasicDocumentationCommentSnippetService.vb | 4 ---- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/EditorFeatures/CSharpTest/DocumentationComments/DocumentationCommentTests.cs b/src/EditorFeatures/CSharpTest/DocumentationComments/DocumentationCommentTests.cs index c03108654b299..7e483ec2079f6 100644 --- a/src/EditorFeatures/CSharpTest/DocumentationComments/DocumentationCommentTests.cs +++ b/src/EditorFeatures/CSharpTest/DocumentationComments/DocumentationCommentTests.cs @@ -706,6 +706,26 @@ public void TypingCharacter_NotInsideCtor() VerifyTypingCharacter(code, expected); } + [WpfFact, Trait(Traits.Feature, Traits.Features.DocumentationComments)] + public void TypingCharacter_NotInTopLevel() + { + var code = @" +using System; + +//$$ +Console.WriteLine(); +"; + + var expected = @" +using System; + +///$$ +Console.WriteLine(); +"; + + VerifyTypingCharacter(code, expected); + } + [WpfFact, Trait(Traits.Feature, Traits.Features.DocumentationComments)] public void PressingEnter_InsertComment_Class1() { diff --git a/src/Features/CSharp/Portable/DocumentationComments/CSharpDocumentationCommentSnippetService.cs b/src/Features/CSharp/Portable/DocumentationComments/CSharpDocumentationCommentSnippetService.cs index 80490248ed78b..478c975007d3d 100644 --- a/src/Features/CSharp/Portable/DocumentationComments/CSharpDocumentationCommentSnippetService.cs +++ b/src/Features/CSharp/Portable/DocumentationComments/CSharpDocumentationCommentSnippetService.cs @@ -94,9 +94,6 @@ protected override int GetPrecedingDocumentationCommentCount(MemberDeclarationSy return count; } - protected override bool IsMemberDeclaration(MemberDeclarationSyntax member) - => true; - protected override List GetDocumentationCommentStubLines(MemberDeclarationSyntax member) { var list = new List diff --git a/src/Features/Core/Portable/DocumentationComments/AbstractDocumentationCommentSnippetService.cs b/src/Features/Core/Portable/DocumentationComments/AbstractDocumentationCommentSnippetService.cs index 65d4fc8dd6a12..cca2980bbcff9 100644 --- a/src/Features/Core/Portable/DocumentationComments/AbstractDocumentationCommentSnippetService.cs +++ b/src/Features/Core/Portable/DocumentationComments/AbstractDocumentationCommentSnippetService.cs @@ -21,7 +21,6 @@ internal abstract class AbstractDocumentationCommentSnippetService GetDocumentationCommentStubLines(TMemberNode member); protected abstract SyntaxToken GetTokenToRight(SyntaxTree syntaxTree, int position, CancellationToken cancellationToken); @@ -151,7 +150,7 @@ public bool IsValidTargetMember(SyntaxTree syntaxTree, SourceText text, int posi { var targetMember = documentationComment.ParentTrivia.Token.GetAncestor(); - if (targetMember == null || !IsMemberDeclaration(targetMember)) + if (targetMember == null || !SupportsDocumentationComments(targetMember)) { return null; } diff --git a/src/Features/VisualBasic/Portable/DocumentationComments/VisualBasicDocumentationCommentSnippetService.vb b/src/Features/VisualBasic/Portable/DocumentationComments/VisualBasicDocumentationCommentSnippetService.vb index 9fb38c283f28a..3785554dfbc0f 100644 --- a/src/Features/VisualBasic/Portable/DocumentationComments/VisualBasicDocumentationCommentSnippetService.vb +++ b/src/Features/VisualBasic/Portable/DocumentationComments/VisualBasicDocumentationCommentSnippetService.vb @@ -109,10 +109,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.DocumentationComments Return count End Function - Protected Overrides Function IsMemberDeclaration(member As DeclarationStatementSyntax) As Boolean - Return member.IsMemberDeclaration() - End Function - Protected Overrides Function GetDocumentationCommentStubLines(member As DeclarationStatementSyntax) As List(Of String) Dim list = New List(Of String) From { "''' ", From 6f1beb9e04c78723926dbca351767cc05c9978d7 Mon Sep 17 00:00:00 2001 From: Youssef Victor Date: Wed, 26 Jan 2022 23:06:53 +0200 Subject: [PATCH 2/2] Update DocumentationCommentTests.cs --- .../DocumentationCommentTests.cs | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/EditorFeatures/CSharpTest/DocumentationComments/DocumentationCommentTests.cs b/src/EditorFeatures/CSharpTest/DocumentationComments/DocumentationCommentTests.cs index 7e483ec2079f6..e5515ce20e2c8 100644 --- a/src/EditorFeatures/CSharpTest/DocumentationComments/DocumentationCommentTests.cs +++ b/src/EditorFeatures/CSharpTest/DocumentationComments/DocumentationCommentTests.cs @@ -706,6 +706,7 @@ public void TypingCharacter_NotInsideCtor() VerifyTypingCharacter(code, expected); } + [WorkItem(59081, "https://github.com/dotnet/roslyn/issues/59081")] [WpfFact, Trait(Traits.Feature, Traits.Features.DocumentationComments)] public void TypingCharacter_NotInTopLevel() { @@ -726,6 +727,27 @@ public void TypingCharacter_NotInTopLevel() VerifyTypingCharacter(code, expected); } + [WorkItem(59081, "https://github.com/dotnet/roslyn/issues/59081")] + [WpfFact, Trait(Traits.Feature, Traits.Features.DocumentationComments)] + public void TypingCharacter_NotInNamespace() + { + var code = @" +using System; + +//$$ +namespace NS { } +"; + + var expected = @" +using System; + +///$$ +namespace NS { } +"; + + VerifyTypingCharacter(code, expected); + } + [WpfFact, Trait(Traits.Feature, Traits.Features.DocumentationComments)] public void PressingEnter_InsertComment_Class1() {