From fab99a2c40cc06e358e4a18c9a8903eb94ae2a12 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Wed, 7 Jun 2023 11:57:04 -0700 Subject: [PATCH] Explain features the git extension enables --- extensions/git/src/askpass.ts | 2 ++ extensions/git/src/gitEditor.ts | 2 ++ extensions/git/src/terminal.ts | 9 ++++++++- 3 files changed, 12 insertions(+), 1 deletion(-) 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 8df5b54380e..2d876e42e7c 100644 --- a/extensions/git/src/terminal.ts +++ b/extensions/git/src/terminal.ts @@ -7,6 +7,7 @@ import { ExtensionContext, workspace } from 'vscode'; import { filterEvent, IDisposable } from './util'; export interface ITerminalEnvironmentProvider { + featureDescription?: string; getTerminalEnv(): { [key: string]: string }; } @@ -24,18 +25,24 @@ export class TerminalEnvironmentManager { private refresh(): void { const config = workspace.getConfiguration('git', null); this.context.environmentVariableCollection.clear(); - this.context.environmentVariableCollection.description = 'Enables a git authentication provider'; if (!config.get('enabled', true)) { 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 = `Enables the following features: ${features.join(', ')}`; } }