Skip to content

Commit 3317069

Browse files
committed
Pass provisional edit info through to resolve, and use it to get the C# document to resolve
1 parent 5cd2860 commit 3317069

File tree

4 files changed

+8
-5
lines changed

4 files changed

+8
-5
lines changed

src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Completion/Delegation/DelegatedCompletionListProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ internal class DelegatedCompletionListProvider(
116116
? DelegatedCompletionHelper.RewriteCSharpResponse(delegatedResponse, absoluteIndex, codeDocument, positionInfo.Position, razorCompletionOptions)
117117
: DelegatedCompletionHelper.RewriteHtmlResponse(delegatedResponse, razorCompletionOptions);
118118

119-
var resolutionContext = new DelegatedCompletionResolutionContext(identifier, positionInfo.LanguageKind, rewrittenResponse.Data ?? rewrittenResponse.ItemDefaults?.Data);
119+
var resolutionContext = new DelegatedCompletionResolutionContext(identifier, positionInfo.LanguageKind, rewrittenResponse.Data ?? rewrittenResponse.ItemDefaults?.Data, provisionalTextEdit);
120120
var resultId = _completionListCache.Add(rewrittenResponse, resolutionContext);
121121
rewrittenResponse.SetResultId(resultId, clientCapabilities);
122122

src/Razor/src/Microsoft.CodeAnalysis.Razor.CohostingShared/Completion/CohostDocumentCompletionEndpoint.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilitie
234234
var rewrittenResponse = DelegatedCompletionHelper.RewriteHtmlResponse(result, razorCompletionOptions);
235235

236236
var razorDocumentIdentifier = new TextDocumentIdentifierAndVersion(completionParams.TextDocument, Version: 0);
237-
var resolutionContext = new DelegatedCompletionResolutionContext(razorDocumentIdentifier, RazorLanguageKind.Html, rewrittenResponse.Data ?? rewrittenResponse.ItemDefaults?.Data);
237+
var resolutionContext = new DelegatedCompletionResolutionContext(razorDocumentIdentifier, RazorLanguageKind.Html, rewrittenResponse.Data ?? rewrittenResponse.ItemDefaults?.Data, ProvisionalTextEdit: null);
238238
var resultId = _completionListCache.Add(rewrittenResponse, resolutionContext);
239239
rewrittenResponse.SetResultId(resultId, _clientCapabilitiesService.ClientCapabilities);
240240

src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Protocol/DelegatedTypes.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ internal record DelegatedMapCodeParams(
7171
internal record DelegatedCompletionResolutionContext(
7272
[property: JsonPropertyName("identifier")] TextDocumentIdentifierAndVersion Identifier,
7373
[property: JsonPropertyName("projectedKind")] RazorLanguageKind ProjectedKind,
74-
[property: JsonPropertyName("originalCompletionListData")] object? OriginalCompletionListData) : ICompletionResolveContext;
74+
[property: JsonPropertyName("originalCompletionListData")] object? OriginalCompletionListData,
75+
[property: JsonPropertyName("provisionalTextEdit")] TextEdit? ProvisionalTextEdit) : ICompletionResolveContext;
7576

7677
internal record DelegatedCompletionItemResolveParams(
7778
[property: JsonPropertyName("identifier")] TextDocumentIdentifierAndVersion Identifier,

src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/RemoteCompletionService.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ private async ValueTask<Response> GetCompletionAsync(
149149
completionContext,
150150
razorCompletionOptions,
151151
correlationId,
152+
positionInfo.ProvisionalTextEdit,
152153
cancellationToken)
153154
.ConfigureAwait(false);
154155

@@ -191,6 +192,7 @@ private async ValueTask<Response> GetCompletionAsync(
191192
CompletionContext completionContext,
192193
RazorCompletionOptions razorCompletionOptions,
193194
Guid correlationId,
195+
TextEdit? provisionalTextEdit,
194196
CancellationToken cancellationToken)
195197
{
196198
var clientCapabilities = _clientCapabilitiesService.ClientCapabilities;
@@ -236,7 +238,7 @@ private async ValueTask<Response> GetCompletionAsync(
236238
mappedPosition,
237239
razorCompletionOptions);
238240

239-
var resolutionContext = new DelegatedCompletionResolutionContext(identifier, RazorLanguageKind.CSharp, rewrittenResponse.Data ?? rewrittenResponse.ItemDefaults?.Data);
241+
var resolutionContext = new DelegatedCompletionResolutionContext(identifier, RazorLanguageKind.CSharp, rewrittenResponse.Data ?? rewrittenResponse.ItemDefaults?.Data, provisionalTextEdit);
240242
var resultId = _completionListCache.Add(rewrittenResponse, resolutionContext);
241243
rewrittenResponse.SetResultId(resultId, clientCapabilities);
242244

@@ -326,7 +328,7 @@ private async ValueTask<VSInternalCompletionItem> ResolveCSharpCompletionItemAsy
326328
}
327329

328330
var documentSnapshot = context.Snapshot;
329-
var generatedDocument = await documentSnapshot.GetGeneratedDocumentAsync(cancellationToken).ConfigureAwait(false);
331+
var generatedDocument = await GetCSharpGeneratedDocumentAsync(documentSnapshot, resolutionContext.ProvisionalTextEdit, cancellationToken).ConfigureAwait(false);
330332

331333
var clientCapabilities = _clientCapabilitiesService.ClientCapabilities;
332334
var completionListSetting = clientCapabilities.TextDocument?.Completion;

0 commit comments

Comments
 (0)