rm ID from terminal completion provider (#270094)

This commit is contained in:
Megan Rogge
2025-10-06 16:44:25 -04:00
committed by GitHub
parent eb8570fdfd
commit 75ff485ed9
4 changed files with 12 additions and 13 deletions

View File

@@ -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<vscode.TerminalCompletionItem[] | vscode.TerminalCompletionList | undefined> {
currentTerminalEnv = terminal.shellIntegration?.env?.value ?? process.env;
if (token.isCancellationRequested) {

View File

@@ -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<vscode.TerminalCompletionItem>, ...triggerCharacters: string[]): vscode.Disposable {
registerTerminalCompletionProvider(provider: vscode.TerminalCompletionProvider<vscode.TerminalCompletionItem>, ...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');

View File

@@ -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<vscode.TerminalCompletionItem>, ...triggerCharacters: string[]): vscode.Disposable;
registerTerminalCompletionProvider(extension: IExtensionDescription, provider: vscode.TerminalCompletionProvider<vscode.TerminalCompletionItem>, ...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<TerminalCompletionItem>, ...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<TerminalCompletionItem>, ...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);
});
}

View File

@@ -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<T extends TerminalCompletionItem>(id: string, provider: TerminalCompletionProvider<T>, ...triggerCharacters: string[]): Disposable;
export function registerTerminalCompletionProvider<T extends TerminalCompletionItem>(provider: TerminalCompletionProvider<T>, ...triggerCharacters: string[]): Disposable;
}
/**