From 2b5266f3dfe2fb9089b8a1bb720fdc8df088d386 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Wed, 10 Jun 2020 17:58:39 -0700 Subject: [PATCH] Only send relevant completion resolve parameters --- .../LanguageServer/AbstractLanguageServerProtocolTests.cs | 3 ++- .../Protocol/Handler/Completion/CompletionHandler.cs | 2 +- .../Protocol/Handler/Completion/CompletionResolveData.cs | 5 ++++- .../Protocol/Handler/Completion/CompletionResolveHandler.cs | 6 ++---- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/EditorFeatures/TestUtilities/LanguageServer/AbstractLanguageServerProtocolTests.cs b/src/EditorFeatures/TestUtilities/LanguageServer/AbstractLanguageServerProtocolTests.cs index c91a81be250..43a09285ecd 100644 --- a/src/EditorFeatures/TestUtilities/LanguageServer/AbstractLanguageServerProtocolTests.cs +++ b/src/EditorFeatures/TestUtilities/LanguageServer/AbstractLanguageServerProtocolTests.cs @@ -164,7 +164,8 @@ protected static LSP.VSCompletionItem CreateCompletionItem(string text, LSP.Comp Data = new CompletionResolveData() { DisplayText = text, - CompletionParams = requestParameters + TextDocument = requestParameters.TextDocument, + Position = requestParameters.Position }, Icon = tags != null ? new ImageElement(tags.ToImmutableArray().GetFirstGlyph().GetImageId()) : null }; diff --git a/src/Features/LanguageServer/Protocol/Handler/Completion/CompletionHandler.cs b/src/Features/LanguageServer/Protocol/Handler/Completion/CompletionHandler.cs index c5daed4d385..21b581a3d68 100644 --- a/src/Features/LanguageServer/Protocol/Handler/Completion/CompletionHandler.cs +++ b/src/Features/LanguageServer/Protocol/Handler/Completion/CompletionHandler.cs @@ -90,7 +90,7 @@ static TCompletionItem CreateCompletionItem(LSP.CompletionParam SortText = item.SortText, FilterText = item.FilterText, Kind = GetCompletionKind(item.Tags), - Data = new CompletionResolveData { CompletionParams = request, DisplayText = item.DisplayText } + Data = new CompletionResolveData { TextDocument = request.TextDocument, Position = request.Position, DisplayText = item.DisplayText } }; } diff --git a/src/Features/LanguageServer/Protocol/Handler/Completion/CompletionResolveData.cs b/src/Features/LanguageServer/Protocol/Handler/Completion/CompletionResolveData.cs index 26d6d93d05e..7997711abfe 100644 --- a/src/Features/LanguageServer/Protocol/Handler/Completion/CompletionResolveData.cs +++ b/src/Features/LanguageServer/Protocol/Handler/Completion/CompletionResolveData.cs @@ -8,7 +8,10 @@ namespace Microsoft.CodeAnalysis.LanguageServer.Handler { internal class CompletionResolveData { - public CompletionParams CompletionParams { get; set; } + public TextDocumentIdentifier TextDocument { get; set; } + + public Position Position { get; set; } + public string DisplayText { get; set; } } } diff --git a/src/Features/LanguageServer/Protocol/Handler/Completion/CompletionResolveHandler.cs b/src/Features/LanguageServer/Protocol/Handler/Completion/CompletionResolveHandler.cs index 529281f38d1..6c386480457 100644 --- a/src/Features/LanguageServer/Protocol/Handler/Completion/CompletionResolveHandler.cs +++ b/src/Features/LanguageServer/Protocol/Handler/Completion/CompletionResolveHandler.cs @@ -44,15 +44,13 @@ public CompletionResolveHandler() data = ((JToken)completionItem.Data).ToObject(); } - var request = data.CompletionParams; - - var document = solution.GetDocument(request.TextDocument, clientName); + var document = solution.GetDocument(data.TextDocument, clientName); if (document == null) { return completionItem; } - var position = await document.GetPositionFromLinePositionAsync(ProtocolConversions.PositionToLinePosition(request.Position), cancellationToken).ConfigureAwait(false); + var position = await document.GetPositionFromLinePositionAsync(ProtocolConversions.PositionToLinePosition(data.Position), cancellationToken).ConfigureAwait(false); var completionService = document.Project.LanguageServices.GetRequiredService(); var list = await completionService.GetCompletionsAsync(document, position, cancellationToken: cancellationToken).ConfigureAwait(false); -- GitLab