From 75ff485ed963e2edd6c007f4686fe8cd7a716db7 Mon Sep 17 00:00:00 2001 From: Megan Rogge Date: Mon, 6 Oct 2025 16:44:25 -0400 Subject: [PATCH] rm ID from terminal completion provider (#270094) --- .../terminal-suggest/src/terminalSuggestMain.ts | 2 +- src/vs/workbench/api/common/extHost.api.impl.ts | 4 ++-- .../api/common/extHostTerminalService.ts | 16 ++++++++-------- ...code.proposed.terminalCompletionProvider.d.ts | 3 +-- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/extensions/terminal-suggest/src/terminalSuggestMain.ts b/extensions/terminal-suggest/src/terminalSuggestMain.ts index 4f12b258652..9db6122f729 100644 --- a/extensions/terminal-suggest/src/terminalSuggestMain.ts +++ b/extensions/terminal-suggest/src/terminalSuggestMain.ts @@ -250,7 +250,7 @@ export async function activate(context: vscode.ExtensionContext) { const machineId = await vscode.env.machineId; const remoteAuthority = vscode.env.remoteName; - context.subscriptions.push(vscode.window.registerTerminalCompletionProvider('terminal-suggest', { + context.subscriptions.push(vscode.window.registerTerminalCompletionProvider({ async provideTerminalCompletions(terminal: vscode.Terminal, terminalContext: vscode.TerminalCompletionContext, token: vscode.CancellationToken): Promise { currentTerminalEnv = terminal.shellIntegration?.env?.value ?? process.env; if (token.isCancellationRequested) { diff --git a/src/vs/workbench/api/common/extHost.api.impl.ts b/src/vs/workbench/api/common/extHost.api.impl.ts index cac3d4cc155..cfe5c39b099 100644 --- a/src/vs/workbench/api/common/extHost.api.impl.ts +++ b/src/vs/workbench/api/common/extHost.api.impl.ts @@ -877,9 +877,9 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I registerTerminalProfileProvider(id: string, provider: vscode.TerminalProfileProvider): vscode.Disposable { return extHostTerminalService.registerProfileProvider(extension, id, provider); }, - registerTerminalCompletionProvider(id: string, provider: vscode.TerminalCompletionProvider, ...triggerCharacters: string[]): vscode.Disposable { + registerTerminalCompletionProvider(provider: vscode.TerminalCompletionProvider, ...triggerCharacters: string[]): vscode.Disposable { checkProposedApiEnabled(extension, 'terminalCompletionProvider'); - return extHostTerminalService.registerTerminalCompletionProvider(extension, id, provider, ...triggerCharacters); + return extHostTerminalService.registerTerminalCompletionProvider(extension, provider, ...triggerCharacters); }, registerTerminalQuickFixProvider(id: string, provider: vscode.TerminalQuickFixProvider): vscode.Disposable { checkProposedApiEnabled(extension, 'terminalQuickFixProvider'); diff --git a/src/vs/workbench/api/common/extHostTerminalService.ts b/src/vs/workbench/api/common/extHostTerminalService.ts index 9730650d1fa..270e3633e85 100644 --- a/src/vs/workbench/api/common/extHostTerminalService.ts +++ b/src/vs/workbench/api/common/extHostTerminalService.ts @@ -57,7 +57,7 @@ export interface IExtHostTerminalService extends ExtHostTerminalServiceShape, ID getEnvironmentVariableCollection(extension: IExtensionDescription): IEnvironmentVariableCollection; getTerminalById(id: number): ExtHostTerminal | null; getTerminalIdByApiObject(apiTerminal: vscode.Terminal): number | null; - registerTerminalCompletionProvider(extension: IExtensionDescription, id: string, provider: vscode.TerminalCompletionProvider, ...triggerCharacters: string[]): vscode.Disposable; + registerTerminalCompletionProvider(extension: IExtensionDescription, provider: vscode.TerminalCompletionProvider, ...triggerCharacters: string[]): vscode.Disposable; } interface IEnvironmentVariableCollection extends vscode.EnvironmentVariableCollection { @@ -757,15 +757,15 @@ export abstract class BaseExtHostTerminalService extends Disposable implements I }); } - public registerTerminalCompletionProvider(extension: IExtensionDescription, id: string, provider: vscode.TerminalCompletionProvider, ...triggerCharacters: string[]): vscode.Disposable { - if (this._completionProviders.has(id)) { - throw new Error(`Terminal completion provider "${id}" already registered`); + public registerTerminalCompletionProvider(extension: IExtensionDescription, provider: vscode.TerminalCompletionProvider, ...triggerCharacters: string[]): vscode.Disposable { + if (this._completionProviders.has(extension.identifier.value)) { + throw new Error(`Terminal completion provider "${extension.identifier.value}" already registered`); } - this._completionProviders.set(id, provider); - this._proxy.$registerCompletionProvider(id, extension.identifier.value, ...triggerCharacters); + this._completionProviders.set(extension.identifier.value, provider); + this._proxy.$registerCompletionProvider(extension.identifier.value, extension.identifier.value, ...triggerCharacters); return new VSCodeDisposable(() => { - this._completionProviders.delete(id); - this._proxy.$unregisterCompletionProvider(id); + this._completionProviders.delete(extension.identifier.value); + this._proxy.$unregisterCompletionProvider(extension.identifier.value); }); } diff --git a/src/vscode-dts/vscode.proposed.terminalCompletionProvider.d.ts b/src/vscode-dts/vscode.proposed.terminalCompletionProvider.d.ts index 1a0196f683c..37152b7145f 100644 --- a/src/vscode-dts/vscode.proposed.terminalCompletionProvider.d.ts +++ b/src/vscode-dts/vscode.proposed.terminalCompletionProvider.d.ts @@ -133,7 +133,6 @@ declare module 'vscode' { export namespace window { /** * Register a completion provider for terminals. - * @param id The unique identifier of the terminal provider, used as a settings key and shown in the information hover of the suggest widget. * @param provider The completion provider. * @returns A {@link Disposable} that unregisters this provider when being disposed. * @@ -146,7 +145,7 @@ declare module 'vscode' { * } * }); */ - export function registerTerminalCompletionProvider(id: string, provider: TerminalCompletionProvider, ...triggerCharacters: string[]): Disposable; + export function registerTerminalCompletionProvider(provider: TerminalCompletionProvider, ...triggerCharacters: string[]): Disposable; } /**