diff --git a/src/vs/platform/terminal/common/terminalProfiles.ts b/src/vs/platform/terminal/common/terminalProfiles.ts index a86cc93..a5fa93e 100644 --- a/src/vs/platform/terminal/common/terminalProfiles.ts +++ b/src/vs/platform/terminal/common/terminalProfiles.ts @@ -60,7 +60,8 @@ function createProfileDescription(profile: ITerminalProfile): string { } function createExtensionProfileDescription(profile: IExtensionTerminalProfile): string { - const description = `$(${ThemeIcon.isThemeIcon(profile.icon) ? profile.icon.id : profile.icon ? profile.icon : Codicon.terminal.id}) ${profile.title}\n- extensionIdentifier: ${profile.extensionIdentifier}`; + const icon = isString(profile.icon) ? ThemeIcon.fromString(profile.icon) ?? profile.icon : profile.icon; + const description = `$(${ThemeIcon.isThemeIcon(icon) ? icon.id : icon ? icon : Codicon.terminal.id}) ${profile.title}\n- extensionIdentifier: ${profile.extensionIdentifier}`; return description; } diff --git a/src/vs/platform/terminal/test/common/terminalProfiles.test.ts b/src/vs/platform/terminal/test/common/terminalProfiles.test.ts index 036f9fe..8ee6c36 100644 --- a/src/vs/platform/terminal/test/common/terminalProfiles.test.ts +++ b/src/vs/platform/terminal/test/common/terminalProfiles.test.ts @@ -6,7 +6,7 @@ import { deepStrictEqual } from 'assert'; import { Codicon } from '../../../../base/common/codicons.js'; import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../base/test/common/utils.js'; -import { ITerminalProfile } from '../../common/terminal.js'; +import { IExtensionTerminalProfile, ITerminalProfile } from '../../common/terminal.js'; import { createProfileSchemaEnums } from '../../common/terminalProfiles.js'; suite('terminalProfiles', () => { @@ -89,5 +89,30 @@ suite('terminalProfiles', () => { ] }); }); + test('should not wrap an extension profile icon that already uses the $() syntax', () => { + const extensionProfiles: IExtensionTerminalProfile[] = [{ + extensionIdentifier: 'ms-vscode.js-debug', + id: 'extension.js-debug.debugTerminal', + title: 'JavaScript Debug Terminal', + icon: '$(debug)' + }, { + extensionIdentifier: 'publisher.extension', + id: 'extension.terminal', + title: 'Extension Terminal', + icon: 'zap' + }]; + deepStrictEqual(createProfileSchemaEnums([], extensionProfiles), { + values: [ + null, + 'JavaScript Debug Terminal', + 'Extension Terminal' + ], + markdownDescriptions: [ + 'Automatically detect the default', + '$(debug) JavaScript Debug Terminal\n- extensionIdentifier: ms-vscode.js-debug', + '$(zap) Extension Terminal\n- extensionIdentifier: publisher.extension' + ] + }); + }); }); });