diff --git a/extensions/git/src/askpass.ts b/extensions/git/src/askpass.ts index ffd299bfdf3..7821ce112e8 100644 --- a/extensions/git/src/askpass.ts +++ b/extensions/git/src/askpass.ts @@ -18,6 +18,8 @@ export class Askpass implements IIPCHandler, ITerminalEnvironmentProvider { private cache = new Map(); private credentialsProviders = new Set(); + readonly featureDescription = 'git auth provider'; + constructor(private ipc?: IIPCServer) { if (ipc) { this.disposable = ipc.registerHandler('askpass', this); diff --git a/extensions/git/src/gitEditor.ts b/extensions/git/src/gitEditor.ts index fb0688e4401..f43e6f68209 100644 --- a/extensions/git/src/gitEditor.ts +++ b/extensions/git/src/gitEditor.ts @@ -17,6 +17,8 @@ export class GitEditor implements IIPCHandler, ITerminalEnvironmentProvider { private env: { [key: string]: string }; private disposable: IDisposable = EmptyDisposable; + readonly featureDescription = 'git editor'; + constructor(ipc?: IIPCServer) { if (ipc) { this.disposable = ipc.registerHandler('git-editor', this); diff --git a/extensions/git/src/terminal.ts b/extensions/git/src/terminal.ts index 9501cc88bba..4f6d95488bb 100644 --- a/extensions/git/src/terminal.ts +++ b/extensions/git/src/terminal.ts @@ -3,10 +3,11 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { ExtensionContext, workspace } from 'vscode'; +import { ExtensionContext, l10n, workspace } from 'vscode'; import { filterEvent, IDisposable } from './util'; export interface ITerminalEnvironmentProvider { + featureDescription?: string; getTerminalEnv(): { [key: string]: string }; } @@ -29,12 +30,19 @@ export class TerminalEnvironmentManager { return; } + const features: string[] = []; for (const envProvider of this.envProviders) { const terminalEnv = envProvider?.getTerminalEnv() ?? {}; for (const name of Object.keys(terminalEnv)) { this.context.environmentVariableCollection.replace(name, terminalEnv[name]); } + if (envProvider?.featureDescription && Object.keys(terminalEnv).length > 0) { + features.push(envProvider.featureDescription); + } + } + if (features.length) { + this.context.environmentVariableCollection.description = l10n.t('Enables the following features: {0}', features.join(', ')); } }