From c0246006e18bccb10a55181a696fbca6bc5ee6da Mon Sep 17 00:00:00 2001 From: BeniBenj Date: Thu, 9 Jan 2025 08:59:57 +0100 Subject: [PATCH] Add requestUuid for inline edits --- src/vs/editor/common/languages.ts | 6 ++++++ .../inlineCompletions/browser/model/inlineEditsAdapter.ts | 1 + src/vs/workbench/api/common/extHostLanguageFeatures.ts | 3 ++- src/vscode-dts/vscode.proposed.inlineEdit.d.ts | 2 ++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/vs/editor/common/languages.ts b/src/vs/editor/common/languages.ts index d6946f0e64588..0a0545a891abe 100644 --- a/src/vs/editor/common/languages.ts +++ b/src/vs/editor/common/languages.ts @@ -2407,6 +2407,12 @@ export interface IInlineEdit { export interface IInlineEditContext { triggerKind: InlineEditTriggerKind; + + /** + * @experimental + * @internal + */ + requestUuid?: string; } export enum InlineEditTriggerKind { diff --git a/src/vs/editor/contrib/inlineCompletions/browser/model/inlineEditsAdapter.ts b/src/vs/editor/contrib/inlineCompletions/browser/model/inlineEditsAdapter.ts index c2ba76a74560d..cf03465864751 100644 --- a/src/vs/editor/contrib/inlineCompletions/browser/model/inlineEditsAdapter.ts +++ b/src/vs/editor/contrib/inlineCompletions/browser/model/inlineEditsAdapter.ts @@ -58,6 +58,7 @@ export class InlineEditsAdapter extends Disposable { const inlineEdits = await Promise.all(allInlineEditProvider.map(async provider => { const result = await provider.provideInlineEdit(model, { triggerKind: InlineEditTriggerKind.Automatic, + requestUuid: context.requestUuid }, token); if (!result) { return undefined; } return { result, provider }; diff --git a/src/vs/workbench/api/common/extHostLanguageFeatures.ts b/src/vs/workbench/api/common/extHostLanguageFeatures.ts index d5ef857b79fec..ac9576a3b22df 100644 --- a/src/vs/workbench/api/common/extHostLanguageFeatures.ts +++ b/src/vs/workbench/api/common/extHostLanguageFeatures.ts @@ -1526,7 +1526,8 @@ class InlineEditAdapter { async provideInlineEdits(uri: URI, context: languages.IInlineEditContext, token: CancellationToken): Promise { const doc = this._documents.getDocument(uri); const result = await this._provider.provideInlineEdit(doc, { - triggerKind: this.languageTriggerKindToVSCodeTriggerKind[context.triggerKind] + triggerKind: this.languageTriggerKindToVSCodeTriggerKind[context.triggerKind], + requestUuid: context.requestUuid, }, token); if (!result) { diff --git a/src/vscode-dts/vscode.proposed.inlineEdit.d.ts b/src/vscode-dts/vscode.proposed.inlineEdit.d.ts index 21fd5e34c01c7..41ae0bb557bec 100644 --- a/src/vscode-dts/vscode.proposed.inlineEdit.d.ts +++ b/src/vscode-dts/vscode.proposed.inlineEdit.d.ts @@ -52,6 +52,8 @@ declare module 'vscode' { * Describes how the inline edit was triggered. */ triggerKind: InlineEditTriggerKind; + + requestUuid?: string; } export enum InlineEditTriggerKind {