diff --git a/src/EditorFeatures/Test2/IntelliSense/CSharpCompletionCommandHandlerTests_InternalsVisibleTo.vb b/src/EditorFeatures/Test2/IntelliSense/CSharpCompletionCommandHandlerTests_InternalsVisibleTo.vb index 032c106e8f20e8789e7626ed34d1c38245dafb1c..3a8655d54056761d78bcceca1a7e79929ef7b443 100644 --- a/src/EditorFeatures/Test2/IntelliSense/CSharpCompletionCommandHandlerTests_InternalsVisibleTo.vb +++ b/src/EditorFeatures/Test2/IntelliSense/CSharpCompletionCommandHandlerTests_InternalsVisibleTo.vb @@ -183,6 +183,11 @@ using System.Reflection; Await AssertCompletionListHasItems("[assembly: InternalsVisibleTo(assemblyName: ""$$, AllInternalsVisible = true)]", True) End Function + + Public Async Function AssertCompletionListHasNoItems_IfNumberIsEntered() As Task + Await AssertCompletionListHasItems("[assembly: InternalsVisibleTo(1$$2)]", False) + End Function + Public Async Function AssertCompletionListHasNoItems_IfNotInternalsVisibleToAttribute() As Task Await AssertCompletionListHasItems("[assembly: AssemblyVersion(""$$"")]", False) diff --git a/src/EditorFeatures/Test2/IntelliSense/VisualBasicCompletionCommandHandlerTests_InternalsVisibleTo.vb b/src/EditorFeatures/Test2/IntelliSense/VisualBasicCompletionCommandHandlerTests_InternalsVisibleTo.vb index 8913d0a0b3d5e19a658c43f2402bbc6d0b1bfb82..14007e9bfa8178f43ab302203f21b5db997fff21 100644 --- a/src/EditorFeatures/Test2/IntelliSense/VisualBasicCompletionCommandHandlerTests_InternalsVisibleTo.vb +++ b/src/EditorFeatures/Test2/IntelliSense/VisualBasicCompletionCommandHandlerTests_InternalsVisibleTo.vb @@ -182,6 +182,11 @@ Imports System.Reflection Await AssertCompletionListHasItems("", True) End Function + + Public Async Function AssertCompletionListHasNoItems_IfNumberIsEntered() As Task + Await AssertCompletionListHasItems("", False) + End Function + Public Async Function AssertCompletionListHasNoItems_IfNotInternalsVisibleToAttribute() As Task Await AssertCompletionListHasItems("", False) diff --git a/src/Features/CSharp/Portable/Completion/CompletionProviders/InternalsVisibleToCompletionProvider.cs b/src/Features/CSharp/Portable/Completion/CompletionProviders/InternalsVisibleToCompletionProvider.cs index 4d043add457caec03c9afce1f7304251395e3654..05de4de5c3f2ac9b92145122a3575208b2c76d63 100644 --- a/src/Features/CSharp/Portable/Completion/CompletionProviders/InternalsVisibleToCompletionProvider.cs +++ b/src/Features/CSharp/Portable/Completion/CompletionProviders/InternalsVisibleToCompletionProvider.cs @@ -8,7 +8,6 @@ namespace Microsoft.CodeAnalysis.CSharp.Completion.Providers { internal sealed class InternalsVisibleToCompletionProvider : AbstractInternalsVisibleToCompletionProvider { - protected override bool IsPositionEntirelyWithinStringLiteral(SyntaxTree syntaxTree, int position, CancellationToken cancellationToken) - => syntaxTree.IsEntirelyWithinStringLiteral(position, cancellationToken); + } } diff --git a/src/Features/Core/Portable/Completion/Providers/AbstractInternalsVisibleToCompletionProvider.cs b/src/Features/Core/Portable/Completion/Providers/AbstractInternalsVisibleToCompletionProvider.cs index 96e0b19999e6a4cce05d7f8f158c2888dbe3ad8a..14613b89dcc65c93551165cb0691180b22f8e2e6 100644 --- a/src/Features/Core/Portable/Completion/Providers/AbstractInternalsVisibleToCompletionProvider.cs +++ b/src/Features/Core/Portable/Completion/Providers/AbstractInternalsVisibleToCompletionProvider.cs @@ -16,8 +16,6 @@ internal abstract class AbstractInternalsVisibleToCompletionProvider : CommonCom { private const string ProjectGuidKey = nameof(ProjectGuidKey); - protected abstract bool IsPositionEntirelyWithinStringLiteral(SyntaxTree syntaxTree, int position, CancellationToken cancellationToken); - internal override bool IsInsertionTrigger(SourceText text, int insertedCharacterPosition, OptionSet options) { var ch = text[insertedCharacterPosition]; @@ -28,9 +26,9 @@ public override async Task ProvideCompletionsAsync(CompletionContext context) { var cancellationToken = context.CancellationToken; var syntaxTree = await context.Document.GetSyntaxTreeAsync(cancellationToken).ConfigureAwait(false); - if (IsPositionEntirelyWithinStringLiteral(syntaxTree, context.Position, cancellationToken)) + var syntaxFactsService = context.Document.GetLanguageService(); + if (syntaxFactsService.IsEntirelyWithinStringOrCharOrNumericLiteral(syntaxTree, context.Position, cancellationToken)) { - var syntaxFactsService = context.Document.GetLanguageService(); var token = syntaxTree.FindTokenOnLeftOfPosition(context.Position, cancellationToken); var attributeSyntaxNode = GetAttributeSyntaxNodeOfToken(syntaxFactsService, token); if (attributeSyntaxNode == null) diff --git a/src/Features/VisualBasic/Portable/Completion/CompletionProviders/InternalsVisibleToCompletionProvider.vb b/src/Features/VisualBasic/Portable/Completion/CompletionProviders/InternalsVisibleToCompletionProvider.vb index 4ff9b97dda10a0d94cc772468dc5f245a8cbae58..f0aadcfc5654277b5e8c529f657bbe414259150c 100644 --- a/src/Features/VisualBasic/Portable/Completion/CompletionProviders/InternalsVisibleToCompletionProvider.vb +++ b/src/Features/VisualBasic/Portable/Completion/CompletionProviders/InternalsVisibleToCompletionProvider.vb @@ -8,8 +8,5 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Completion.Providers Friend NotInheritable Class InternalsVisibleToCompletionProvider Inherits AbstractInternalsVisibleToCompletionProvider - Protected Overrides Function IsPositionEntirelyWithinStringLiteral(syntaxTree As SyntaxTree, position As Integer, cancellationToken As CancellationToken) As Boolean - Return syntaxTree.IsEntirelyWithinStringLiteral(position, cancellationToken) - End Function End Class End Namespace