Inline Completions: Implements yieldsTo (#187156)

Fixes #https://github.com/microsoft/vscode-internalbacklog/issues/4055
This commit is contained in:
Henning Dieterichs
2023-07-07 16:29:09 +02:00
committed by GitHub
parent e7776fdf9c
commit d1ae8a6ecc
9 changed files with 158 additions and 16 deletions
@@ -557,7 +557,7 @@ export class MainThreadLanguageFeatures extends Disposable implements MainThread
this._registrations.set(handle, this._languageFeaturesService.completionProvider.register(selector, provider));
}
$registerInlineCompletionsSupport(handle: number, selector: IDocumentFilterDto[], supportsHandleEvents: boolean): void {
$registerInlineCompletionsSupport(handle: number, selector: IDocumentFilterDto[], supportsHandleEvents: boolean, extensionId: string, yieldsToExtensionIds: string[]): void {
const provider: languages.InlineCompletionsProvider<IdentifiableInlineCompletions> = {
provideInlineCompletions: async (model: ITextModel, position: EditorPosition, context: languages.InlineCompletionContext, token: CancellationToken): Promise<IdentifiableInlineCompletions | undefined> => {
return this._proxy.$provideInlineCompletions(handle, model.uri, position, context, token);
@@ -574,6 +574,11 @@ export class MainThreadLanguageFeatures extends Disposable implements MainThread
},
freeInlineCompletions: (completions: IdentifiableInlineCompletions): void => {
this._proxy.$freeInlineCompletionsList(handle, completions.pid);
},
groupId: extensionId,
yieldsToGroupIds: yieldsToExtensionIds,
toString() {
return `InlineCompletionsProvider(${extensionId})`;
}
};
this._registrations.set(handle, this._languageFeaturesService.inlineCompletionsProvider.register(selector, provider));