diff --git a/src/Features/LanguageServer/Protocol/Handler/Completion/CompletionHandler.cs b/src/Features/LanguageServer/Protocol/Handler/Completion/CompletionHandler.cs index e42d38dbb1e05400e283e2231791b9b6b1b127a6..822bf63a19ccdbe18d2d9a6b3d9472affc920461 100644 --- a/src/Features/LanguageServer/Protocol/Handler/Completion/CompletionHandler.cs +++ b/src/Features/LanguageServer/Protocol/Handler/Completion/CompletionHandler.cs @@ -40,8 +40,11 @@ internal class CompletionHandler : IRequestHandler // https://dev.azure.com/devdiv/DevDiv/_workitems/edit/1076759 // 2. We need to figure out how to provide the text edits along with the completion item or provide them in the resolve request. // https://devdiv.visualstudio.com/DevDiv/_workitems/edit/985860/ + // 3. LSP client should support completion filters / expanders var documentOptions = await document.GetOptionsAsync(cancellationToken).ConfigureAwait(false); - var completionOptions = documentOptions.WithChangedOption(CompletionServiceOptions.IsExpandedCompletion, false); + var completionOptions = documentOptions + .WithChangedOption(CompletionOptions.ShowItemsFromUnimportedNamespaces, false) + .WithChangedOption(CompletionServiceOptions.IsExpandedCompletion, false); var completionService = document.Project.LanguageServices.GetService(); var list = await completionService.GetCompletionsAsync(document, position, options: completionOptions, cancellationToken: cancellationToken).ConfigureAwait(false); diff --git a/src/Features/LanguageServer/ProtocolUnitTests/Completion/CompletionTests.cs b/src/Features/LanguageServer/ProtocolUnitTests/Completion/CompletionTests.cs index db6dfdee3b6f585d4734f41de36e412f2bf20fc3..d7e004314b5721a7c517057688b945ef1a626cf2 100644 --- a/src/Features/LanguageServer/ProtocolUnitTests/Completion/CompletionTests.cs +++ b/src/Features/LanguageServer/ProtocolUnitTests/Completion/CompletionTests.cs @@ -47,7 +47,9 @@ void M() var (solution, locations) = CreateTestSolution(markup); // Make sure the unimported types option is on by default. - solution = solution.WithOptions(solution.Options.WithChangedOption(CompletionServiceOptions.IsExpandedCompletion, true)); + solution = solution.WithOptions(solution.Options + .WithChangedOption(CompletionOptions.ShowItemsFromUnimportedNamespaces, LanguageNames.CSharp, true) + .WithChangedOption(CompletionServiceOptions.IsExpandedCompletion, true)); var expected = CreateCompletionItem("A", LSP.CompletionItemKind.Class, new string[] { "Class", "Internal" }, CreateCompletionParams(locations["caret"].Single())); var clientCapabilities = new LSP.VSClientCapabilities { SupportsVisualStudioExtensions = true };